diff --git a/doc/1.1.0/guacamole-common-js/ArrayBufferReader.js.html b/doc/1.1.0/guacamole-common-js/ArrayBufferReader.js.html
new file mode 100644
index 0000000..ffa83de
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/ArrayBufferReader.js.html
@@ -0,0 +1,136 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: ArrayBufferReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: ArrayBufferReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * strictly received packets as array buffers. Note that this object will
+ * overwrite any installed event handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ */
+Guacamole.ArrayBufferReader = function(stream) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    // Receive blobs as array buffers
+    stream.onblob = function(data) {
+
+        // Convert to ArrayBuffer
+        var binary = window.atob(data);
+        var arrayBuffer = new ArrayBuffer(binary.length);
+        var bufferView = new Uint8Array(arrayBuffer);
+
+        for (var i=0; i&lt;binary.length; i++)
+            bufferView[i] = binary.charCodeAt(i);
+
+        // Call handler, if present
+        if (guac_reader.ondata)
+            guac_reader.ondata(arrayBuffer);
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {ArrayBuffer} buffer The data packet received.
+     */
+    this.ondata = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/ArrayBufferWriter.js.html b/doc/1.1.0/guacamole-common-js/ArrayBufferWriter.js.html
new file mode 100644
index 0000000..9849d69
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/ArrayBufferWriter.js.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: ArrayBufferWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: ArrayBufferWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with arbitrary
+ * binary data, supplied as ArrayBuffers.
+ * 
+ * @constructor
+ * @param {Guacamole.OutputStream} stream The stream that data will be written
+ *                                        to.
+ */
+Guacamole.ArrayBufferWriter = function(stream) {
+
+    /**
+     * Reference to this Guacamole.StringWriter.
+     * @private
+     */
+    var guac_writer = this;
+
+    // Simply call onack for acknowledgements
+    stream.onack = function(status) {
+        if (guac_writer.onack)
+            guac_writer.onack(status);
+    };
+
+    /**
+     * Encodes the given data as base64, sending it as a blob. The data must
+     * be small enough to fit into a single blob instruction.
+     * 
+     * @private
+     * @param {Uint8Array} bytes The data to send.
+     */
+    function __send_blob(bytes) {
+
+        var binary = "";
+
+        // Produce binary string from bytes in buffer
+        for (var i=0; i&lt;bytes.byteLength; i++)
+            binary += String.fromCharCode(bytes[i]);
+
+        // Send as base64
+        stream.sendBlob(window.btoa(binary));
+
+    }
+
+    /**
+     * The maximum length of any blob sent by this Guacamole.ArrayBufferWriter,
+     * in bytes. Data sent via
+     * [sendData()]{@link Guacamole.ArrayBufferWriter#sendData} which exceeds
+     * this length will be split into multiple blobs. As the Guacamole protocol
+     * limits the maximum size of any instruction or instruction element to
+     * 8192 bytes, and the contents of blobs will be base64-encoded, this value
+     * should only be increased with extreme caution.
+     *
+     * @type {Number}
+     * @default {@link Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH}
+     */
+    this.blobLength = Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH;
+
+    /**
+     * Sends the given data.
+     * 
+     * @param {ArrayBuffer|TypedArray} data The data to send.
+     */
+    this.sendData = function(data) {
+
+        var bytes = new Uint8Array(data);
+
+        // If small enough to fit into single instruction, send as-is
+        if (bytes.length &lt;= guac_writer.blobLength)
+            __send_blob(bytes);
+
+        // Otherwise, send as multiple instructions
+        else {
+            for (var offset=0; offset&lt;bytes.length; offset += guac_writer.blobLength)
+                __send_blob(bytes.subarray(offset, offset + guac_writer.blobLength));
+        }
+
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function() {
+        stream.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+};
+
+/**
+ * The default maximum blob length for new Guacamole.ArrayBufferWriter
+ * instances.
+ *
+ * @constant
+ * @type {Number}
+ */
+Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH = 6048;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/AudioContextFactory.js.html b/doc/1.1.0/guacamole-common-js/AudioContextFactory.js.html
new file mode 100644
index 0000000..9305884
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/AudioContextFactory.js.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioContextFactory.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioContextFactory.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Maintains a singleton instance of the Web Audio API AudioContext class,
+ * instantiating the AudioContext only in response to the first call to
+ * getAudioContext(), and only if no existing AudioContext instance has been
+ * provided via the singleton property. Subsequent calls to getAudioContext()
+ * will return the same instance.
+ *
+ * @namespace
+ */
+Guacamole.AudioContextFactory = {
+
+    /**
+     * A singleton instance of a Web Audio API AudioContext object, or null if
+     * no instance has yes been created. This property may be manually set if
+     * you wish to supply your own AudioContext instance, but care must be
+     * taken to do so as early as possible. Assignments to this property will
+     * not retroactively affect the value returned by previous calls to
+     * getAudioContext().
+     *
+     * @type {AudioContext}
+     */
+    'singleton' : null,
+
+    /**
+     * Returns a singleton instance of a Web Audio API AudioContext object.
+     *
+     * @return {AudioContext}
+     *     A singleton instance of a Web Audio API AudioContext object, or null
+     *     if the Web Audio API is not supported.
+     */
+    'getAudioContext' : function getAudioContext() {
+
+        // Fallback to Webkit-specific AudioContext implementation
+        var AudioContext = window.AudioContext || window.webkitAudioContext;
+
+        // Get new AudioContext instance if Web Audio API is supported
+        if (AudioContext) {
+            try {
+
+                // Create new instance if none yet exists
+                if (!Guacamole.AudioContextFactory.singleton)
+                    Guacamole.AudioContextFactory.singleton = new AudioContext();
+
+                // Return singleton instance
+                return Guacamole.AudioContextFactory.singleton;
+
+            }
+            catch (e) {
+                // Do not use Web Audio API if not allowed by browser
+            }
+        }
+
+        // Web Audio API not supported
+        return null;
+
+    }
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/AudioPlayer.js.html b/doc/1.1.0/guacamole-common-js/AudioPlayer.js.html
new file mode 100644
index 0000000..72f2f81
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/AudioPlayer.js.html
@@ -0,0 +1,566 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioPlayer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioPlayer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract audio player which accepts, queues and plays back arbitrary audio
+ * data. It is up to implementations of this class to provide some means of
+ * handling a provided Guacamole.InputStream. Data received along the provided
+ * stream is to be played back immediately.
+ *
+ * @constructor
+ */
+Guacamole.AudioPlayer = function AudioPlayer() {
+
+    /**
+     * Notifies this Guacamole.AudioPlayer that all audio up to the current
+     * point in time has been given via the underlying stream, and that any
+     * difference in time between queued audio data and the current time can be
+     * considered latency.
+     */
+    this.sync = function sync() {
+        // Default implementation - do nothing
+    };
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.AudioPlayer, and thus will be properly handled
+ * by Guacamole.AudioPlayer.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.AudioPlayer, false otherwise.
+ */
+Guacamole.AudioPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    return Guacamole.RawAudioPlayer.isSupportedType(mimetype);
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.AudioPlayer, in rough order of priority. Beware that only the core
+ * mimetypes themselves will be listed. Any mimetype parameters, even required
+ * ones, will not be included in the list. For example, "audio/L8" is a
+ * supported raw audio mimetype that is supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in Guacamole.AudioPlayer,
+ *     excluding any parameters.
+ */
+Guacamole.AudioPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    return Guacamole.RawAudioPlayer.getSupportedTypes();
+
+};
+
+/**
+ * Returns an instance of Guacamole.AudioPlayer providing support for the given
+ * audio format. If support for the given audio format is not available, null
+ * is returned.
+ *
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read audio data from.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data in the provided stream.
+ *
+ * @return {Guacamole.AudioPlayer}
+ *     A Guacamole.AudioPlayer instance supporting the given mimetype and
+ *     reading from the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.AudioPlayer.getInstance = function getInstance(stream, mimetype) {
+
+    // Use raw audio player if possible
+    if (Guacamole.RawAudioPlayer.isSupportedType(mimetype))
+        return new Guacamole.RawAudioPlayer(stream, mimetype);
+
+    // No support for given mimetype
+    return null;
+
+};
+
+/**
+ * Implementation of Guacamole.AudioPlayer providing support for raw PCM format
+ * audio. This player relies only on the Web Audio API and does not require any
+ * browser-level support for its audio formats.
+ *
+ * @constructor
+ * @augments Guacamole.AudioPlayer
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read audio data from.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data in the provided stream, which must be a
+ *     "audio/L8" or "audio/L16" mimetype with necessary parameters, such as:
+ *     "audio/L16;rate=44100,channels=2".
+ */
+Guacamole.RawAudioPlayer = function RawAudioPlayer(stream, mimetype) {
+
+    /**
+     * The format of audio this player will decode.
+     *
+     * @private
+     * @type {Guacamole.RawAudioFormat}
+     */
+    var format = Guacamole.RawAudioFormat.parse(mimetype);
+
+    /**
+     * An instance of a Web Audio API AudioContext object, or null if the
+     * Web Audio API is not supported.
+     *
+     * @private
+     * @type {AudioContext}
+     */
+    var context = Guacamole.AudioContextFactory.getAudioContext();
+
+    /**
+     * The earliest possible time that the next packet could play without
+     * overlapping an already-playing packet, in seconds. Note that while this
+     * value is in seconds, it is not an integer value and has microsecond
+     * resolution.
+     *
+     * @private
+     * @type {Number}
+     */
+    var nextPacketTime = context.currentTime;
+
+    /**
+     * Guacamole.ArrayBufferReader wrapped around the audio input stream
+     * provided with this Guacamole.RawAudioPlayer was created.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferReader}
+     */
+    var reader = new Guacamole.ArrayBufferReader(stream);
+
+    /**
+     * The minimum size of an audio packet split by splitAudioPacket(), in
+     * seconds. Audio packets smaller than this will not be split, nor will the
+     * split result of a larger packet ever be smaller in size than this
+     * minimum.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var MIN_SPLIT_SIZE = 0.02;
+
+    /**
+     * The maximum amount of latency to allow between the buffered data stream
+     * and the playback position, in seconds. Initially, this is set to
+     * roughly one third of a second.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxLatency = 0.3;
+
+    /**
+     * The type of typed array that will be used to represent each audio packet
+     * internally. This will be either Int8Array or Int16Array, depending on
+     * whether the raw audio format is 8-bit or 16-bit.
+     *
+     * @private
+     * @constructor
+     */
+    var SampleArray = (format.bytesPerSample === 1) ? window.Int8Array : window.Int16Array;
+
+    /**
+     * The maximum absolute value of any sample within a raw audio packet
+     * received by this audio player. This depends only on the size of each
+     * sample, and will be 128 for 8-bit audio and 32768 for 16-bit audio.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxSampleValue = (format.bytesPerSample === 1) ? 128 : 32768;
+
+    /**
+     * The queue of all pending audio packets, as an array of sample arrays.
+     * Audio packets which are pending playback will be added to this queue for
+     * further manipulation prior to scheduling via the Web Audio API. Once an
+     * audio packet leaves this queue and is scheduled via the Web Audio API,
+     * no further modifications can be made to that packet.
+     *
+     * @private
+     * @type {SampleArray[]}
+     */
+    var packetQueue = [];
+
+    /**
+     * Given an array of audio packets, returns a single audio packet
+     * containing the concatenation of those packets.
+     *
+     * @private
+     * @param {SampleArray[]} packets
+     *     The array of audio packets to concatenate.
+     *
+     * @returns {SampleArray}
+     *     A single audio packet containing the concatenation of all given
+     *     audio packets. If no packets are provided, this will be undefined.
+     */
+    var joinAudioPackets = function joinAudioPackets(packets) {
+
+        // Do not bother joining if one or fewer packets are in the queue
+        if (packets.length &lt;= 1)
+            return packets[0];
+
+        // Determine total sample length of the entire queue
+        var totalLength = 0;
+        packets.forEach(function addPacketLengths(packet) {
+            totalLength += packet.length;
+        });
+
+        // Append each packet within queue
+        var offset = 0;
+        var joined = new SampleArray(totalLength);
+        packets.forEach(function appendPacket(packet) {
+            joined.set(packet, offset);
+            offset += packet.length;
+        });
+
+        return joined;
+
+    };
+
+    /**
+     * Given a single packet of audio data, splits off an arbitrary length of
+     * audio data from the beginning of that packet, returning the split result
+     * as an array of two packets. The split location is determined through an
+     * algorithm intended to minimize the liklihood of audible clicking between
+     * packets. If no such split location is possible, an array containing only
+     * the originally-provided audio packet is returned.
+     *
+     * @private
+     * @param {SampleArray} data
+     *     The audio packet to split.
+     *
+     * @returns {SampleArray[]}
+     *     An array of audio packets containing the result of splitting the
+     *     provided audio packet. If splitting is possible, this array will
+     *     contain two packets. If splitting is not possible, this array will
+     *     contain only the originally-provided packet.
+     */
+    var splitAudioPacket = function splitAudioPacket(data) {
+
+        var minValue = Number.MAX_VALUE;
+        var optimalSplitLength = data.length;
+
+        // Calculate number of whole samples in the provided audio packet AND
+        // in the minimum possible split packet
+        var samples = Math.floor(data.length / format.channels);
+        var minSplitSamples = Math.floor(format.rate * MIN_SPLIT_SIZE);
+
+        // Calculate the beginning of the "end" of the audio packet
+        var start = Math.max(
+            format.channels * minSplitSamples,
+            format.channels * (samples - minSplitSamples)
+        );
+
+        // For all samples at the end of the given packet, find a point where
+        // the perceptible volume across all channels is lowest (and thus is
+        // the optimal point to split)
+        for (var offset = start; offset &lt; data.length; offset += format.channels) {
+
+            // Calculate the sum of all values across all channels (the result
+            // will be proportional to the average volume of a sample)
+            var totalValue = 0;
+            for (var channel = 0; channel &lt; format.channels; channel++) {
+                totalValue += Math.abs(data[offset + channel]);
+            }
+
+            // If this is the smallest average value thus far, set the split
+            // length such that the first packet ends with the current sample
+            if (totalValue &lt;= minValue) {
+                optimalSplitLength = offset + format.channels;
+                minValue = totalValue;
+            }
+
+        }
+
+        // If packet is not split, return the supplied packet untouched
+        if (optimalSplitLength === data.length)
+            return [data];
+
+        // Otherwise, split the packet into two new packets according to the
+        // calculated optimal split length
+        return [
+            new SampleArray(data.buffer.slice(0, optimalSplitLength * format.bytesPerSample)),
+            new SampleArray(data.buffer.slice(optimalSplitLength * format.bytesPerSample))
+        ];
+
+    };
+
+    /**
+     * Pushes the given packet of audio data onto the playback queue. Unlike
+     * other private functions within Guacamole.RawAudioPlayer, the type of the
+     * ArrayBuffer packet of audio data here need not be specific to the type
+     * of audio (as with SampleArray). The ArrayBuffer type provided by a
+     * Guacamole.ArrayBufferReader, for example, is sufficient. Any necessary
+     * conversions will be performed automatically internally.
+     *
+     * @private
+     * @param {ArrayBuffer} data
+     *     A raw packet of audio data that should be pushed onto the audio
+     *     playback queue.
+     */
+    var pushAudioPacket = function pushAudioPacket(data) {
+        packetQueue.push(new SampleArray(data));
+    };
+
+    /**
+     * Shifts off and returns a packet of audio data from the beginning of the
+     * playback queue. The length of this audio packet is determined
+     * dynamically according to the click-reduction algorithm implemented by
+     * splitAudioPacket().
+     *
+     * @private
+     * @returns {SampleArray}
+     *     A packet of audio data pulled from the beginning of the playback
+     *     queue.
+     */
+    var shiftAudioPacket = function shiftAudioPacket() {
+
+        // Flatten data in packet queue
+        var data = joinAudioPackets(packetQueue);
+        if (!data)
+            return null;
+
+        // Pull an appropriate amount of data from the front of the queue
+        packetQueue = splitAudioPacket(data);
+        data = packetQueue.shift();
+
+        return data;
+
+    };
+
+    /**
+     * Converts the given audio packet into an AudioBuffer, ready for playback
+     * by the Web Audio API. Unlike the raw audio packets received by this
+     * audio player, AudioBuffers require floating point samples and are split
+     * into isolated planes of channel-specific data.
+     *
+     * @private
+     * @param {SampleArray} data
+     *     The raw audio packet that should be converted into a Web Audio API
+     *     AudioBuffer.
+     *
+     * @returns {AudioBuffer}
+     *     A new Web Audio API AudioBuffer containing the provided audio data,
+     *     converted to the format used by the Web Audio API.
+     */
+    var toAudioBuffer = function toAudioBuffer(data) {
+
+        // Calculate total number of samples
+        var samples = data.length / format.channels;
+
+        // Determine exactly when packet CAN play
+        var packetTime = context.currentTime;
+        if (nextPacketTime &lt; packetTime)
+            nextPacketTime = packetTime;
+
+        // Get audio buffer for specified format
+        var audioBuffer = context.createBuffer(format.channels, samples, format.rate);
+
+        // Convert each channel
+        for (var channel = 0; channel &lt; format.channels; channel++) {
+
+            var audioData = audioBuffer.getChannelData(channel);
+
+            // Fill audio buffer with data for channel
+            var offset = channel;
+            for (var i = 0; i &lt; samples; i++) {
+                audioData[i] = data[offset] / maxSampleValue;
+                offset += format.channels;
+            }
+
+        }
+
+        return audioBuffer;
+
+    };
+
+    // Defer playback of received audio packets slightly
+    reader.ondata = function playReceivedAudio(data) {
+
+        // Push received samples onto queue
+        pushAudioPacket(new SampleArray(data));
+
+        // Shift off an arbitrary packet of audio data from the queue (this may
+        // be different in size from the packet just pushed)
+        var packet = shiftAudioPacket();
+        if (!packet)
+            return;
+
+        // Determine exactly when packet CAN play
+        var packetTime = context.currentTime;
+        if (nextPacketTime &lt; packetTime)
+            nextPacketTime = packetTime;
+
+        // Set up buffer source
+        var source = context.createBufferSource();
+        source.connect(context.destination);
+
+        // Use noteOn() instead of start() if necessary
+        if (!source.start)
+            source.start = source.noteOn;
+
+        // Schedule packet
+        source.buffer = toAudioBuffer(packet);
+        source.start(nextPacketTime);
+
+        // Update timeline by duration of scheduled packet
+        nextPacketTime += packet.length / format.channels / format.rate;
+
+    };
+
+    /** @override */
+    this.sync = function sync() {
+
+        // Calculate elapsed time since last sync
+        var now = context.currentTime;
+
+        // Reschedule future playback time such that playback latency is
+        // bounded within a reasonable latency threshold
+        nextPacketTime = Math.min(nextPacketTime, now + maxLatency);
+
+    };
+
+};
+
+Guacamole.RawAudioPlayer.prototype = new Guacamole.AudioPlayer();
+
+/**
+ * Determines whether the given mimetype is supported by
+ * Guacamole.RawAudioPlayer.
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by Guacamole.RawAudioPlayer,
+ *     false otherwise.
+ */
+Guacamole.RawAudioPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return false;
+
+    return Guacamole.RawAudioFormat.parse(mimetype) !== null;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by Guacamole.RawAudioPlayer. Only
+ * the core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a raw audio mimetype that may be supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by Guacamole.RawAudioPlayer, excluding
+ *     any parameters. If the necessary JavaScript APIs for playing raw audio
+ *     are absent, this list will be empty.
+ */
+Guacamole.RawAudioPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return [];
+
+    // We support 8-bit and 16-bit raw PCM
+    return [
+        'audio/L8',
+        'audio/L16'
+    ];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/AudioRecorder.js.html b/doc/1.1.0/guacamole-common-js/AudioRecorder.js.html
new file mode 100644
index 0000000..a118160
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/AudioRecorder.js.html
@@ -0,0 +1,632 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: AudioRecorder.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: AudioRecorder.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract audio recorder which streams arbitrary audio data to an underlying
+ * Guacamole.OutputStream. It is up to implementations of this class to provide
+ * some means of handling this Guacamole.OutputStream. Data produced by the
+ * recorder is to be sent along the provided stream immediately.
+ *
+ * @constructor
+ */
+Guacamole.AudioRecorder = function AudioRecorder() {
+
+    /**
+     * Callback which is invoked when the audio recording process has stopped
+     * and the underlying Guacamole stream has been closed normally. Audio will
+     * only resume recording if a new Guacamole.AudioRecorder is started. This
+     * Guacamole.AudioRecorder instance MAY NOT be reused.
+     *
+     * @event
+     */
+    this.onclose = null;
+
+    /**
+     * Callback which is invoked when the audio recording process cannot
+     * continue due to an error, if it has started at all. The underlying
+     * Guacamole stream is automatically closed. Future attempts to record
+     * audio should not be made, and this Guacamole.AudioRecorder instance
+     * MAY NOT be reused.
+     *
+     * @event
+     */
+    this.onerror = null;
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.AudioRecorder, and thus will be properly handled
+ * by Guacamole.AudioRecorder.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.AudioRecorder, false otherwise.
+ */
+Guacamole.AudioRecorder.isSupportedType = function isSupportedType(mimetype) {
+
+    return Guacamole.RawAudioRecorder.isSupportedType(mimetype);
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.AudioRecorder, in rough order of priority. Beware that only the
+ * core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a supported raw audio mimetype that is supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in
+ *     Guacamole.AudioRecorder, excluding any parameters.
+ */
+Guacamole.AudioRecorder.getSupportedTypes = function getSupportedTypes() {
+
+    return Guacamole.RawAudioRecorder.getSupportedTypes();
+
+};
+
+/**
+ * Returns an instance of Guacamole.AudioRecorder providing support for the
+ * given audio format. If support for the given audio format is not available,
+ * null is returned.
+ *
+ * @param {Guacamole.OutputStream} stream
+ *     The Guacamole.OutputStream to send audio data through.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data to be sent along the provided stream.
+ *
+ * @return {Guacamole.AudioRecorder}
+ *     A Guacamole.AudioRecorder instance supporting the given mimetype and
+ *     writing to the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.AudioRecorder.getInstance = function getInstance(stream, mimetype) {
+
+    // Use raw audio recorder if possible
+    if (Guacamole.RawAudioRecorder.isSupportedType(mimetype))
+        return new Guacamole.RawAudioRecorder(stream, mimetype);
+
+    // No support for given mimetype
+    return null;
+
+};
+
+/**
+ * Implementation of Guacamole.AudioRecorder providing support for raw PCM
+ * format audio. This recorder relies only on the Web Audio API and does not
+ * require any browser-level support for its audio formats.
+ *
+ * @constructor
+ * @augments Guacamole.AudioRecorder
+ * @param {Guacamole.OutputStream} stream
+ *     The Guacamole.OutputStream to write audio data to.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the audio data to send along the provided stream, which
+ *     must be a "audio/L8" or "audio/L16" mimetype with necessary parameters,
+ *     such as: "audio/L16;rate=44100,channels=2".
+ */
+Guacamole.RawAudioRecorder = function RawAudioRecorder(stream, mimetype) {
+
+    /**
+     * Reference to this RawAudioRecorder.
+     *
+     * @private
+     * @type {Guacamole.RawAudioRecorder}
+     */
+    var recorder = this;
+
+    /**
+     * The size of audio buffer to request from the Web Audio API when
+     * recording or processing audio, in sample-frames. This must be a power of
+     * two between 256 and 16384 inclusive, as required by
+     * AudioContext.createScriptProcessor().
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var BUFFER_SIZE = 2048;
+
+    /**
+     * The window size to use when applying Lanczos interpolation, commonly
+     * denoted by the variable "a".
+     * See: https://en.wikipedia.org/wiki/Lanczos_resampling
+     *
+     * @private
+     * @contant
+     * @type Number
+     */
+    var LANCZOS_WINDOW_SIZE = 3;
+
+    /**
+     * The format of audio this recorder will encode.
+     *
+     * @private
+     * @type {Guacamole.RawAudioFormat}
+     */
+    var format = Guacamole.RawAudioFormat.parse(mimetype);
+
+    /**
+     * An instance of a Web Audio API AudioContext object, or null if the
+     * Web Audio API is not supported.
+     *
+     * @private
+     * @type {AudioContext}
+     */
+    var context = Guacamole.AudioContextFactory.getAudioContext();
+
+    // Some browsers do not implement navigator.mediaDevices - this
+    // shims in this functionality to ensure code compatibility.
+    if (!navigator.mediaDevices)
+        navigator.mediaDevices = {};
+
+    // Browsers that either do not implement navigator.mediaDevices
+    // at all or do not implement it completely need the getUserMedia
+    // method defined.  This shims in this function by detecting
+    // one of the supported legacy methods.
+    if (!navigator.mediaDevices.getUserMedia)
+        navigator.mediaDevices.getUserMedia = (navigator.getUserMedia
+                || navigator.webkitGetUserMedia
+                || navigator.mozGetUserMedia
+                || navigator.msGetUserMedia).bind(navigator);
+
+    /**
+     * Guacamole.ArrayBufferWriter wrapped around the audio output stream
+     * provided when this Guacamole.RawAudioRecorder was created.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var writer = new Guacamole.ArrayBufferWriter(stream);
+
+    /**
+     * The type of typed array that will be used to represent each audio packet
+     * internally. This will be either Int8Array or Int16Array, depending on
+     * whether the raw audio format is 8-bit or 16-bit.
+     *
+     * @private
+     * @constructor
+     */
+    var SampleArray = (format.bytesPerSample === 1) ? window.Int8Array : window.Int16Array;
+
+    /**
+     * The maximum absolute value of any sample within a raw audio packet sent
+     * by this audio recorder. This depends only on the size of each sample,
+     * and will be 128 for 8-bit audio and 32768 for 16-bit audio.
+     *
+     * @private
+     * @type {Number}
+     */
+    var maxSampleValue = (format.bytesPerSample === 1) ? 128 : 32768;
+
+    /**
+     * The total number of audio samples read from the local audio input device
+     * over the life of this audio recorder.
+     *
+     * @private
+     * @type {Number}
+     */
+    var readSamples = 0;
+
+    /**
+     * The total number of audio samples written to the underlying Guacamole
+     * connection over the life of this audio recorder.
+     *
+     * @private
+     * @type {Number}
+     */
+    var writtenSamples = 0;
+
+    /**
+     * The audio stream provided by the browser, if allowed. If no stream has
+     * yet been received, this will be null.
+     *
+     * @type MediaStream
+     */
+    var mediaStream = null;
+
+    /**
+     * The source node providing access to the local audio input device.
+     *
+     * @private
+     * @type {MediaStreamAudioSourceNode}
+     */
+    var source = null;
+
+    /**
+     * The script processing node which receives audio input from the media
+     * stream source node as individual audio buffers.
+     *
+     * @private
+     * @type {ScriptProcessorNode}
+     */
+    var processor = null;
+
+    /**
+     * The normalized sinc function. The normalized sinc function is defined as
+     * 1 for x=0 and sin(PI * x) / (PI * x) for all other values of x.
+     *
+     * See: https://en.wikipedia.org/wiki/Sinc_function
+     *
+     * @private
+     * @param {Number} x
+     *     The point at which the normalized sinc function should be computed.
+     *
+     * @returns {Number}
+     *     The value of the normalized sinc function at x.
+     */
+    var sinc = function sinc(x) {
+
+        // The value of sinc(0) is defined as 1
+        if (x === 0)
+            return 1;
+
+        // Otherwise, normlized sinc(x) is sin(PI * x) / (PI * x)
+        var piX = Math.PI * x;
+        return Math.sin(piX) / piX;
+
+    };
+
+    /**
+     * Calculates the value of the Lanczos kernal at point x for a given window
+     * size. See: https://en.wikipedia.org/wiki/Lanczos_resampling
+     *
+     * @private
+     * @param {Number} x
+     *     The point at which the value of the Lanczos kernel should be
+     *     computed.
+     *
+     * @param {Number} a
+     *     The window size to use for the Lanczos kernel.
+     *
+     * @returns {Number}
+     *     The value of the Lanczos kernel at the given point for the given
+     *     window size.
+     */
+    var lanczos = function lanczos(x, a) {
+
+        // Lanczos is sinc(x) * sinc(x / a) for -a &lt; x &lt; a ...
+        if (-a &lt; x &amp;&amp; x &lt; a)
+            return sinc(x) * sinc(x / a);
+
+        // ... and 0 otherwise
+        return 0;
+
+    };
+
+    /**
+     * Determines the value of the waveform represented by the audio data at
+     * the given location. If the value cannot be determined exactly as it does
+     * not correspond to an exact sample within the audio data, the value will
+     * be derived through interpolating nearby samples.
+     *
+     * @private
+     * @param {Float32Array} audioData
+     *     An array of audio data, as returned by AudioBuffer.getChannelData().
+     *
+     * @param {Number} t
+     *     The relative location within the waveform from which the value
+     *     should be retrieved, represented as a floating point number between
+     *     0 and 1 inclusive, where 0 represents the earliest point in time and
+     *     1 represents the latest.
+     *
+     * @returns {Number}
+     *     The value of the waveform at the given location.
+     */
+    var interpolateSample = function getValueAt(audioData, t) {
+
+        // Convert [0, 1] range to [0, audioData.length - 1]
+        var index = (audioData.length - 1) * t;
+
+        // Determine the start and end points for the summation used by the
+        // Lanczos interpolation algorithm (see: https://en.wikipedia.org/wiki/Lanczos_resampling)
+        var start = Math.floor(index) - LANCZOS_WINDOW_SIZE + 1;
+        var end = Math.floor(index) + LANCZOS_WINDOW_SIZE;
+
+        // Calculate the value of the Lanczos interpolation function for the
+        // required range
+        var sum = 0;
+        for (var i = start; i &lt;= end; i++) {
+            sum += (audioData[i] || 0) * lanczos(index - i, LANCZOS_WINDOW_SIZE);
+        }
+
+        return sum;
+
+    };
+
+    /**
+     * Converts the given AudioBuffer into an audio packet, ready for streaming
+     * along the underlying output stream. Unlike the raw audio packets used by
+     * this audio recorder, AudioBuffers require floating point samples and are
+     * split into isolated planes of channel-specific data.
+     *
+     * @private
+     * @param {AudioBuffer} audioBuffer
+     *     The Web Audio API AudioBuffer that should be converted to a raw
+     *     audio packet.
+     *
+     * @returns {SampleArray}
+     *     A new raw audio packet containing the audio data from the provided
+     *     AudioBuffer.
+     */
+    var toSampleArray = function toSampleArray(audioBuffer) {
+
+        // Track overall amount of data read
+        var inSamples = audioBuffer.length;
+        readSamples += inSamples;
+
+        // Calculate the total number of samples that should be written as of
+        // the audio data just received and adjust the size of the output
+        // packet accordingly
+        var expectedWrittenSamples = Math.round(readSamples * format.rate / audioBuffer.sampleRate);
+        var outSamples = expectedWrittenSamples - writtenSamples;
+
+        // Update number of samples written
+        writtenSamples += outSamples;
+
+        // Get array for raw PCM storage
+        var data = new SampleArray(outSamples * format.channels);
+
+        // Convert each channel
+        for (var channel = 0; channel &lt; format.channels; channel++) {
+
+            var audioData = audioBuffer.getChannelData(channel);
+
+            // Fill array with data from audio buffer channel
+            var offset = channel;
+            for (var i = 0; i &lt; outSamples; i++) {
+                data[offset] = interpolateSample(audioData, i / (outSamples - 1)) * maxSampleValue;
+                offset += format.channels;
+            }
+
+        }
+
+        return data;
+
+    };
+
+    /**
+     * Requests access to the user's microphone and begins capturing audio. All
+     * received audio data is resampled as necessary and forwarded to the
+     * Guacamole stream underlying this Guacamole.RawAudioRecorder. This
+     * function must be invoked ONLY ONCE per instance of
+     * Guacamole.RawAudioRecorder.
+     *
+     * @private
+     */
+    var beginAudioCapture = function beginAudioCapture() {
+
+        // Attempt to retrieve an audio input stream from the browser
+        navigator.mediaDevices.getUserMedia({ 'audio' : true }, function streamReceived(stream) {
+
+            // Create processing node which receives appropriately-sized audio buffers
+            processor = context.createScriptProcessor(BUFFER_SIZE, format.channels, format.channels);
+            processor.connect(context.destination);
+
+            // Send blobs when audio buffers are received
+            processor.onaudioprocess = function processAudio(e) {
+                writer.sendData(toSampleArray(e.inputBuffer).buffer);
+            };
+
+            // Connect processing node to user's audio input source
+            source = context.createMediaStreamSource(stream);
+            source.connect(processor);
+
+            // Save stream for later cleanup
+            mediaStream = stream;
+
+        }, function streamDenied() {
+
+            // Simply end stream if audio access is not allowed
+            writer.sendEnd();
+
+            // Notify of closure
+            if (recorder.onerror)
+                recorder.onerror();
+
+        });
+
+    };
+
+    /**
+     * Stops capturing audio, if the capture has started, freeing all associated
+     * resources. If the capture has not started, this function simply ends the
+     * underlying Guacamole stream.
+     *
+     * @private
+     */
+    var stopAudioCapture = function stopAudioCapture() {
+
+        // Disconnect media source node from script processor
+        if (source)
+            source.disconnect();
+
+        // Disconnect associated script processor node
+        if (processor)
+            processor.disconnect();
+
+        // Stop capture
+        if (mediaStream) {
+            var tracks = mediaStream.getTracks();
+            for (var i = 0; i &lt; tracks.length; i++)
+                tracks[i].stop();
+        }
+
+        // Remove references to now-unneeded components
+        processor = null;
+        source = null;
+        mediaStream = null;
+
+        // End stream
+        writer.sendEnd();
+
+    };
+
+    // Once audio stream is successfully open, request and begin reading audio
+    writer.onack = function audioStreamAcknowledged(status) {
+
+        // Begin capture if successful response and not yet started
+        if (status.code === Guacamole.Status.Code.SUCCESS &amp;&amp; !mediaStream)
+            beginAudioCapture();
+
+        // Otherwise stop capture and cease handling any further acks
+        else {
+
+            // Stop capturing audio
+            stopAudioCapture();
+            writer.onack = null;
+
+            // Notify if stream has closed normally
+            if (status.code === Guacamole.Status.Code.RESOURCE_CLOSED) {
+                if (recorder.onclose)
+                    recorder.onclose();
+            }
+
+            // Otherwise notify of closure due to error
+            else {
+                if (recorder.onerror)
+                    recorder.onerror();
+            }
+
+        }
+
+    };
+
+};
+
+Guacamole.RawAudioRecorder.prototype = new Guacamole.AudioRecorder();
+
+/**
+ * Determines whether the given mimetype is supported by
+ * Guacamole.RawAudioRecorder.
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by Guacamole.RawAudioRecorder,
+ *     false otherwise.
+ */
+Guacamole.RawAudioRecorder.isSupportedType = function isSupportedType(mimetype) {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return false;
+
+    return Guacamole.RawAudioFormat.parse(mimetype) !== null;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by Guacamole.RawAudioRecorder. Only
+ * the core mimetypes themselves will be listed. Any mimetype parameters, even
+ * required ones, will not be included in the list. For example, "audio/L8" is
+ * a raw audio mimetype that may be supported, but it is invalid without
+ * additional parameters. Something like "audio/L8;rate=44100" would be valid,
+ * however (see https://tools.ietf.org/html/rfc4856).
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by Guacamole.RawAudioRecorder,
+ *     excluding any parameters. If the necessary JavaScript APIs for recording
+ *     raw audio are absent, this list will be empty.
+ */
+Guacamole.RawAudioRecorder.getSupportedTypes = function getSupportedTypes() {
+
+    // No supported types if no Web Audio API
+    if (!Guacamole.AudioContextFactory.getAudioContext())
+        return [];
+
+    // We support 8-bit and 16-bit raw PCM
+    return [
+        'audio/L8',
+        'audio/L16'
+    ];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/BlobReader.js.html b/doc/1.1.0/guacamole-common-js/BlobReader.js.html
new file mode 100644
index 0000000..a582911
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/BlobReader.js.html
@@ -0,0 +1,188 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: BlobReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: BlobReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, assembling all
+ * received blobs into a single blob by appending them to each other in order.
+ * Note that this object will overwrite any installed event handlers on the
+ * given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ * @param {String} mimetype The mimetype of the blob being built.
+ */
+Guacamole.BlobReader = function(stream, mimetype) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * The length of this Guacamole.InputStream in bytes.
+     * @private
+     */
+    var length = 0;
+
+    // Get blob builder
+    var blob_builder;
+    if      (window.BlobBuilder)       blob_builder = new BlobBuilder();
+    else if (window.WebKitBlobBuilder) blob_builder = new WebKitBlobBuilder();
+    else if (window.MozBlobBuilder)    blob_builder = new MozBlobBuilder();
+    else
+        blob_builder = new (function() {
+
+            var blobs = [];
+
+            /** @ignore */
+            this.append = function(data) {
+                blobs.push(new Blob([data], {"type": mimetype}));
+            };
+
+            /** @ignore */
+            this.getBlob = function() {
+                return new Blob(blobs, {"type": mimetype});
+            };
+
+        })();
+
+    // Append received blobs
+    stream.onblob = function(data) {
+
+        // Convert to ArrayBuffer
+        var binary = window.atob(data);
+        var arrayBuffer = new ArrayBuffer(binary.length);
+        var bufferView = new Uint8Array(arrayBuffer);
+
+        for (var i=0; i&lt;binary.length; i++)
+            bufferView[i] = binary.charCodeAt(i);
+
+        blob_builder.append(arrayBuffer);
+        length += arrayBuffer.byteLength;
+
+        // Call handler, if present
+        if (guac_reader.onprogress)
+            guac_reader.onprogress(arrayBuffer.byteLength);
+
+        // Send success response
+        stream.sendAck("OK", 0x0000);
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Returns the current length of this Guacamole.InputStream, in bytes.
+     * @return {Number} The current length of this Guacamole.InputStream.
+     */
+    this.getLength = function() {
+        return length;
+    };
+
+    /**
+     * Returns the contents of this Guacamole.BlobReader as a Blob.
+     * @return {Blob} The contents of this Guacamole.BlobReader.
+     */
+    this.getBlob = function() {
+        return blob_builder.getBlob();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {Number} length The number of bytes received.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/BlobWriter.js.html b/doc/1.1.0/guacamole-common-js/BlobWriter.js.html
new file mode 100644
index 0000000..d9f7878
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/BlobWriter.js.html
@@ -0,0 +1,306 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: BlobWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: BlobWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with the
+ * contents of provided Blob objects.
+ *
+ * @constructor
+ * @param {Guacamole.OutputStream} stream
+ *     The stream that data will be written to.
+ */
+Guacamole.BlobWriter = function BlobWriter(stream) {
+
+    /**
+     * Reference to this Guacamole.BlobWriter.
+     *
+     * @private
+     * @type {Guacamole.BlobWriter}
+     */
+    var guacWriter = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferWriter which will be used to send any
+     * provided file data.
+     *
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var arrayBufferWriter = new Guacamole.ArrayBufferWriter(stream);
+
+    // Initially, simply call onack for acknowledgements
+    arrayBufferWriter.onack = function(status) {
+        if (guacWriter.onack)
+            guacWriter.onack(status);
+    };
+
+    /**
+     * Browser-independent implementation of Blob.slice() which uses an end
+     * offset to determine the span of the resulting slice, rather than a
+     * length.
+     *
+     * @private
+     * @param {Blob} blob
+     *     The Blob to slice.
+     *
+     * @param {Number} start
+     *     The starting offset of the slice, in bytes, inclusive.
+     *
+     * @param {Number} end
+     *     The ending offset of the slice, in bytes, exclusive.
+     *
+     * @returns {Blob}
+     *     A Blob containing the data within the given Blob starting at
+     *     &lt;code>start&lt;/code> and ending at &lt;code>end - 1&lt;/code>.
+     */
+    var slice = function slice(blob, start, end) {
+
+        // Use prefixed implementations if necessary
+        var sliceImplementation = (
+                blob.slice
+             || blob.webkitSlice
+             || blob.mozSlice
+        ).bind(blob);
+
+        var length = end - start;
+
+        // The old Blob.slice() was length-based (not end-based). Try the
+        // length version first, if the two calls are not equivalent.
+        if (length !== end) {
+
+            // If the result of the slice() call matches the expected length,
+            // trust that result. It must be correct.
+            var sliceResult = sliceImplementation(start, length);
+            if (sliceResult.size === length)
+                return sliceResult;
+
+        }
+
+        // Otherwise, use the most-recent standard: end-based slice()
+        return sliceImplementation(start, end);
+
+    };
+
+    /**
+     * Sends the contents of the given blob over the underlying stream.
+     *
+     * @param {Blob} blob
+     *     The blob to send.
+     */
+    this.sendBlob = function sendBlob(blob) {
+
+        var offset = 0;
+        var reader = new FileReader();
+
+        /**
+         * Reads the next chunk of the blob provided to
+         * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}. The chunk itself
+         * is read asynchronously, and will not be available until
+         * reader.onload fires.
+         *
+         * @private
+         */
+        var readNextChunk = function readNextChunk() {
+
+            // If no further chunks remain, inform of completion and stop
+            if (offset >= blob.size) {
+
+                // Fire completion event for completed blob
+                if (guacWriter.oncomplete)
+                    guacWriter.oncomplete(blob);
+
+                // No further chunks to read
+                return;
+
+            }
+
+            // Obtain reference to next chunk as a new blob
+            var chunk = slice(blob, offset, offset + arrayBufferWriter.blobLength);
+            offset += arrayBufferWriter.blobLength;
+
+            // Attempt to read the blob contents represented by the blob into
+            // a new array buffer
+            reader.readAsArrayBuffer(chunk);
+
+        };
+
+        // Send each chunk over the stream, continue reading the next chunk
+        reader.onload = function chunkLoadComplete() {
+
+            // Send the successfully-read chunk
+            arrayBufferWriter.sendData(reader.result);
+
+            // Continue sending more chunks after the latest chunk is
+            // acknowledged
+            arrayBufferWriter.onack = function sendMoreChunks(status) {
+
+                if (guacWriter.onack)
+                    guacWriter.onack(status);
+
+                // Abort transfer if an error occurs
+                if (status.isError())
+                    return;
+
+                // Inform of blob upload progress via progress events
+                if (guacWriter.onprogress)
+                    guacWriter.onprogress(blob, offset - arrayBufferWriter.blobLength);
+
+                // Queue the next chunk for reading
+                readNextChunk();
+
+            };
+
+        };
+
+        // If an error prevents further reading, inform of error and stop
+        reader.onerror = function chunkLoadFailed() {
+
+            // Fire error event, including the context of the error
+            if (guacWriter.onerror)
+                guacWriter.onerror(blob, offset, reader.error);
+
+        };
+
+        // Begin reading the first chunk
+        readNextChunk();
+
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function sendEnd() {
+        arrayBufferWriter.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     *
+     * @event
+     * @param {Guacamole.Status} status
+     *     The status of the operation.
+     */
+    this.onack = null;
+
+    /**
+     * Fired when an error occurs reading a blob passed to
+     * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}. The transfer for the
+     * the given blob will cease, but the stream will remain open.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that was being read when the error occurred.
+     *
+     * @param {Number} offset
+     *     The offset of the failed read attempt within the blob, in bytes.
+     *
+     * @param {DOMError} error
+     *     The error that occurred.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired for each successfully-read chunk of data as a blob is being sent
+     * via [sendBlob()]{@link Guacamole.BlobWriter#sendBlob}.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that is being read.
+     *
+     * @param {Number} offset
+     *     The offset of the read that just succeeded.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired when a blob passed to
+     * [sendBlob()]{@link Guacamole.BlobWriter#sendBlob} has finished being
+     * sent.
+     *
+     * @event
+     * @param {Blob} blob
+     *     The blob that was sent.
+     */
+    this.oncomplete = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Client.js.html b/doc/1.1.0/guacamole-common-js/Client.js.html
new file mode 100644
index 0000000..e1c1f4d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Client.js.html
@@ -0,0 +1,1751 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Client.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Client.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Guacamole protocol client. Given a {@link Guacamole.Tunnel},
+ * automatically handles incoming and outgoing Guacamole instructions via the
+ * provided tunnel, updating its display using one or more canvas elements.
+ * 
+ * @constructor
+ * @param {Guacamole.Tunnel} tunnel The tunnel to use to send and receive
+ *                                  Guacamole instructions.
+ */
+Guacamole.Client = function(tunnel) {
+
+    var guac_client = this;
+
+    var STATE_IDLE          = 0;
+    var STATE_CONNECTING    = 1;
+    var STATE_WAITING       = 2;
+    var STATE_CONNECTED     = 3;
+    var STATE_DISCONNECTING = 4;
+    var STATE_DISCONNECTED  = 5;
+
+    var currentState = STATE_IDLE;
+    
+    var currentTimestamp = 0;
+    var pingInterval = null;
+
+    /**
+     * Translation from Guacamole protocol line caps to Layer line caps.
+     * @private
+     */
+    var lineCap = {
+        0: "butt",
+        1: "round",
+        2: "square"
+    };
+
+    /**
+     * Translation from Guacamole protocol line caps to Layer line caps.
+     * @private
+     */
+    var lineJoin = {
+        0: "bevel",
+        1: "miter",
+        2: "round"
+    };
+
+    /**
+     * The underlying Guacamole display.
+     *
+     * @private
+     * @type {Guacamole.Display}
+     */
+    var display = new Guacamole.Display();
+
+    /**
+     * All available layers and buffers
+     *
+     * @private
+     * @type {Object.&lt;Number, (Guacamole.Display.VisibleLayer|Guacamole.Layer)>}
+     */
+    var layers = {};
+    
+    /**
+     * All audio players currently in use by the client. Initially, this will
+     * be empty, but audio players may be allocated by the server upon request.
+     *
+     * @private
+     * @type {Object.&lt;Number, Guacamole.AudioPlayer>}
+     */
+    var audioPlayers = {};
+
+    /**
+     * All video players currently in use by the client. Initially, this will
+     * be empty, but video players may be allocated by the server upon request.
+     *
+     * @private
+     * @type {Object.&lt;Number, Guacamole.VideoPlayer>}
+     */
+    var videoPlayers = {};
+
+    // No initial parsers
+    var parsers = [];
+
+    // No initial streams 
+    var streams = [];
+
+    /**
+     * All current objects. The index of each object is dictated by the
+     * Guacamole server.
+     *
+     * @private
+     * @type {Guacamole.Object[]}
+     */
+    var objects = [];
+
+    // Pool of available stream indices
+    var stream_indices = new Guacamole.IntegerPool();
+
+    // Array of allocated output streams by index
+    var output_streams = [];
+
+    function setState(state) {
+        if (state != currentState) {
+            currentState = state;
+            if (guac_client.onstatechange)
+                guac_client.onstatechange(currentState);
+        }
+    }
+
+    function isConnected() {
+        return currentState == STATE_CONNECTED
+            || currentState == STATE_WAITING;
+    }
+
+    /**
+     * Produces an opaque representation of Guacamole.Client state which can be
+     * later imported through a call to importState(). This object is
+     * effectively an independent, compressed snapshot of protocol and display
+     * state. Invoking this function implicitly flushes the display.
+     *
+     * @param {function} callback
+     *     Callback which should be invoked once the state object is ready. The
+     *     state object will be passed to the callback as the sole parameter.
+     *     This callback may be invoked immediately, or later as the display
+     *     finishes rendering and becomes ready.
+     */
+    this.exportState = function exportState(callback) {
+
+        // Start with empty state
+        var state = {
+            'currentState' : currentState,
+            'currentTimestamp' : currentTimestamp,
+            'layers' : {}
+        };
+
+        var layersSnapshot = {};
+
+        // Make a copy of all current layers (protocol state)
+        for (var key in layers) {
+            layersSnapshot[key] = layers[key];
+        }
+
+        // Populate layers once data is available (display state, requires flush)
+        display.flush(function populateLayers() {
+
+            // Export each defined layer/buffer
+            for (var key in layersSnapshot) {
+
+                var index = parseInt(key);
+                var layer = layersSnapshot[key];
+                var canvas = layer.toCanvas();
+
+                // Store layer/buffer dimensions
+                var exportLayer = {
+                    'width'  : layer.width,
+                    'height' : layer.height
+                };
+
+                // Store layer/buffer image data, if it can be generated
+                if (layer.width &amp;&amp; layer.height)
+                    exportLayer.url = canvas.toDataURL('image/png');
+
+                // Add layer properties if not a buffer nor the default layer
+                if (index > 0) {
+                    exportLayer.x = layer.x;
+                    exportLayer.y = layer.y;
+                    exportLayer.z = layer.z;
+                    exportLayer.alpha = layer.alpha;
+                    exportLayer.matrix = layer.matrix;
+                    exportLayer.parent = getLayerIndex(layer.parent);
+                }
+
+                // Store exported layer
+                state.layers[key] = exportLayer;
+
+            }
+
+            // Invoke callback now that the state is ready
+            callback(state);
+
+        });
+
+    };
+
+    /**
+     * Restores Guacamole.Client protocol and display state based on an opaque
+     * object from a prior call to exportState(). The Guacamole.Client instance
+     * used to export that state need not be the same as this instance.
+     *
+     * @param {Object} state
+     *     An opaque representation of Guacamole.Client state from a prior call
+     *     to exportState().
+     *
+     * @param {function} [callback]
+     *     The function to invoke when state has finished being imported. This
+     *     may happen immediately, or later as images within the provided state
+     *     object are loaded.
+     */
+    this.importState = function importState(state, callback) {
+
+        var key;
+        var index;
+
+        currentState = state.currentState;
+        currentTimestamp = state.currentTimestamp;
+
+        // Dispose of all layers
+        for (key in layers) {
+            index = parseInt(key);
+            if (index > 0)
+                display.dispose(layers[key]);
+        }
+
+        layers = {};
+
+        // Import state of each layer/buffer
+        for (key in state.layers) {
+
+            index = parseInt(key);
+
+            var importLayer = state.layers[key];
+            var layer = getLayer(index);
+
+            // Reset layer size
+            display.resize(layer, importLayer.width, importLayer.height);
+
+            // Initialize new layer if it has associated data
+            if (importLayer.url) {
+                display.setChannelMask(layer, Guacamole.Layer.SRC);
+                display.draw(layer, 0, 0, importLayer.url);
+            }
+
+            // Set layer-specific properties if not a buffer nor the default layer
+            if (index > 0 &amp;&amp; importLayer.parent >= 0) {
+
+                // Apply layer position and set parent
+                var parent = getLayer(importLayer.parent);
+                display.move(layer, parent, importLayer.x, importLayer.y, importLayer.z);
+
+                // Set layer transparency
+                display.shade(layer, importLayer.alpha);
+
+                // Apply matrix transform
+                var matrix = importLayer.matrix;
+                display.distort(layer,
+                    matrix[0], matrix[1], matrix[2],
+                    matrix[3], matrix[4], matrix[5]);
+
+            }
+
+        }
+
+        // Flush changes to display
+        display.flush(callback);
+
+    };
+
+    /**
+     * Returns the underlying display of this Guacamole.Client. The display
+     * contains an Element which can be added to the DOM, causing the
+     * display to become visible.
+     * 
+     * @return {Guacamole.Display} The underlying display of this
+     *                             Guacamole.Client.
+     */
+    this.getDisplay = function() {
+        return display;
+    };
+
+    /**
+     * Sends the current size of the screen.
+     * 
+     * @param {Number} width The width of the screen.
+     * @param {Number} height The height of the screen.
+     */
+    this.sendSize = function(width, height) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("size", width, height);
+
+    };
+
+    /**
+     * Sends a key event having the given properties as if the user
+     * pressed or released a key.
+     * 
+     * @param {Boolean} pressed Whether the key is pressed (true) or released
+     *                          (false).
+     * @param {Number} keysym The keysym of the key being pressed or released.
+     */
+    this.sendKeyEvent = function(pressed, keysym) {
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("key", keysym, pressed);
+    };
+
+    /**
+     * Sends a mouse event having the properties provided by the given mouse
+     * state.
+     * 
+     * @param {Guacamole.Mouse.State} mouseState The state of the mouse to send
+     *                                           in the mouse event.
+     */
+    this.sendMouseState = function(mouseState) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        // Update client-side cursor
+        display.moveCursor(
+            Math.floor(mouseState.x),
+            Math.floor(mouseState.y)
+        );
+
+        // Build mask
+        var buttonMask = 0;
+        if (mouseState.left)   buttonMask |= 1;
+        if (mouseState.middle) buttonMask |= 2;
+        if (mouseState.right)  buttonMask |= 4;
+        if (mouseState.up)     buttonMask |= 8;
+        if (mouseState.down)   buttonMask |= 16;
+
+        // Send message
+        tunnel.sendMessage("mouse", Math.floor(mouseState.x), Math.floor(mouseState.y), buttonMask);
+    };
+
+    /**
+     * Allocates an available stream index and creates a new
+     * Guacamole.OutputStream using that index, associating the resulting
+     * stream with this Guacamole.Client. Note that this stream will not yet
+     * exist as far as the other end of the Guacamole connection is concerned.
+     * Streams exist within the Guacamole protocol only when referenced by an
+     * instruction which creates the stream, such as a "clipboard", "file", or
+     * "pipe" instruction.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     A new Guacamole.OutputStream with a newly-allocated index and
+     *     associated with this Guacamole.Client.
+     */
+    this.createOutputStream = function createOutputStream() {
+
+        // Allocate index
+        var index = stream_indices.next();
+
+        // Return new stream
+        var stream = output_streams[index] = new Guacamole.OutputStream(guac_client, index);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new audio stream for writing, where audio data having the give
+     * mimetype will be sent along the returned stream. The instruction
+     * necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the audio data that will be sent along the returned
+     *     stream.
+     *
+     * @return {Guacamole.OutputStream}
+     *     The created audio stream.
+     */
+    this.createAudioStream = function(mimetype) {
+
+        // Allocate and associate stream with audio metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("audio", stream.index, mimetype);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new file for writing, having the given index, mimetype and
+     * filename. The instruction necessary to create this stream will
+     * automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the file being sent.
+     * @param {String} filename The filename of the file being sent.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createFileStream = function(mimetype, filename) {
+
+        // Allocate and associate stream with file metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("file", stream.index, mimetype, filename);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new pipe for writing, having the given name and mimetype. The
+     * instruction necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the data being sent.
+     * @param {String} name The name of the pipe.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createPipeStream = function(mimetype, name) {
+
+        // Allocate and associate stream with pipe metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("pipe", stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new clipboard object for writing, having the given mimetype. The
+     * instruction necessary to create this stream will automatically be sent.
+     *
+     * @param {String} mimetype The mimetype of the data being sent.
+     * @param {String} name The name of the pipe.
+     * @return {Guacamole.OutputStream} The created file stream.
+     */
+    this.createClipboardStream = function(mimetype) {
+
+        // Allocate and associate stream with clipboard metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("clipboard", stream.index, mimetype);
+        return stream;
+
+    };
+
+    /**
+     * Opens a new argument value stream for writing, having the given
+     * parameter name and mimetype, requesting that the connection parameter
+     * with the given name be updated to the value described by the contents
+     * of the following stream. The instruction necessary to create this stream
+     * will automatically be sent.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data being sent.
+     *
+     * @param {String} name
+     *     The name of the connection parameter to attempt to update.
+     *
+     * @return {Guacamole.OutputStream}
+     *     The created argument value stream.
+     */
+    this.createArgumentValueStream = function createArgumentValueStream(mimetype, name) {
+
+        // Allocate and associate stream with argument value metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("argv", stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Creates a new output stream associated with the given object and having
+     * the given mimetype and name. The legality of a mimetype and name is
+     * dictated by the object itself. The instruction necessary to create this
+     * stream will automatically be sent.
+     *
+     * @param {Number} index
+     *     The index of the object for which the output stream is being
+     *     created.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be sent to the output stream.
+     *
+     * @param {String} name
+     *     The defined name of an output stream within the given object.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     An output stream which will write blobs to the named output stream
+     *     of the given object.
+     */
+    this.createObjectOutputStream = function createObjectOutputStream(index, mimetype, name) {
+
+        // Allocate and ssociate stream with object metadata
+        var stream = guac_client.createOutputStream();
+        tunnel.sendMessage("put", index, stream.index, mimetype, name);
+        return stream;
+
+    };
+
+    /**
+     * Requests read access to the input stream having the given name. If
+     * successful, a new input stream will be created.
+     *
+     * @param {Number} index
+     *     The index of the object from which the input stream is being
+     *     requested.
+     *
+     * @param {String} name
+     *     The name of the input stream to request.
+     */
+    this.requestObjectInputStream = function requestObjectInputStream(index, name) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("get", index, name);
+    };
+
+    /**
+     * Acknowledge receipt of a blob on the stream with the given index.
+     * 
+     * @param {Number} index The index of the stream associated with the
+     *                       received blob.
+     * @param {String} message A human-readable message describing the error
+     *                         or status.
+     * @param {Number} code The error code, if any, or 0 for success.
+     */
+    this.sendAck = function(index, message, code) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("ack", index, message, code);
+    };
+
+    /**
+     * Given the index of a file, writes a blob of data to that file.
+     * 
+     * @param {Number} index The index of the file to write to.
+     * @param {String} data Base64-encoded data to write to the file.
+     */
+    this.sendBlob = function(index, data) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        tunnel.sendMessage("blob", index, data);
+    };
+
+    /**
+     * Marks a currently-open stream as complete. The other end of the
+     * Guacamole connection will be notified via an "end" instruction that the
+     * stream is closed, and the index will be made available for reuse in
+     * future streams.
+     * 
+     * @param {Number} index
+     *     The index of the stream to end.
+     */
+    this.endStream = function(index) {
+
+        // Do not send requests if not connected
+        if (!isConnected())
+            return;
+
+        // Explicitly close stream by sending "end" instruction
+        tunnel.sendMessage("end", index);
+
+        // Free associated index and stream if they exist
+        if (output_streams[index]) {
+            stream_indices.free(index);
+            delete output_streams[index];
+        }
+
+    };
+
+    /**
+     * Fired whenever the state of this Guacamole.Client changes.
+     * 
+     * @event
+     * @param {Number} state The new state of the client.
+     */
+    this.onstatechange = null;
+
+    /**
+     * Fired when the remote client sends a name update.
+     * 
+     * @event
+     * @param {String} name The new name of this client.
+     */
+    this.onname = null;
+
+    /**
+     * Fired when an error is reported by the remote client, and the connection
+     * is being closed.
+     * 
+     * @event
+     * @param {Guacamole.Status} status A status object which describes the
+     *                                  error.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired when a audio stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive audio data from the server.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the audio data which will be received.
+     *
+     * @return {Guacamole.AudioPlayer}
+     *     An object which implements the Guacamole.AudioPlayer interface and
+     *     has been initialied to play the data in the provided stream, or null
+     *     if the built-in audio players of the Guacamole client should be
+     *     used.
+     */
+    this.onaudio = null;
+
+    /**
+     * Fired when a video stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive video data from the server.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The destination layer on which the received video data should be
+     *     played. It is the responsibility of the Guacamole.VideoPlayer
+     *     implementation to play the received data within this layer.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the video data which will be received.
+     *
+     * @return {Guacamole.VideoPlayer}
+     *     An object which implements the Guacamole.VideoPlayer interface and
+     *     has been initialied to play the data in the provided stream, or null
+     *     if the built-in video players of the Guacamole client should be
+     *     used.
+     */
+    this.onvideo = null;
+
+    /**
+     * Fired when the current value of a connection parameter is being exposed
+     * by the server.
+     *
+     * @event
+     * @param {Guacamole.InputStream} stream
+     *     The stream that will receive connection parameter data from the
+     *     server.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be received.
+     *
+     * @param {String} name
+     *     The name of the connection parameter whose value is being exposed.
+     */
+    this.onargv = null;
+
+    /**
+     * Fired when the clipboard of the remote client is changing.
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive
+     *                                       clipboard data from the server.
+     * @param {String} mimetype The mimetype of the data which will be received.
+     */
+    this.onclipboard = null;
+
+    /**
+     * Fired when a file stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data.
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive data
+     *                                       from the server.
+     * @param {String} mimetype The mimetype of the file received.
+     * @param {String} filename The name of the file received.
+     */
+    this.onfile = null;
+
+    /**
+     * Fired when a filesystem object is created. The object provided to this
+     * event handler will contain its own event handlers and functions for
+     * requesting and handling data.
+     *
+     * @event
+     * @param {Guacamole.Object} object
+     *     The created filesystem object.
+     *
+     * @param {String} name
+     *     The name of the filesystem.
+     */
+    this.onfilesystem = null;
+
+    /**
+     * Fired when a pipe stream is created. The stream provided to this event
+     * handler will contain its own event handlers for received data;
+     * 
+     * @event
+     * @param {Guacamole.InputStream} stream The stream that will receive data
+     *                                       from the server.
+     * @param {String} mimetype The mimetype of the data which will be received.
+     * @param {String} name The name of the pipe.
+     */
+    this.onpipe = null;
+
+    /**
+     * Fired whenever a sync instruction is received from the server, indicating
+     * that the server is finished processing any input from the client and
+     * has sent any results.
+     * 
+     * @event
+     * @param {Number} timestamp The timestamp associated with the sync
+     *                           instruction.
+     */
+    this.onsync = null;
+
+    /**
+     * Returns the layer with the given index, creating it if necessary.
+     * Positive indices refer to visible layers, an index of zero refers to
+     * the default layer, and negative indices refer to buffers.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the layer to retrieve.
+     *
+     * @return {Guacamole.Display.VisibleLayer|Guacamole.Layer}
+     *     The layer having the given index.
+     */
+    var getLayer = function getLayer(index) {
+
+        // Get layer, create if necessary
+        var layer = layers[index];
+        if (!layer) {
+
+            // Create layer based on index
+            if (index === 0)
+                layer = display.getDefaultLayer();
+            else if (index > 0)
+                layer = display.createLayer();
+            else
+                layer = display.createBuffer();
+                
+            // Add new layer
+            layers[index] = layer;
+
+        }
+
+        return layer;
+
+    };
+
+    /**
+     * Returns the index passed to getLayer() when the given layer was created.
+     * Positive indices refer to visible layers, an index of zero refers to the
+     * default layer, and negative indices refer to buffers.
+     *
+     * @param {Guacamole.Display.VisibleLayer|Guacamole.Layer} layer
+     *     The layer whose index should be determined.
+     *
+     * @returns {Number}
+     *     The index of the given layer, or null if no such layer is associated
+     *     with this client.
+     */
+    var getLayerIndex = function getLayerIndex(layer) {
+
+        // Avoid searching if there clearly is no such layer
+        if (!layer)
+            return null;
+
+        // Search through each layer, returning the index of the given layer
+        // once found
+        for (var key in layers) {
+            if (layer === layers[key])
+                return parseInt(key);
+        }
+
+        // Otherwise, no such index
+        return null;
+
+    };
+
+    function getParser(index) {
+
+        var parser = parsers[index];
+
+        // If parser not yet created, create it, and tie to the
+        // oninstruction handler of the tunnel.
+        if (parser == null) {
+            parser = parsers[index] = new Guacamole.Parser();
+            parser.oninstruction = tunnel.oninstruction;
+        }
+
+        return parser;
+
+    }
+
+    /**
+     * Handlers for all defined layer properties.
+     * @private
+     */
+    var layerPropertyHandlers = {
+
+        "miter-limit": function(layer, value) {
+            display.setMiterLimit(layer, parseFloat(value));
+        }
+
+    };
+    
+    /**
+     * Handlers for all instruction opcodes receivable by a Guacamole protocol
+     * client.
+     * @private
+     */
+    var instructionHandlers = {
+
+        "ack": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var reason = parameters[1];
+            var code = parseInt(parameters[2]);
+
+            // Get stream
+            var stream = output_streams[stream_index];
+            if (stream) {
+
+                // Signal ack if handler defined
+                if (stream.onack)
+                    stream.onack(new Guacamole.Status(code, reason));
+
+                // If code is an error, invalidate stream if not already
+                // invalidated by onack handler
+                if (code >= 0x0100 &amp;&amp; output_streams[stream_index] === stream) {
+                    stream_indices.free(stream_index);
+                    delete output_streams[stream_index];
+                }
+
+            }
+
+        },
+
+        "arc": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+            var radius = parseInt(parameters[3]);
+            var startAngle = parseFloat(parameters[4]);
+            var endAngle = parseFloat(parameters[5]);
+            var negative = parseInt(parameters[6]);
+
+            display.arc(layer, x, y, radius, startAngle, endAngle, negative != 0);
+
+        },
+
+        "argv": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var name = parameters[2];
+
+            // Create stream
+            if (guac_client.onargv) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onargv(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Receiving argument values unsupported", 0x0100);
+
+        },
+
+        "audio": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+
+            // Create stream 
+            var stream = streams[stream_index] =
+                    new Guacamole.InputStream(guac_client, stream_index);
+
+            // Get player instance via callback
+            var audioPlayer = null;
+            if (guac_client.onaudio)
+                audioPlayer = guac_client.onaudio(stream, mimetype);
+
+            // If unsuccessful, try to use a default implementation
+            if (!audioPlayer)
+                audioPlayer = Guacamole.AudioPlayer.getInstance(stream, mimetype);
+
+            // If we have successfully retrieved an audio player, send success response
+            if (audioPlayer) {
+                audioPlayers[stream_index] = audioPlayer;
+                guac_client.sendAck(stream_index, "OK", 0x0000);
+            }
+
+            // Otherwise, mimetype must be unsupported
+            else
+                guac_client.sendAck(stream_index, "BAD TYPE", 0x030F);
+
+        },
+
+        "blob": function(parameters) {
+
+            // Get stream 
+            var stream_index = parseInt(parameters[0]);
+            var data = parameters[1];
+            var stream = streams[stream_index];
+
+            // Write data
+            if (stream &amp;&amp; stream.onblob)
+                stream.onblob(data);
+
+        },
+
+        "body" : function handleBody(parameters) {
+
+            // Get object
+            var objectIndex = parseInt(parameters[0]);
+            var object = objects[objectIndex];
+
+            var streamIndex = parseInt(parameters[1]);
+            var mimetype = parameters[2];
+            var name = parameters[3];
+
+            // Create stream if handler defined
+            if (object &amp;&amp; object.onbody) {
+                var stream = streams[streamIndex] = new Guacamole.InputStream(guac_client, streamIndex);
+                object.onbody(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(streamIndex, "Receipt of body unsupported", 0x0100);
+
+        },
+
+        "cfill": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var r = parseInt(parameters[2]);
+            var g = parseInt(parameters[3]);
+            var b = parseInt(parameters[4]);
+            var a = parseInt(parameters[5]);
+
+            display.setChannelMask(layer, channelMask);
+            display.fillColor(layer, r, g, b, a);
+
+        },
+
+        "clip": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.clip(layer);
+
+        },
+
+        "clipboard": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+
+            // Create stream 
+            if (guac_client.onclipboard) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onclipboard(stream, mimetype);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Clipboard unsupported", 0x0100);
+
+        },
+
+        "close": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.close(layer);
+
+        },
+
+        "copy": function(parameters) {
+
+            var srcL = getLayer(parseInt(parameters[0]));
+            var srcX = parseInt(parameters[1]);
+            var srcY = parseInt(parameters[2]);
+            var srcWidth = parseInt(parameters[3]);
+            var srcHeight = parseInt(parameters[4]);
+            var channelMask = parseInt(parameters[5]);
+            var dstL = getLayer(parseInt(parameters[6]));
+            var dstX = parseInt(parameters[7]);
+            var dstY = parseInt(parameters[8]);
+
+            display.setChannelMask(dstL, channelMask);
+            display.copy(srcL, srcX, srcY, srcWidth, srcHeight, 
+                         dstL, dstX, dstY);
+
+        },
+
+        "cstroke": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var cap = lineCap[parseInt(parameters[2])];
+            var join = lineJoin[parseInt(parameters[3])];
+            var thickness = parseInt(parameters[4]);
+            var r = parseInt(parameters[5]);
+            var g = parseInt(parameters[6]);
+            var b = parseInt(parameters[7]);
+            var a = parseInt(parameters[8]);
+
+            display.setChannelMask(layer, channelMask);
+            display.strokeColor(layer, cap, join, thickness, r, g, b, a);
+
+        },
+
+        "cursor": function(parameters) {
+
+            var cursorHotspotX = parseInt(parameters[0]);
+            var cursorHotspotY = parseInt(parameters[1]);
+            var srcL = getLayer(parseInt(parameters[2]));
+            var srcX = parseInt(parameters[3]);
+            var srcY = parseInt(parameters[4]);
+            var srcWidth = parseInt(parameters[5]);
+            var srcHeight = parseInt(parameters[6]);
+
+            display.setCursor(cursorHotspotX, cursorHotspotY,
+                              srcL, srcX, srcY, srcWidth, srcHeight);
+
+        },
+
+        "curve": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var cp1x = parseInt(parameters[1]);
+            var cp1y = parseInt(parameters[2]);
+            var cp2x = parseInt(parameters[3]);
+            var cp2y = parseInt(parameters[4]);
+            var x = parseInt(parameters[5]);
+            var y = parseInt(parameters[6]);
+
+            display.curveTo(layer, cp1x, cp1y, cp2x, cp2y, x, y);
+
+        },
+
+        "disconnect" : function handleDisconnect(parameters) {
+
+            // Explicitly tear down connection
+            guac_client.disconnect();
+
+        },
+
+        "dispose": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+
+            // If visible layer, remove from parent
+            if (layer_index > 0) {
+
+                // Remove from parent
+                var layer = getLayer(layer_index);
+                display.dispose(layer);
+
+                // Delete reference
+                delete layers[layer_index];
+
+            }
+
+            // If buffer, just delete reference
+            else if (layer_index &lt; 0)
+                delete layers[layer_index];
+
+            // Attempting to dispose the root layer currently has no effect.
+
+        },
+
+        "distort": function(parameters) {
+
+            var layer_index = parseInt(parameters[0]);
+            var a = parseFloat(parameters[1]);
+            var b = parseFloat(parameters[2]);
+            var c = parseFloat(parameters[3]);
+            var d = parseFloat(parameters[4]);
+            var e = parseFloat(parameters[5]);
+            var f = parseFloat(parameters[6]);
+
+            // Only valid for visible layers (not buffers)
+            if (layer_index >= 0) {
+                var layer = getLayer(layer_index);
+                display.distort(layer, a, b, c, d, e, f);
+            }
+
+        },
+ 
+        "error": function(parameters) {
+
+            var reason = parameters[0];
+            var code = parseInt(parameters[1]);
+
+            // Call handler if defined
+            if (guac_client.onerror)
+                guac_client.onerror(new Guacamole.Status(code, reason));
+
+            guac_client.disconnect();
+
+        },
+
+        "end": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+
+            // Get stream
+            var stream = streams[stream_index];
+            if (stream) {
+
+                // Signal end of stream if handler defined
+                if (stream.onend)
+                    stream.onend();
+
+                // Invalidate stream
+                delete streams[stream_index];
+
+            }
+
+        },
+
+        "file": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var filename = parameters[2];
+
+            // Create stream 
+            if (guac_client.onfile) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onfile(stream, mimetype, filename);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "File transfer unsupported", 0x0100);
+
+        },
+
+        "filesystem" : function handleFilesystem(parameters) {
+
+            var objectIndex = parseInt(parameters[0]);
+            var name = parameters[1];
+
+            // Create object, if supported
+            if (guac_client.onfilesystem) {
+                var object = objects[objectIndex] = new Guacamole.Object(guac_client, objectIndex);
+                guac_client.onfilesystem(object, name);
+            }
+
+            // If unsupported, simply ignore the availability of the filesystem
+
+        },
+
+        "identity": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.setTransform(layer, 1, 0, 0, 1, 0, 0);
+
+        },
+
+        "img": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var channelMask = parseInt(parameters[1]);
+            var layer = getLayer(parseInt(parameters[2]));
+            var mimetype = parameters[3];
+            var x = parseInt(parameters[4]);
+            var y = parseInt(parameters[5]);
+
+            // Create stream
+            var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+            var reader = new Guacamole.DataURIReader(stream, mimetype);
+
+            // Draw image when stream is complete
+            reader.onend = function drawImageBlob() {
+                display.setChannelMask(layer, channelMask);
+                display.draw(layer, x, y, reader.getURI());
+            };
+
+        },
+
+        "jpeg": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var data = parameters[4];
+
+            display.setChannelMask(layer, channelMask);
+            display.draw(layer, x, y, "data:image/jpeg;base64," + data);
+
+        },
+
+        "lfill": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var srcLayer = getLayer(parseInt(parameters[2]));
+
+            display.setChannelMask(layer, channelMask);
+            display.fillLayer(layer, srcLayer);
+
+        },
+
+        "line": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+
+            display.lineTo(layer, x, y);
+
+        },
+
+        "lstroke": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var srcLayer = getLayer(parseInt(parameters[2]));
+
+            display.setChannelMask(layer, channelMask);
+            display.strokeLayer(layer, srcLayer);
+
+        },
+
+        "mouse" : function handleMouse(parameters) {
+
+            var x = parseInt(parameters[0]);
+            var y = parseInt(parameters[1]);
+
+            // Display and move software cursor to received coordinates
+            display.showCursor(true);
+            display.moveCursor(x, y);
+
+        },
+
+        "move": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+            var parent_index = parseInt(parameters[1]);
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var z = parseInt(parameters[4]);
+
+            // Only valid for non-default layers
+            if (layer_index > 0 &amp;&amp; parent_index >= 0) {
+                var layer = getLayer(layer_index);
+                var parent = getLayer(parent_index);
+                display.move(layer, parent, x, y, z);
+            }
+
+        },
+
+        "name": function(parameters) {
+            if (guac_client.onname) guac_client.onname(parameters[0]);
+        },
+
+        "nest": function(parameters) {
+            var parser = getParser(parseInt(parameters[0]));
+            parser.receive(parameters[1]);
+        },
+
+        "pipe": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var mimetype = parameters[1];
+            var name = parameters[2];
+
+            // Create stream 
+            if (guac_client.onpipe) {
+                var stream = streams[stream_index] = new Guacamole.InputStream(guac_client, stream_index);
+                guac_client.onpipe(stream, mimetype, name);
+            }
+
+            // Otherwise, unsupported
+            else
+                guac_client.sendAck(stream_index, "Named pipes unsupported", 0x0100);
+
+        },
+
+        "png": function(parameters) {
+
+            var channelMask = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var x = parseInt(parameters[2]);
+            var y = parseInt(parameters[3]);
+            var data = parameters[4];
+
+            display.setChannelMask(layer, channelMask);
+            display.draw(layer, x, y, "data:image/png;base64," + data);
+
+        },
+
+        "pop": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.pop(layer);
+
+        },
+
+        "push": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.push(layer);
+
+        },
+ 
+        "rect": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+            var w = parseInt(parameters[3]);
+            var h = parseInt(parameters[4]);
+
+            display.rect(layer, x, y, w, h);
+
+        },
+        
+        "reset": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+
+            display.reset(layer);
+
+        },
+        
+        "set": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var name = parameters[1];
+            var value = parameters[2];
+
+            // Call property handler if defined
+            var handler = layerPropertyHandlers[name];
+            if (handler)
+                handler(layer, value);
+
+        },
+
+        "shade": function(parameters) {
+            
+            var layer_index = parseInt(parameters[0]);
+            var a = parseInt(parameters[1]);
+
+            // Only valid for visible layers (not buffers)
+            if (layer_index >= 0) {
+                var layer = getLayer(layer_index);
+                display.shade(layer, a);
+            }
+
+        },
+
+        "size": function(parameters) {
+
+            var layer_index = parseInt(parameters[0]);
+            var layer = getLayer(layer_index);
+            var width = parseInt(parameters[1]);
+            var height = parseInt(parameters[2]);
+
+            display.resize(layer, width, height);
+
+        },
+        
+        "start": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var x = parseInt(parameters[1]);
+            var y = parseInt(parameters[2]);
+
+            display.moveTo(layer, x, y);
+
+        },
+
+        "sync": function(parameters) {
+
+            var timestamp = parseInt(parameters[0]);
+
+            // Flush display, send sync when done
+            display.flush(function displaySyncComplete() {
+
+                // Synchronize all audio players
+                for (var index in audioPlayers) {
+                    var audioPlayer = audioPlayers[index];
+                    if (audioPlayer)
+                        audioPlayer.sync();
+                }
+
+                // Send sync response to server
+                if (timestamp !== currentTimestamp) {
+                    tunnel.sendMessage("sync", timestamp);
+                    currentTimestamp = timestamp;
+                }
+
+            });
+
+            // If received first update, no longer waiting.
+            if (currentState === STATE_WAITING)
+                setState(STATE_CONNECTED);
+
+            // Call sync handler if defined
+            if (guac_client.onsync)
+                guac_client.onsync(timestamp);
+
+        },
+
+        "transfer": function(parameters) {
+
+            var srcL = getLayer(parseInt(parameters[0]));
+            var srcX = parseInt(parameters[1]);
+            var srcY = parseInt(parameters[2]);
+            var srcWidth = parseInt(parameters[3]);
+            var srcHeight = parseInt(parameters[4]);
+            var function_index = parseInt(parameters[5]);
+            var dstL = getLayer(parseInt(parameters[6]));
+            var dstX = parseInt(parameters[7]);
+            var dstY = parseInt(parameters[8]);
+
+            /* SRC */
+            if (function_index === 0x3)
+                display.put(srcL, srcX, srcY, srcWidth, srcHeight, 
+                    dstL, dstX, dstY);
+
+            /* Anything else that isn't a NO-OP */
+            else if (function_index !== 0x5)
+                display.transfer(srcL, srcX, srcY, srcWidth, srcHeight, 
+                    dstL, dstX, dstY, Guacamole.Client.DefaultTransferFunction[function_index]);
+
+        },
+
+        "transform": function(parameters) {
+
+            var layer = getLayer(parseInt(parameters[0]));
+            var a = parseFloat(parameters[1]);
+            var b = parseFloat(parameters[2]);
+            var c = parseFloat(parameters[3]);
+            var d = parseFloat(parameters[4]);
+            var e = parseFloat(parameters[5]);
+            var f = parseFloat(parameters[6]);
+
+            display.transform(layer, a, b, c, d, e, f);
+
+        },
+
+        "undefine" : function handleUndefine(parameters) {
+
+            // Get object
+            var objectIndex = parseInt(parameters[0]);
+            var object = objects[objectIndex];
+
+            // Signal end of object definition
+            if (object &amp;&amp; object.onundefine)
+                object.onundefine();
+
+        },
+
+        "video": function(parameters) {
+
+            var stream_index = parseInt(parameters[0]);
+            var layer = getLayer(parseInt(parameters[1]));
+            var mimetype = parameters[2];
+
+            // Create stream
+            var stream = streams[stream_index] =
+                    new Guacamole.InputStream(guac_client, stream_index);
+
+            // Get player instance via callback
+            var videoPlayer = null;
+            if (guac_client.onvideo)
+                videoPlayer = guac_client.onvideo(stream, layer, mimetype);
+
+            // If unsuccessful, try to use a default implementation
+            if (!videoPlayer)
+                videoPlayer = Guacamole.VideoPlayer.getInstance(stream, layer, mimetype);
+
+            // If we have successfully retrieved an video player, send success response
+            if (videoPlayer) {
+                videoPlayers[stream_index] = videoPlayer;
+                guac_client.sendAck(stream_index, "OK", 0x0000);
+            }
+
+            // Otherwise, mimetype must be unsupported
+            else
+                guac_client.sendAck(stream_index, "BAD TYPE", 0x030F);
+
+        }
+
+    };
+
+    tunnel.oninstruction = function(opcode, parameters) {
+
+        var handler = instructionHandlers[opcode];
+        if (handler)
+            handler(parameters);
+
+    };
+
+    /**
+     * Sends a disconnect instruction to the server and closes the tunnel.
+     */
+    this.disconnect = function() {
+
+        // Only attempt disconnection not disconnected.
+        if (currentState != STATE_DISCONNECTED
+                &amp;&amp; currentState != STATE_DISCONNECTING) {
+
+            setState(STATE_DISCONNECTING);
+
+            // Stop ping
+            if (pingInterval)
+                window.clearInterval(pingInterval);
+
+            // Send disconnect message and disconnect
+            tunnel.sendMessage("disconnect");
+            tunnel.disconnect();
+            setState(STATE_DISCONNECTED);
+
+        }
+
+    };
+    
+    /**
+     * Connects the underlying tunnel of this Guacamole.Client, passing the
+     * given arbitrary data to the tunnel during the connection process.
+     *
+     * @param data Arbitrary connection data to be sent to the underlying
+     *             tunnel during the connection process.
+     * @throws {Guacamole.Status} If an error occurs during connection.
+     */
+    this.connect = function(data) {
+
+        setState(STATE_CONNECTING);
+
+        try {
+            tunnel.connect(data);
+        }
+        catch (status) {
+            setState(STATE_IDLE);
+            throw status;
+        }
+
+        // Ping every 5 seconds (ensure connection alive)
+        pingInterval = window.setInterval(function() {
+            tunnel.sendMessage("nop");
+        }, 5000);
+
+        setState(STATE_WAITING);
+    };
+
+};
+
+/**
+ * Map of all Guacamole binary raster operations to transfer functions.
+ * @private
+ */
+Guacamole.Client.DefaultTransferFunction = {
+
+    /* BLACK */
+    0x0: function (src, dst) {
+        dst.red = dst.green = dst.blue = 0x00;
+    },
+
+    /* WHITE */
+    0xF: function (src, dst) {
+        dst.red = dst.green = dst.blue = 0xFF;
+    },
+
+    /* SRC */
+    0x3: function (src, dst) {
+        dst.red   = src.red;
+        dst.green = src.green;
+        dst.blue  = src.blue;
+        dst.alpha = src.alpha;
+    },
+
+    /* DEST (no-op) */
+    0x5: function (src, dst) {
+        // Do nothing
+    },
+
+    /* Invert SRC */
+    0xC: function (src, dst) {
+        dst.red   = 0xFF &amp; ~src.red;
+        dst.green = 0xFF &amp; ~src.green;
+        dst.blue  = 0xFF &amp; ~src.blue;
+        dst.alpha =  src.alpha;
+    },
+    
+    /* Invert DEST */
+    0xA: function (src, dst) {
+        dst.red   = 0xFF &amp; ~dst.red;
+        dst.green = 0xFF &amp; ~dst.green;
+        dst.blue  = 0xFF &amp; ~dst.blue;
+    },
+
+    /* AND */
+    0x1: function (src, dst) {
+        dst.red   =  ( src.red   &amp;  dst.red);
+        dst.green =  ( src.green &amp;  dst.green);
+        dst.blue  =  ( src.blue  &amp;  dst.blue);
+    },
+
+    /* NAND */
+    0xE: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   &amp;  dst.red);
+        dst.green = 0xFF &amp; ~( src.green &amp;  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  &amp;  dst.blue);
+    },
+
+    /* OR */
+    0x7: function (src, dst) {
+        dst.red   =  ( src.red   |  dst.red);
+        dst.green =  ( src.green |  dst.green);
+        dst.blue  =  ( src.blue  |  dst.blue);
+    },
+
+    /* NOR */
+    0x8: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   |  dst.red);
+        dst.green = 0xFF &amp; ~( src.green |  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  |  dst.blue);
+    },
+
+    /* XOR */
+    0x6: function (src, dst) {
+        dst.red   =  ( src.red   ^  dst.red);
+        dst.green =  ( src.green ^  dst.green);
+        dst.blue  =  ( src.blue  ^  dst.blue);
+    },
+
+    /* XNOR */
+    0x9: function (src, dst) {
+        dst.red   = 0xFF &amp; ~( src.red   ^  dst.red);
+        dst.green = 0xFF &amp; ~( src.green ^  dst.green);
+        dst.blue  = 0xFF &amp; ~( src.blue  ^  dst.blue);
+    },
+
+    /* AND inverted source */
+    0x4: function (src, dst) {
+        dst.red   =  0xFF &amp; (~src.red   &amp;  dst.red);
+        dst.green =  0xFF &amp; (~src.green &amp;  dst.green);
+        dst.blue  =  0xFF &amp; (~src.blue  &amp;  dst.blue);
+    },
+
+    /* OR inverted source */
+    0xD: function (src, dst) {
+        dst.red   =  0xFF &amp; (~src.red   |  dst.red);
+        dst.green =  0xFF &amp; (~src.green |  dst.green);
+        dst.blue  =  0xFF &amp; (~src.blue  |  dst.blue);
+    },
+
+    /* AND inverted destination */
+    0x2: function (src, dst) {
+        dst.red   =  0xFF &amp; ( src.red   &amp; ~dst.red);
+        dst.green =  0xFF &amp; ( src.green &amp; ~dst.green);
+        dst.blue  =  0xFF &amp; ( src.blue  &amp; ~dst.blue);
+    },
+
+    /* OR inverted destination */
+    0xB: function (src, dst) {
+        dst.red   =  0xFF &amp; ( src.red   | ~dst.red);
+        dst.green =  0xFF &amp; ( src.green | ~dst.green);
+        dst.blue  =  0xFF &amp; ( src.blue  | ~dst.blue);
+    }
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/DataURIReader.js.html b/doc/1.1.0/guacamole-common-js/DataURIReader.js.html
new file mode 100644
index 0000000..2c30509
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/DataURIReader.js.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: DataURIReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: DataURIReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * received blobs as a single data URI built over the course of the stream.
+ * Note that this object will overwrite any installed event handlers on the
+ * given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream
+ *     The stream that data will be read from.
+ */
+Guacamole.DataURIReader = function(stream, mimetype) {
+
+    /**
+     * Reference to this Guacamole.DataURIReader.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * Current data URI.
+     *
+     * @private
+     * @type {String}
+     */
+    var uri = 'data:' + mimetype + ';base64,';
+
+    // Receive blobs as array buffers
+    stream.onblob = function dataURIReaderBlob(data) {
+
+        // Currently assuming data will ALWAYS be safe to simply append. This
+        // will not be true if the received base64 data encodes a number of
+        // bytes that isn't a multiple of three (as base64 expands in a ratio
+        // of exactly 3:4).
+        uri += data;
+
+    };
+
+    // Simply call onend when end received
+    stream.onend = function dataURIReaderEnd() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Returns the data URI of all data received through the underlying stream
+     * thus far.
+     *
+     * @returns {String}
+     *     The data URI of all data received through the underlying stream thus
+     *     far.
+     */
+    this.getURI = function getURI() {
+        return uri;
+    };
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     *
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Display.js.html b/doc/1.1.0/guacamole-common-js/Display.js.html
new file mode 100644
index 0000000..ab16f26
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Display.js.html
@@ -0,0 +1,1543 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Display.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Display.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * The Guacamole display. The display does not deal with the Guacamole
+ * protocol, and instead implements a set of graphical operations which
+ * embody the set of operations present in the protocol. The order operations
+ * are executed is guaranteed to be in the same order as their corresponding
+ * functions are called.
+ * 
+ * @constructor
+ */
+Guacamole.Display = function() {
+
+    /**
+     * Reference to this Guacamole.Display.
+     * @private
+     */
+    var guac_display = this;
+
+    var displayWidth = 0;
+    var displayHeight = 0;
+    var displayScale = 1;
+
+    // Create display
+    var display = document.createElement("div");
+    display.style.position = "relative";
+    display.style.width = displayWidth + "px";
+    display.style.height = displayHeight + "px";
+
+    // Ensure transformations on display originate at 0,0
+    display.style.transformOrigin =
+    display.style.webkitTransformOrigin =
+    display.style.MozTransformOrigin =
+    display.style.OTransformOrigin =
+    display.style.msTransformOrigin =
+        "0 0";
+
+    // Create default layer
+    var default_layer = new Guacamole.Display.VisibleLayer(displayWidth, displayHeight);
+
+    // Create cursor layer
+    var cursor = new Guacamole.Display.VisibleLayer(0, 0);
+    cursor.setChannelMask(Guacamole.Layer.SRC);
+
+    // Add default layer and cursor to display
+    display.appendChild(default_layer.getElement());
+    display.appendChild(cursor.getElement());
+
+    // Create bounding div 
+    var bounds = document.createElement("div");
+    bounds.style.position = "relative";
+    bounds.style.width = (displayWidth*displayScale) + "px";
+    bounds.style.height = (displayHeight*displayScale) + "px";
+
+    // Add display to bounds
+    bounds.appendChild(display);
+
+    /**
+     * The X coordinate of the hotspot of the mouse cursor. The hotspot is
+     * the relative location within the image of the mouse cursor at which
+     * each click occurs.
+     * 
+     * @type {Number}
+     */
+    this.cursorHotspotX = 0;
+
+    /**
+     * The Y coordinate of the hotspot of the mouse cursor. The hotspot is
+     * the relative location within the image of the mouse cursor at which
+     * each click occurs.
+     * 
+     * @type {Number}
+     */
+    this.cursorHotspotY = 0;
+
+    /**
+     * The current X coordinate of the local mouse cursor. This is not
+     * necessarily the location of the actual mouse - it refers only to
+     * the location of the cursor image within the Guacamole display, as
+     * last set by moveCursor().
+     * 
+     * @type {Number}
+     */
+    this.cursorX = 0;
+
+    /**
+     * The current X coordinate of the local mouse cursor. This is not
+     * necessarily the location of the actual mouse - it refers only to
+     * the location of the cursor image within the Guacamole display, as
+     * last set by moveCursor().
+     * 
+     * @type {Number}
+     */
+    this.cursorY = 0;
+
+    /**
+     * Fired when the default layer (and thus the entire Guacamole display)
+     * is resized.
+     * 
+     * @event
+     * @param {Number} width The new width of the Guacamole display.
+     * @param {Number} height The new height of the Guacamole display.
+     */
+    this.onresize = null;
+
+    /**
+     * Fired whenever the local cursor image is changed. This can be used to
+     * implement special handling of the client-side cursor, or to override
+     * the default use of a software cursor layer.
+     * 
+     * @event
+     * @param {HTMLCanvasElement} canvas The cursor image.
+     * @param {Number} x The X-coordinate of the cursor hotspot.
+     * @param {Number} y The Y-coordinate of the cursor hotspot.
+     */
+    this.oncursor = null;
+
+    /**
+     * The queue of all pending Tasks. Tasks will be run in order, with new
+     * tasks added at the end of the queue and old tasks removed from the
+     * front of the queue (FIFO). These tasks will eventually be grouped
+     * into a Frame.
+     * @private
+     * @type {Task[]}
+     */
+    var tasks = [];
+
+    /**
+     * The queue of all frames. Each frame is a pairing of an array of tasks
+     * and a callback which must be called when the frame is rendered.
+     * @private
+     * @type {Frame[]}
+     */
+    var frames = [];
+
+    /**
+     * Flushes all pending frames.
+     * @private
+     */
+    function __flush_frames() {
+
+        var rendered_frames = 0;
+
+        // Draw all pending frames, if ready
+        while (rendered_frames &lt; frames.length) {
+
+            var frame = frames[rendered_frames];
+            if (!frame.isReady())
+                break;
+
+            frame.flush();
+            rendered_frames++;
+
+        } 
+
+        // Remove rendered frames from array
+        frames.splice(0, rendered_frames);
+
+    }
+
+    /**
+     * An ordered list of tasks which must be executed atomically. Once
+     * executed, an associated (and optional) callback will be called.
+     *
+     * @private
+     * @constructor
+     * @param {function} callback The function to call when this frame is
+     *                            rendered.
+     * @param {Task[]} tasks The set of tasks which must be executed to render
+     *                       this frame.
+     */
+    function Frame(callback, tasks) {
+
+        /**
+         * Returns whether this frame is ready to be rendered. This function
+         * returns true if and only if ALL underlying tasks are unblocked.
+         * 
+         * @returns {Boolean} true if all underlying tasks are unblocked,
+         *                    false otherwise.
+         */
+        this.isReady = function() {
+
+            // Search for blocked tasks
+            for (var i=0; i &lt; tasks.length; i++) {
+                if (tasks[i].blocked)
+                    return false;
+            }
+
+            // If no blocked tasks, the frame is ready
+            return true;
+
+        };
+
+        /**
+         * Renders this frame, calling the associated callback, if any, after
+         * the frame is complete. This function MUST only be called when no
+         * blocked tasks exist. Calling this function with blocked tasks
+         * will result in undefined behavior.
+         */
+        this.flush = function() {
+
+            // Draw all pending tasks.
+            for (var i=0; i &lt; tasks.length; i++)
+                tasks[i].execute();
+
+            // Call callback
+            if (callback) callback();
+
+        };
+
+    }
+
+    /**
+     * A container for an task handler. Each operation which must be ordered
+     * is associated with a Task that goes into a task queue. Tasks in this
+     * queue are executed in order once their handlers are set, while Tasks 
+     * without handlers block themselves and any following Tasks from running.
+     *
+     * @constructor
+     * @private
+     * @param {function} taskHandler The function to call when this task 
+     *                               runs, if any.
+     * @param {boolean} blocked Whether this task should start blocked.
+     */
+    function Task(taskHandler, blocked) {
+       
+        var task = this;
+       
+        /**
+         * Whether this Task is blocked.
+         * 
+         * @type {boolean}
+         */
+        this.blocked = blocked;
+
+        /**
+         * Unblocks this Task, allowing it to run.
+         */
+        this.unblock = function() {
+            if (task.blocked) {
+                task.blocked = false;
+                __flush_frames();
+            }
+        };
+
+        /**
+         * Calls the handler associated with this task IMMEDIATELY. This
+         * function does not track whether this task is marked as blocked.
+         * Enforcing the blocked status of tasks is up to the caller.
+         */
+        this.execute = function() {
+            if (taskHandler) taskHandler();
+        };
+
+    }
+
+    /**
+     * Schedules a task for future execution. The given handler will execute
+     * immediately after all previous tasks upon frame flush, unless this
+     * task is blocked. If any tasks is blocked, the entire frame will not
+     * render (and no tasks within will execute) until all tasks are unblocked.
+     * 
+     * @private
+     * @param {function} handler The function to call when possible, if any.
+     * @param {boolean} blocked Whether the task should start blocked.
+     * @returns {Task} The Task created and added to the queue for future
+     *                 running.
+     */
+    function scheduleTask(handler, blocked) {
+        var task = new Task(handler, blocked);
+        tasks.push(task);
+        return task;
+    }
+
+    /**
+     * Returns the element which contains the Guacamole display.
+     * 
+     * @return {Element} The element containing the Guacamole display.
+     */
+    this.getElement = function() {
+        return bounds;
+    };
+
+    /**
+     * Returns the width of this display.
+     * 
+     * @return {Number} The width of this display;
+     */
+    this.getWidth = function() {
+        return displayWidth;
+    };
+
+    /**
+     * Returns the height of this display.
+     * 
+     * @return {Number} The height of this display;
+     */
+    this.getHeight = function() {
+        return displayHeight;
+    };
+
+    /**
+     * Returns the default layer of this display. Each Guacamole display always
+     * has at least one layer. Other layers can optionally be created within
+     * this layer, but the default layer cannot be removed and is the absolute
+     * ancestor of all other layers.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The default layer.
+     */
+    this.getDefaultLayer = function() {
+        return default_layer;
+    };
+
+    /**
+     * Returns the cursor layer of this display. Each Guacamole display contains
+     * a layer for the image of the mouse cursor. This layer is a special case
+     * and exists above all other layers, similar to the hardware mouse cursor.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The cursor layer.
+     */
+    this.getCursorLayer = function() {
+        return cursor;
+    };
+
+    /**
+     * Creates a new layer. The new layer will be a direct child of the default
+     * layer, but can be moved to be a child of any other layer. Layers returned
+     * by this function are visible.
+     * 
+     * @return {Guacamole.Display.VisibleLayer} The newly-created layer.
+     */
+    this.createLayer = function() {
+        var layer = new Guacamole.Display.VisibleLayer(displayWidth, displayHeight);
+        layer.move(default_layer, 0, 0, 0);
+        return layer;
+    };
+
+    /**
+     * Creates a new buffer. Buffers are invisible, off-screen surfaces. They
+     * are implemented in the same manner as layers, but do not provide the
+     * same nesting semantics.
+     * 
+     * @return {Guacamole.Layer} The newly-created buffer.
+     */
+    this.createBuffer = function() {
+        var buffer = new Guacamole.Layer(0, 0);
+        buffer.autosize = 1;
+        return buffer;
+    };
+
+    /**
+     * Flush all pending draw tasks, if possible, as a new frame. If the entire
+     * frame is not ready, the flush will wait until all required tasks are
+     * unblocked.
+     * 
+     * @param {function} callback The function to call when this frame is
+     *                            flushed. This may happen immediately, or
+     *                            later when blocked tasks become unblocked.
+     */
+    this.flush = function(callback) {
+
+        // Add frame, reset tasks
+        frames.push(new Frame(callback, tasks));
+        tasks = [];
+
+        // Attempt flush
+        __flush_frames();
+
+    };
+
+    /**
+     * Sets the hotspot and image of the mouse cursor displayed within the
+     * Guacamole display.
+     * 
+     * @param {Number} hotspotX The X coordinate of the cursor hotspot.
+     * @param {Number} hotspotY The Y coordinate of the cursor hotspot.
+     * @param {Guacamole.Layer} layer The source layer containing the data which
+     *                                should be used as the mouse cursor image.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      layer's coordinate space to copy data from.
+
+     */
+    this.setCursor = function(hotspotX, hotspotY, layer, srcx, srcy, srcw, srch) {
+        scheduleTask(function __display_set_cursor() {
+
+            // Set hotspot
+            guac_display.cursorHotspotX = hotspotX;
+            guac_display.cursorHotspotY = hotspotY;
+
+            // Reset cursor size
+            cursor.resize(srcw, srch);
+
+            // Draw cursor to cursor layer
+            cursor.copy(layer, srcx, srcy, srcw, srch, 0, 0);
+            guac_display.moveCursor(guac_display.cursorX, guac_display.cursorY);
+
+            // Fire cursor change event
+            if (guac_display.oncursor)
+                guac_display.oncursor(cursor.toCanvas(), hotspotX, hotspotY);
+
+        });
+    };
+
+    /**
+     * Sets whether the software-rendered cursor is shown. This cursor differs
+     * from the hardware cursor in that it is built into the Guacamole.Display,
+     * and relies on its own Guacamole layer to render.
+     *
+     * @param {Boolean} [shown=true] Whether to show the software cursor.
+     */
+    this.showCursor = function(shown) {
+
+        var element = cursor.getElement();
+        var parent = element.parentNode;
+
+        // Remove from DOM if hidden
+        if (shown === false) {
+            if (parent)
+                parent.removeChild(element);
+        }
+
+        // Otherwise, ensure cursor is child of display
+        else if (parent !== display)
+            display.appendChild(element);
+
+    };
+
+    /**
+     * Sets the location of the local cursor to the given coordinates. For the
+     * sake of responsiveness, this function performs its action immediately.
+     * Cursor motion is not maintained within atomic frames.
+     * 
+     * @param {Number} x The X coordinate to move the cursor to.
+     * @param {Number} y The Y coordinate to move the cursor to.
+     */
+    this.moveCursor = function(x, y) {
+
+        // Move cursor layer
+        cursor.translate(x - guac_display.cursorHotspotX,
+                         y - guac_display.cursorHotspotY);
+
+        // Update stored position
+        guac_display.cursorX = x;
+        guac_display.cursorY = y;
+
+    };
+
+    /**
+     * Changes the size of the given Layer to the given width and height.
+     * Resizing is only attempted if the new size provided is actually different
+     * from the current size.
+     * 
+     * @param {Guacamole.Layer} layer The layer to resize.
+     * @param {Number} width The new width.
+     * @param {Number} height The new height.
+     */
+    this.resize = function(layer, width, height) {
+        scheduleTask(function __display_resize() {
+
+            layer.resize(width, height);
+
+            // Resize display if default layer is resized
+            if (layer === default_layer) {
+
+                // Update (set) display size
+                displayWidth = width;
+                displayHeight = height;
+                display.style.width = displayWidth + "px";
+                display.style.height = displayHeight + "px";
+
+                // Update bounds size
+                bounds.style.width = (displayWidth*displayScale) + "px";
+                bounds.style.height = (displayHeight*displayScale) + "px";
+
+                // Notify of resize
+                if (guac_display.onresize)
+                    guac_display.onresize(width, height);
+
+            }
+
+        });
+    };
+
+    /**
+     * Draws the specified image at the given coordinates. The image specified
+     * must already be loaded.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Image} image The image to draw. Note that this is an Image
+     *                      object - not a URL.
+     */
+    this.drawImage = function(layer, x, y, image) {
+        scheduleTask(function __display_drawImage() {
+            layer.drawImage(x, y, image);
+        });
+    };
+
+    /**
+     * Draws the image contained within the specified Blob at the given
+     * coordinates. The Blob specified must already be populated with image
+     * data.
+     *
+     * @param {Guacamole.Layer} layer
+     *     The layer to draw upon.
+     *
+     * @param {Number} x
+     *     The destination X coordinate.
+     *
+     * @param {Number} y
+     *     The destination Y coordinate.
+     *
+     * @param {Blob} blob
+     *     The Blob containing the image data to draw.
+     */
+    this.drawBlob = function(layer, x, y, blob) {
+
+        // Create URL for blob
+        var url = URL.createObjectURL(blob);
+
+        // Draw and free blob URL when ready
+        var task = scheduleTask(function __display_drawBlob() {
+
+            // Draw the image only if it loaded without errors
+            if (image.width &amp;&amp; image.height)
+                layer.drawImage(x, y, image);
+
+            // Blob URL no longer needed
+            URL.revokeObjectURL(url);
+
+        }, true);
+
+        // Load image from URL
+        var image = new Image();
+        image.onload = task.unblock;
+        image.onerror = task.unblock;
+        image.src = url;
+
+    };
+
+    /**
+     * Draws the image at the specified URL at the given coordinates. The image
+     * will be loaded automatically, and this and any future operations will
+     * wait for the image to finish loading.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {String} url The URL of the image to draw.
+     */
+    this.draw = function(layer, x, y, url) {
+
+        var task = scheduleTask(function __display_draw() {
+
+            // Draw the image only if it loaded without errors
+            if (image.width &amp;&amp; image.height)
+                layer.drawImage(x, y, image);
+
+        }, true);
+
+        var image = new Image();
+        image.onload = task.unblock;
+        image.onerror = task.unblock;
+        image.src = url;
+
+    };
+
+    /**
+     * Plays the video at the specified URL within this layer. The video
+     * will be loaded automatically, and this and any future operations will
+     * wait for the video to finish loading. Future operations will not be
+     * executed until the video finishes playing.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} mimetype The mimetype of the video to play.
+     * @param {Number} duration The duration of the video in milliseconds.
+     * @param {String} url The URL of the video to play.
+     */
+    this.play = function(layer, mimetype, duration, url) {
+
+        // Start loading the video
+        var video = document.createElement("video");
+        video.type = mimetype;
+        video.src = url;
+
+        // Start copying frames when playing
+        video.addEventListener("play", function() {
+            
+            function render_callback() {
+                layer.drawImage(0, 0, video);
+                if (!video.ended)
+                    window.setTimeout(render_callback, 20);
+            }
+            
+            render_callback();
+            
+        }, false);
+
+        scheduleTask(video.play);
+
+    };
+
+    /**
+     * Transfer a rectangle of image data from one Layer to this Layer using the
+     * specified transfer function.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Function} transferFunction The transfer function to use to
+     *                                    transfer data from source to
+     *                                    destination.
+     */
+    this.transfer = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y, transferFunction) {
+        scheduleTask(function __display_transfer() {
+            dstLayer.transfer(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction);
+        });
+    };
+
+    /**
+     * Put a rectangle of image data from one Layer to this Layer directly
+     * without performing any alpha blending. Simply copy the data.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.put = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y) {
+        scheduleTask(function __display_put() {
+            dstLayer.put(srcLayer, srcx, srcy, srcw, srch, x, y);
+        });
+    };
+
+    /**
+     * Copy a rectangle of image data from one Layer to this Layer. This
+     * operation will copy exactly the image data that will be drawn once all
+     * operations of the source Layer that were pending at the time this
+     * function was called are complete. This operation will not alter the
+     * size of the source Layer even if its autosize property is set to true.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Guacamole.Layer} dstLayer The layer to draw upon.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.copy = function(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y) {
+        scheduleTask(function __display_copy() {
+            dstLayer.copy(srcLayer, srcx, srcy, srcw, srch, x, y);
+        });
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the point to draw.
+     * @param {Number} y The Y coordinate of the point to draw.
+     */
+    this.moveTo = function(layer, x, y) {
+        scheduleTask(function __display_moveTo() {
+            layer.moveTo(x, y);
+        });
+    };
+
+    /**
+     * Add the specified line to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the endpoint of the line to draw.
+     * @param {Number} y The Y coordinate of the endpoint of the line to draw.
+     */
+    this.lineTo = function(layer, x, y) {
+        scheduleTask(function __display_lineTo() {
+            layer.lineTo(x, y);
+        });
+    };
+
+    /**
+     * Add the specified arc to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} y The Y coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} radius The radius of the circle.
+     * @param {Number} startAngle The starting angle of the arc, in radians.
+     * @param {Number} endAngle The ending angle of the arc, in radians.
+     * @param {Boolean} negative Whether the arc should be drawn in order of
+     *                           decreasing angle.
+     */
+    this.arc = function(layer, x, y, radius, startAngle, endAngle, negative) {
+        scheduleTask(function __display_arc() {
+            layer.arc(x, y, radius, startAngle, endAngle, negative);
+        });
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} cp1x The X coordinate of the first control point.
+     * @param {Number} cp1y The Y coordinate of the first control point.
+     * @param {Number} cp2x The X coordinate of the second control point.
+     * @param {Number} cp2y The Y coordinate of the second control point.
+     * @param {Number} x The X coordinate of the endpoint of the curve.
+     * @param {Number} y The Y coordinate of the endpoint of the curve.
+     */
+    this.curveTo = function(layer, cp1x, cp1y, cp2x, cp2y, x, y) {
+        scheduleTask(function __display_curveTo() {
+            layer.curveTo(cp1x, cp1y, cp2x, cp2y, x, y);
+        });
+    };
+
+    /**
+     * Closes the current path by connecting the end point with the start
+     * point (if any) with a straight line.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.close = function(layer) {
+        scheduleTask(function __display_close() {
+            layer.close();
+        });
+    };
+
+    /**
+     * Add the specified rectangle to the current path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} w The width of the rectangle to draw.
+     * @param {Number} h The height of the rectangle to draw.
+     */
+    this.rect = function(layer, x, y, w, h) {
+        scheduleTask(function __display_rect() {
+            layer.rect(x, y, w, h);
+        });
+    };
+
+    /**
+     * Clip all future drawing operations by the current path. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as fillColor()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to affect.
+     */
+    this.clip = function(layer) {
+        scheduleTask(function __display_clip() {
+            layer.clip();
+        });
+    };
+
+    /**
+     * Stroke the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.strokeColor = function(layer, cap, join, thickness, r, g, b, a) {
+        scheduleTask(function __display_strokeColor() {
+            layer.strokeColor(cap, join, thickness, r, g, b, a);
+        });
+    };
+
+    /**
+     * Fills the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.fillColor = function(layer, r, g, b, a) {
+        scheduleTask(function __display_fillColor() {
+            layer.fillColor(r, g, b, a);
+        });
+    };
+
+    /**
+     * Stroke the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the stroke.
+     */
+    this.strokeLayer = function(layer, cap, join, thickness, srcLayer) {
+        scheduleTask(function __display_strokeLayer() {
+            layer.strokeLayer(cap, join, thickness, srcLayer);
+        });
+    };
+
+    /**
+     * Fills the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the fill.
+     */
+    this.fillLayer = function(layer, srcLayer) {
+        scheduleTask(function __display_fillLayer() {
+            layer.fillLayer(srcLayer);
+        });
+    };
+
+    /**
+     * Push current layer state onto stack.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.push = function(layer) {
+        scheduleTask(function __display_push() {
+            layer.push();
+        });
+    };
+
+    /**
+     * Pop layer state off stack.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.pop = function(layer) {
+        scheduleTask(function __display_pop() {
+            layer.pop();
+        });
+    };
+
+    /**
+     * Reset the layer, clearing the stack, the current path, and any transform
+     * matrix.
+     * 
+     * @param {Guacamole.Layer} layer The layer to draw upon.
+     */
+    this.reset = function(layer) {
+        scheduleTask(function __display_reset() {
+            layer.reset();
+        });
+    };
+
+    /**
+     * Sets the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.setTransform = function(layer, a, b, c, d, e, f) {
+        scheduleTask(function __display_setTransform() {
+            layer.setTransform(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.transform = function(layer, a, b, c, d, e, f) {
+        scheduleTask(function __display_transform() {
+            layer.transform(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Sets the channel mask for future operations on this Layer.
+     * 
+     * The channel mask is a Guacamole-specific compositing operation identifier
+     * with a single bit representing each of four channels (in order): source
+     * image where destination transparent, source where destination opaque,
+     * destination where source transparent, and destination where source
+     * opaque.
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} mask The channel mask for future operations on this
+     *                      Layer.
+     */
+    this.setChannelMask = function(layer, mask) {
+        scheduleTask(function __display_setChannelMask() {
+            layer.setChannelMask(mask);
+        });
+    };
+
+    /**
+     * Sets the miter limit for stroke operations using the miter join. This
+     * limit is the maximum ratio of the size of the miter join to the stroke
+     * width. If this ratio is exceeded, the miter will not be drawn for that
+     * joint of the path.
+     * 
+     * @param {Guacamole.Layer} layer The layer to modify.
+     * @param {Number} limit The miter limit for stroke operations using the
+     *                       miter join.
+     */
+    this.setMiterLimit = function(layer, limit) {
+        scheduleTask(function __display_setMiterLimit() {
+            layer.setMiterLimit(limit);
+        });
+    };
+
+    /**
+     * Removes the given layer container entirely, such that it is no longer
+     * contained within its parent layer, if any.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being removed from its parent.
+     */
+    this.dispose = function dispose(layer) {
+        scheduleTask(function disposeLayer() {
+            layer.dispose();
+        });
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix) to the given layer.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being distorted.
+     *
+     * @param {Number} a
+     *     The first value in the affine transform's matrix.
+     *
+     * @param {Number} b
+     *     The second value in the affine transform's matrix.
+     *
+     * @param {Number} c
+     *     The third value in the affine transform's matrix.
+     *
+     * @param {Number} d
+     *     The fourth value in the affine transform's matrix.
+     *
+     * @param {Number} e
+     *     The fifth value in the affine transform's matrix.
+     *
+     * @param {Number} f
+     *     The sixth value in the affine transform's matrix.
+     */
+    this.distort = function distort(layer, a, b, c, d, e, f) {
+        scheduleTask(function distortLayer() {
+            layer.distort(a, b, c, d, e, f);
+        });
+    };
+
+    /**
+     * Moves the upper-left corner of the given layer to the given X and Y
+     * coordinate, sets the Z stacking order, and reparents the layer
+     * to the given parent layer.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer being moved.
+     *
+     * @param {Guacamole.Display.VisibleLayer} parent
+     *     The parent to set.
+     *
+     * @param {Number} x
+     *     The X coordinate to move to.
+     *
+     * @param {Number} y
+     *     The Y coordinate to move to.
+     *
+     * @param {Number} z
+     *     The Z coordinate to move to.
+     */
+    this.move = function move(layer, parent, x, y, z) {
+        scheduleTask(function moveLayer() {
+            layer.move(parent, x, y, z);
+        });
+    };
+
+    /**
+     * Sets the opacity of the given layer to the given value, where 255 is
+     * fully opaque and 0 is fully transparent.
+     *
+     * @param {Guacamole.Display.VisibleLayer} layer
+     *     The layer whose opacity should be set.
+     *
+     * @param {Number} alpha
+     *     The opacity to set.
+     */
+    this.shade = function shade(layer, alpha) {
+        scheduleTask(function shadeLayer() {
+            layer.shade(alpha);
+        });
+    };
+
+    /**
+     * Sets the scale of the client display element such that it renders at
+     * a relatively smaller or larger size, without affecting the true
+     * resolution of the display.
+     *
+     * @param {Number} scale The scale to resize to, where 1.0 is normal
+     *                       size (1:1 scale).
+     */
+    this.scale = function(scale) {
+
+        display.style.transform =
+        display.style.WebkitTransform =
+        display.style.MozTransform =
+        display.style.OTransform =
+        display.style.msTransform =
+
+            "scale(" + scale + "," + scale + ")";
+
+        displayScale = scale;
+
+        // Update bounds size
+        bounds.style.width = (displayWidth*displayScale) + "px";
+        bounds.style.height = (displayHeight*displayScale) + "px";
+
+    };
+
+    /**
+     * Returns the scale of the display.
+     *
+     * @return {Number} The scale of the display.
+     */
+    this.getScale = function() {
+        return displayScale;
+    };
+
+    /**
+     * Returns a canvas element containing the entire display, with all child
+     * layers composited within.
+     *
+     * @return {HTMLCanvasElement} A new canvas element containing a copy of
+     *                             the display.
+     */
+    this.flatten = function() {
+       
+        // Get destination canvas
+        var canvas = document.createElement("canvas");
+        canvas.width = default_layer.width;
+        canvas.height = default_layer.height;
+
+        var context = canvas.getContext("2d");
+
+        // Returns sorted array of children
+        function get_children(layer) {
+
+            // Build array of children
+            var children = [];
+            for (var index in layer.children)
+                children.push(layer.children[index]);
+
+            // Sort
+            children.sort(function children_comparator(a, b) {
+
+                // Compare based on Z order
+                var diff = a.z - b.z;
+                if (diff !== 0)
+                    return diff;
+
+                // If Z order identical, use document order
+                var a_element = a.getElement();
+                var b_element = b.getElement();
+                var position = b_element.compareDocumentPosition(a_element);
+
+                if (position &amp; Node.DOCUMENT_POSITION_PRECEDING) return -1;
+                if (position &amp; Node.DOCUMENT_POSITION_FOLLOWING) return  1;
+
+                // Otherwise, assume same
+                return 0;
+
+            });
+
+            // Done
+            return children;
+
+        }
+
+        // Draws the contents of the given layer at the given coordinates
+        function draw_layer(layer, x, y) {
+
+            // Draw layer
+            if (layer.width > 0 &amp;&amp; layer.height > 0) {
+
+                // Save and update alpha
+                var initial_alpha = context.globalAlpha;
+                context.globalAlpha *= layer.alpha / 255.0;
+
+                // Copy data
+                context.drawImage(layer.getCanvas(), x, y);
+
+                // Draw all children
+                var children = get_children(layer);
+                for (var i=0; i&lt;children.length; i++) {
+                    var child = children[i];
+                    draw_layer(child, x + child.x, y + child.y);
+                }
+
+                // Restore alpha
+                context.globalAlpha = initial_alpha;
+
+            }
+
+        }
+
+        // Draw default layer and all children
+        draw_layer(default_layer, 0, 0);
+
+        // Return new canvas copy
+        return canvas;
+        
+    };
+
+};
+
+/**
+ * Simple container for Guacamole.Layer, allowing layers to be easily
+ * repositioned and nested. This allows certain operations to be accelerated
+ * through DOM manipulation, rather than raster operations.
+ * 
+ * @constructor
+ * @augments Guacamole.Layer
+ * @param {Number} width The width of the Layer, in pixels. The canvas element
+ *                       backing this Layer will be given this width.
+ * @param {Number} height The height of the Layer, in pixels. The canvas element
+ *                        backing this Layer will be given this height.
+ */
+Guacamole.Display.VisibleLayer = function(width, height) {
+
+    Guacamole.Layer.apply(this, [width, height]);
+
+    /**
+     * Reference to this layer.
+     * @private
+     */
+    var layer = this;
+
+    /**
+     * Identifier which uniquely identifies this layer. This is COMPLETELY
+     * UNRELATED to the index of the underlying layer, which is specific
+     * to the Guacamole protocol, and not relevant at this level.
+     * 
+     * @private
+     * @type {Number}
+     */
+    this.__unique_id = Guacamole.Display.VisibleLayer.__next_id++;
+
+    /**
+     * The opacity of the layer container, where 255 is fully opaque and 0 is
+     * fully transparent.
+     */
+    this.alpha = 0xFF;
+
+    /**
+     * X coordinate of the upper-left corner of this layer container within
+     * its parent, in pixels.
+     * @type {Number}
+     */
+    this.x = 0;
+
+    /**
+     * Y coordinate of the upper-left corner of this layer container within
+     * its parent, in pixels.
+     * @type {Number}
+     */
+    this.y = 0;
+
+    /**
+     * Z stacking order of this layer relative to other sibling layers.
+     * @type {Number}
+     */
+    this.z = 0;
+
+    /**
+     * The affine transformation applied to this layer container. Each element
+     * corresponds to a value from the transformation matrix, with the first
+     * three values being the first row, and the last three values being the
+     * second row. There are six values total.
+     * 
+     * @type {Number[]}
+     */
+    this.matrix = [1, 0, 0, 1, 0, 0];
+
+    /**
+     * The parent layer container of this layer, if any.
+     * @type {Guacamole.Display.VisibleLayer}
+     */
+    this.parent = null;
+
+    /**
+     * Set of all children of this layer, indexed by layer index. This object
+     * will have one property per child.
+     */
+    this.children = {};
+
+    // Set layer position
+    var canvas = layer.getCanvas();
+    canvas.style.position = "absolute";
+    canvas.style.left = "0px";
+    canvas.style.top = "0px";
+
+    // Create div with given size
+    var div = document.createElement("div");
+    div.appendChild(canvas);
+    div.style.width = width + "px";
+    div.style.height = height + "px";
+    div.style.position = "absolute";
+    div.style.left = "0px";
+    div.style.top = "0px";
+    div.style.overflow = "hidden";
+
+    /**
+     * Superclass resize() function.
+     * @private
+     */
+    var __super_resize = this.resize;
+
+    this.resize = function(width, height) {
+
+        // Resize containing div
+        div.style.width = width + "px";
+        div.style.height = height + "px";
+
+        __super_resize(width, height);
+
+    };
+  
+    /**
+     * Returns the element containing the canvas and any other elements
+     * associated with this layer.
+     * @returns {Element} The element containing this layer's canvas.
+     */
+    this.getElement = function() {
+        return div;
+    };
+
+    /**
+     * The translation component of this layer's transform.
+     * @private
+     */
+    var translate = "translate(0px, 0px)"; // (0, 0)
+
+    /**
+     * The arbitrary matrix component of this layer's transform.
+     * @private
+     */
+    var matrix = "matrix(1, 0, 0, 1, 0, 0)"; // Identity
+
+    /**
+     * Moves the upper-left corner of this layer to the given X and Y
+     * coordinate.
+     * 
+     * @param {Number} x The X coordinate to move to.
+     * @param {Number} y The Y coordinate to move to.
+     */
+    this.translate = function(x, y) {
+
+        layer.x = x;
+        layer.y = y;
+
+        // Generate translation
+        translate = "translate("
+                        + x + "px,"
+                        + y + "px)";
+
+        // Set layer transform 
+        div.style.transform =
+        div.style.WebkitTransform =
+        div.style.MozTransform =
+        div.style.OTransform =
+        div.style.msTransform =
+
+            translate + " " + matrix;
+
+    };
+
+    /**
+     * Moves the upper-left corner of this VisibleLayer to the given X and Y
+     * coordinate, sets the Z stacking order, and reparents this VisibleLayer
+     * to the given VisibleLayer.
+     * 
+     * @param {Guacamole.Display.VisibleLayer} parent The parent to set.
+     * @param {Number} x The X coordinate to move to.
+     * @param {Number} y The Y coordinate to move to.
+     * @param {Number} z The Z coordinate to move to.
+     */
+    this.move = function(parent, x, y, z) {
+
+        // Set parent if necessary
+        if (layer.parent !== parent) {
+
+            // Maintain relationship
+            if (layer.parent)
+                delete layer.parent.children[layer.__unique_id];
+            layer.parent = parent;
+            parent.children[layer.__unique_id] = layer;
+
+            // Reparent element
+            var parent_element = parent.getElement();
+            parent_element.appendChild(div);
+
+        }
+
+        // Set location
+        layer.translate(x, y);
+        layer.z = z;
+        div.style.zIndex = z;
+
+    };
+
+    /**
+     * Sets the opacity of this layer to the given value, where 255 is fully
+     * opaque and 0 is fully transparent.
+     * 
+     * @param {Number} a The opacity to set.
+     */
+    this.shade = function(a) {
+        layer.alpha = a;
+        div.style.opacity = a/255.0;
+    };
+
+    /**
+     * Removes this layer container entirely, such that it is no longer
+     * contained within its parent layer, if any.
+     */
+    this.dispose = function() {
+
+        // Remove from parent container
+        if (layer.parent) {
+            delete layer.parent.children[layer.__unique_id];
+            layer.parent = null;
+        }
+
+        // Remove from parent element
+        if (div.parentNode)
+            div.parentNode.removeChild(div);
+        
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.distort = function(a, b, c, d, e, f) {
+
+        // Store matrix
+        layer.matrix = [a, b, c, d, e, f];
+
+        // Generate matrix transformation
+        matrix =
+
+            /* a c e
+             * b d f
+             * 0 0 1
+             */
+    
+            "matrix(" + a + "," + b + "," + c + "," + d + "," + e + "," + f + ")";
+
+        // Set layer transform 
+        div.style.transform =
+        div.style.WebkitTransform =
+        div.style.MozTransform =
+        div.style.OTransform =
+        div.style.msTransform =
+
+            translate + " " + matrix;
+
+    };
+
+};
+
+/**
+ * The next identifier to be assigned to the layer container. This identifier
+ * uniquely identifies each VisibleLayer, but is unrelated to the index of
+ * the layer, which exists at the protocol/client level only.
+ * 
+ * @private
+ * @type {Number}
+ */
+Guacamole.Display.VisibleLayer.__next_id = 0;
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferReader.html
new file mode 100644
index 0000000..1cdf113
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferReader.html
@@ -0,0 +1,456 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ArrayBufferReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ArrayBufferReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ArrayBufferReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ArrayBufferReader"><span class="type-signature"></span>new ArrayBufferReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+strictly received packets as array buffers. Note that this object will
+overwrite any installed event handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:ondata">ondata</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>buffer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">ArrayBuffer</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data packet received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line68">line 68</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferReader.js.html">ArrayBufferReader.js</a>, <a href="ArrayBufferReader.js.html#line74">line 74</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html
new file mode 100644
index 0000000..5c2a3a5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.ArrayBufferWriter.html
@@ -0,0 +1,758 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ArrayBufferWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ArrayBufferWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ArrayBufferWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ArrayBufferWriter"><span class="type-signature"></span>new ArrayBufferWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with arbitrary
+binary data, supplied as ArrayBuffers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written
+                                       to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".DEFAULT_BLOB_LENGTH"><span class="type-signature">(static, constant) </span>DEFAULT_BLOB_LENGTH<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The default maximum blob length for new Guacamole.ArrayBufferWriter
+instances.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="blobLength"><span class="type-signature"></span>blobLength<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum length of any blob sent by this Guacamole.ArrayBufferWriter,
+in bytes. Data sent via
+<a href="Guacamole.ArrayBufferWriter.html#sendData">sendData()</a> which exceeds
+this length will be split into multiple blobs. As the Guacamole protocol
+limits the maximum size of any instruction or instruction element to
+8192 bytes, and the contents of blobs will be base64-encoded, this value
+should only be increased with extreme caution.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li><a href="Guacamole.ArrayBufferWriter.html#.DEFAULT_BLOB_LENGTH">Guacamole.ArrayBufferWriter.DEFAULT_BLOB_LENGTH</a></li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line76">line 76</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendData"><span class="type-signature"></span>sendData<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the given data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">ArrayBuffer</span>
+|
+
+<span class="param-type">TypedArray</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line83">line 83</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="ArrayBufferWriter.js.html">ArrayBufferWriter.js</a>, <a href="ArrayBufferWriter.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.AudioContextFactory.html b/doc/1.1.0/guacamole-common-js/Guacamole.AudioContextFactory.html
new file mode 100644
index 0000000..6596baa
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.AudioContextFactory.html
@@ -0,0 +1,341 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: AudioContextFactory</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: AudioContextFactory</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioContextFactory</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">Maintains a singleton instance of the Web Audio API AudioContext class,
+instantiating the AudioContext only in response to the first call to
+getAudioContext(), and only if no existing AudioContext instance has been
+provided via the singleton property. Subsequent calls to getAudioContext()
+will return the same instance.</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".singleton"><span class="type-signature">(static) </span>singleton<span class="type-signature"> :AudioContext</span></h4>
+
+
+
+
+<div class="description">
+    A singleton instance of a Web Audio API AudioContext object, or null if
+no instance has yes been created. This property may be manually set if
+you wish to supply your own AudioContext instance, but care must be
+taken to do so as early as possible. Assignments to this property will
+not retroactively affect the value returned by previous calls to
+getAudioContext().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">AudioContext</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line43">line 43</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getAudioContext"><span class="type-signature">(static) </span>getAudioContext<span class="signature">()</span><span class="type-signature"> &rarr; {AudioContext}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a singleton instance of a Web Audio API AudioContext object.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioContextFactory.js.html">AudioContextFactory.js</a>, <a href="AudioContextFactory.js.html#line52">line 52</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A singleton instance of a Web Audio API AudioContext object, or null
+    if the Web Audio API is not supported.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">AudioContext</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.AudioPlayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.AudioPlayer.html
new file mode 100644
index 0000000..32bc538
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.AudioPlayer.html
@@ -0,0 +1,734 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: AudioPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: AudioPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioPlayer<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="AudioPlayer"><span class="type-signature"></span>new AudioPlayer<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract audio player which accepts, queues and plays back arbitrary audio
+data. It is up to implementations of this class to provide some means of
+handling a provided Guacamole.InputStream. Data received along the provided
+stream is to be played back immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.AudioPlayer providing support for the given
+audio format. If support for the given audio format is not available, null
+is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read audio data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data in the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line97">line 97</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.AudioPlayer instance supporting the given mimetype and
+    reading from the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.AudioPlayer, in rough order of priority. Beware that only the core
+mimetypes themselves will be listed. Any mimetype parameters, even required
+ones, will not be included in the list. For example, "audio/L8" is a
+supported raw audio mimetype that is supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line75">line 75</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in Guacamole.AudioPlayer,
+    excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.AudioPlayer, and thus will be properly handled
+by Guacamole.AudioPlayer.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line56">line 56</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.AudioPlayer, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.AudioPlayer that all audio up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued audio data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line38">line 38</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.AudioRecorder.html b/doc/1.1.0/guacamole-common-js/Guacamole.AudioRecorder.html
new file mode 100644
index 0000000..667c264
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.AudioRecorder.html
@@ -0,0 +1,828 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: AudioRecorder</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: AudioRecorder</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>AudioRecorder<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="AudioRecorder"><span class="type-signature"></span>new AudioRecorder<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract audio recorder which streams arbitrary audio data to an underlying
+Guacamole.OutputStream. It is up to implementations of this class to provide
+some means of handling this Guacamole.OutputStream. Data produced by the
+recorder is to be sent along the provided stream immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.AudioRecorder providing support for the
+given audio format. If support for the given audio format is not available,
+null is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.OutputStream to send audio data through.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data to be sent along the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line108">line 108</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.AudioRecorder instance supporting the given mimetype and
+    writing to the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.AudioRecorder, in rough order of priority. Beware that only the
+core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a supported raw audio mimetype that is supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line86">line 86</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in
+    Guacamole.AudioRecorder, excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.AudioRecorder, and thus will be properly handled
+by Guacamole.AudioRecorder.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line67">line 67</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.AudioRecorder, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclose">onclose</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process has stopped
+and the underlying Guacamole stream has been closed normally. Audio will
+only resume recording if a new Guacamole.AudioRecorder is started. This
+Guacamole.AudioRecorder instance MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process cannot
+continue due to an error, if it has started at all. The underlying
+Guacamole stream is automatically closed. Future attempts to record
+audio should not be made, and this Guacamole.AudioRecorder instance
+MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line51">line 51</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.BlobReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.BlobReader.html
new file mode 100644
index 0000000..8bff3b1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.BlobReader.html
@@ -0,0 +1,700 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: BlobReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: BlobReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>BlobReader<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="BlobReader"><span class="type-signature"></span>new BlobReader<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, assembling all
+received blobs into a single blob by appending them to each other in order.
+Note that this object will overwrite any installed event handlers on the
+given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the blob being built.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getBlob"><span class="type-signature"></span>getBlob<span class="signature">()</span><span class="type-signature"> &rarr; {Blob}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the contents of this Guacamole.BlobReader as a Blob.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line110">line 110</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The contents of this Guacamole.BlobReader.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Blob</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getLength"><span class="type-signature"></span>getLength<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current length of this Guacamole.InputStream, in bytes.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line102">line 102</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current length of this Guacamole.InputStream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line126">line 126</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>length</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The number of bytes received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobReader.js.html">BlobReader.js</a>, <a href="BlobReader.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.BlobWriter.html b/doc/1.1.0/guacamole-common-js/Guacamole.BlobWriter.html
new file mode 100644
index 0000000..2a2bc5b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.BlobWriter.html
@@ -0,0 +1,1073 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: BlobWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: BlobWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>BlobWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="BlobWriter"><span class="type-signature"></span>new BlobWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with the
+contents of provided Blob objects.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(blob)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the contents of the given blob over the underlying stream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line108">line 108</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line191">line 191</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line202">line 202</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oncomplete">oncomplete</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a blob passed to
+<a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a> has finished being
+sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that was sent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line243">line 243</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when an error occurs reading a blob passed to
+<a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a>. The transfer for the
+the given blob will cease, but the stream will remain open.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that was being read when the error occurred.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>offset</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The offset of the failed read attempt within the blob, in bytes.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>error</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">DOMError</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error that occurred.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line219">line 219</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for each successfully-read chunk of data as a blob is being sent
+via <a href="Guacamole.BlobWriter.html#sendBlob">sendBlob()</a>.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blob that is being read.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>offset</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The offset of the read that just succeeded.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="BlobWriter.js.html">BlobWriter.js</a>, <a href="BlobWriter.js.html#line232">line 232</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.ChainedTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.ChainedTunnel.html
new file mode 100644
index 0000000..ccf10b2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.ChainedTunnel.html
@@ -0,0 +1,1527 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ChainedTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ChainedTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>ChainedTunnel<span class="signature">(&hellip;tunnelChain)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ChainedTunnel"><span class="type-signature"></span>new ChainedTunnel<span class="signature">(&hellip;tunnelChain)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel which cycles between all specified tunnels until
+no tunnels are left. Another tunnel is used if an error occurs but
+no instructions have been received. If an instruction has been
+received, or no tunnels remain, the error is passed directly out
+through the onerror handler (if defined).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelChain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The tunnels to use, in order of priority.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line1068">line 1068</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Client.html b/doc/1.1.0/guacamole-common-js/Guacamole.Client.html
new file mode 100644
index 0000000..5f01846
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Client.html
@@ -0,0 +1,5195 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Client</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Client</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Client<span class="signature">(tunnel)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Client"><span class="type-signature"></span>new Client<span class="signature">(tunnel)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole protocol client. Given a <a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a>,
+automatically handles incoming and outgoing Guacamole instructions via the
+provided tunnel, updating its display using one or more canvas elements.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnel</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The tunnel to use to send and receive
+                                 Guacamole instructions.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connects the underlying tunnel of this Guacamole.Client, passing the
+given arbitrary data to the tunnel during the connection process.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Arbitrary connection data to be sent to the underlying
+            tunnel during the connection process.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line1554">line 1554</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+<h5>Throws:</h5>
+
+        
+
+<dl>
+    <dt>
+        <div class="param-desc">
+        If an error occurs during connection.
+        </div>
+    </dt>
+    <dd></dd>
+    <dt>
+        <dl>
+            <dt>
+                Type
+            </dt>
+            <dd>
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            </dd>
+        </dl>
+    </dt>
+    <dd></dd>
+</dl>
+
+
+    
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createArgumentValueStream"><span class="type-signature"></span>createArgumentValueStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new argument value stream for writing, having the given
+parameter name and mimetype, requesting that the connection parameter
+with the given name be updated to the value described by the contents
+of the following stream. The instruction necessary to create this stream
+will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the connection parameter to attempt to update.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line466">line 466</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created argument value stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createAudioStream"><span class="type-signature"></span>createAudioStream<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new audio stream for writing, where audio data having the give
+mimetype will be sent along the returned stream. The instruction
+necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data that will be sent along the returned
+    stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line389">line 389</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created audio stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createClipboardStream"><span class="type-signature"></span>createClipboardStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new clipboard object for writing, having the given mimetype. The
+instruction necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line441">line 441</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createFileStream"><span class="type-signature"></span>createFileStream<span class="signature">(mimetype, filename)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new file for writing, having the given index, mimetype and
+filename. The instruction necessary to create this stream will
+automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the file being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>filename</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The filename of the file being sent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line407">line 407</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createObjectOutputStream"><span class="type-signature"></span>createObjectOutputStream<span class="signature">(index, mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new output stream associated with the given object and having
+the given mimetype and name. The legality of a mimetype and name is
+dictated by the object itself. The instruction necessary to create this
+stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the object for which the output stream is being
+    created.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be sent to the output stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defined name of an output stream within the given object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line495">line 495</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An output stream which will write blobs to the named output stream
+    of the given object.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createOutputStream"><span class="type-signature"></span>createOutputStream<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Allocates an available stream index and creates a new
+Guacamole.OutputStream using that index, associating the resulting
+stream with this Guacamole.Client. Note that this stream will not yet
+exist as far as the other end of the Guacamole connection is concerned.
+Streams exist within the Guacamole protocol only when referenced by an
+instruction which creates the stream, such as a "clipboard", "file", or
+"pipe" instruction.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line366">line 366</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new Guacamole.OutputStream with a newly-allocated index and
+    associated with this Guacamole.Client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createPipeStream"><span class="type-signature"></span>createPipeStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Opens a new pipe for writing, having the given name and mimetype. The
+instruction necessary to create this stream will automatically be sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being sent.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line424">line 424</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The created file stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a disconnect instruction to the server and closes the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line1525">line 1525</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="endStream"><span class="type-signature"></span>endStream<span class="signature">(index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a currently-open stream as complete. The other end of the
+Guacamole connection will be notified via an "end" instruction that the
+stream is closed, and the index will be made available for reuse in
+future streams.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the stream to end.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line566">line 566</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="exportState"><span class="type-signature"></span>exportState<span class="signature">(callback)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Produces an opaque representation of Guacamole.Client state which can be
+later imported through a call to importState(). This object is
+effectively an independent, compressed snapshot of protocol and display
+state. Invoking this function implicitly flushes the display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Callback which should be invoked once the state object is ready. The
+    state object will be passed to the callback as the sole parameter.
+    This callback may be invoked immediately, or later as the display
+    finishes rendering and becomes ready.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDisplay"><span class="type-signature"></span>getDisplay<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.html">Guacamole.Display</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying display of this Guacamole.Client. The display
+contains an Element which can be added to the DOM, causing the
+display to become visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line286">line 286</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The underlying display of this
+                            Guacamole.Client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.html">Guacamole.Display</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="importState"><span class="type-signature"></span>importState<span class="signature">(state, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Restores Guacamole.Client protocol and display state based on an opaque
+object from a prior call to exportState(). The Guacamole.Client instance
+used to export that state need not be the same as this instance.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">An opaque representation of Guacamole.Client state from a prior call
+    to exportState().</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The function to invoke when state has finished being imported. This
+    may happen immediately, or later as images within the provided state
+    object are loaded.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line219">line 219</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="requestObjectInputStream"><span class="type-signature"></span>requestObjectInputStream<span class="signature">(index, name)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Requests read access to the input stream having the given name. If
+successful, a new input stream will be created.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the object from which the input stream is being
+    requested.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the input stream to request.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line515">line 515</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendAck"><span class="type-signature"></span>sendAck<span class="signature">(index, message, code)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Acknowledge receipt of a blob on the stream with the given index.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the stream associated with the
+                      received blob.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A human-readable message describing the error
+                        or status.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error code, if any, or 0 for success.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line533">line 533</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(index, data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Given the index of a file, writes a blob of data to that file.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of the file to write to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Base64-encoded data to write to the file.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line548">line 548</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendKeyEvent"><span class="type-signature"></span>sendKeyEvent<span class="signature">(pressed, keysym)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a key event having the given properties as if the user
+pressed or released a key.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>pressed</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the key is pressed (true) or released
+                         (false).</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed or released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line314">line 314</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMouseState"><span class="type-signature"></span>sendMouseState<span class="signature">(mouseState)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends a mouse event having the properties provided by the given mouse
+state.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mouseState</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The state of the mouse to send
+                                          in the mouse event.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line329">line 329</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendSize"><span class="type-signature"></span>sendSize<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the current size of the screen.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the screen.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the screen.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line296">line 296</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~getLayerIndex"><span class="type-signature">(inner) </span>getLayerIndex<span class="signature">(layer)</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the index passed to getLayer() when the given layer was created.
+Positive indices refer to visible layers, an index of zero refers to the
+default layer, and negative indices refer to buffers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+|
+
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer whose index should be determined.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line775">line 775</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The index of the given layer, or null if no such layer is associated
+    with this client.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onargv">onargv</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the current value of a connection parameter is being exposed
+by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive connection parameter data from the
+    server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the connection parameter whose value is being exposed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line667">line 667</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onaudio">onaudio</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a audio stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive audio data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line626">line 626</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An object which implements the Guacamole.AudioPlayer interface and
+    has been initialied to play the data in the provided stream, or null
+    if the built-in audio players of the Guacamole client should be
+    used.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclipboard">onclipboard</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the clipboard of the remote client is changing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive
+                                      clipboard data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line677">line 677</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when an error is reported by the remote client, and the connection
+is being closed.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onfile">onfile</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a file stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive data
+                                      from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the file received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>filename</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the file received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line689">line 689</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onfilesystem">onfilesystem</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a filesystem object is created. The object provided to this
+event handler will contain its own event handlers and functions for
+requesting and handling data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>object</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Object.html">Guacamole.Object</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The created filesystem object.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the filesystem.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line703">line 703</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onname">onname</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the remote client sends a name update.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new name of this client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line597">line 597</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onpipe">onpipe</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a pipe stream is created. The stream provided to this event
+handler will contain its own event handlers for received data;
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive data
+                                      from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the pipe.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line715">line 715</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of this Guacamole.Client changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line589">line 589</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onsync">onsync</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a sync instruction is received from the server, indicating
+that the server is finished processing any input from the client and
+has sent any results.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>timestamp</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The timestamp associated with the sync
+                          instruction.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line726">line 726</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onvideo">onvideo</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when a video stream is created. The stream provided to this event
+handler will contain its own event handlers for received data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that will receive video data from the server.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination layer on which the received video data should be
+    played. It is the responsibility of the Guacamole.VideoPlayer
+    implementation to play the received data within this layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video data which will be received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Client.js.html">Client.js</a>, <a href="Client.js.html#line650">line 650</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An object which implements the Guacamole.VideoPlayer interface and
+    has been initialied to play the data in the provided stream, or null
+    if the built-in video players of the Guacamole client should be
+    used.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.DataURIReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.DataURIReader.html
new file mode 100644
index 0000000..8260e3e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.DataURIReader.html
@@ -0,0 +1,435 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: DataURIReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: DataURIReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>DataURIReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="DataURIReader"><span class="type-signature"></span>new DataURIReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+received blobs as a single data URI built over the course of the stream.
+Note that this object will overwrite any installed event handlers on the
+given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getURI"><span class="type-signature"></span>getURI<span class="signature">()</span><span class="type-signature"> &rarr; {String}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the data URI of all data received through the underlying stream
+thus far.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line73">line 73</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The data URI of all data received through the underlying stream thus
+    far.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">String</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="DataURIReader.js.html">DataURIReader.js</a>, <a href="DataURIReader.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html
new file mode 100644
index 0000000..3329763
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Display.VisibleLayer.html
@@ -0,0 +1,6600 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: VisibleLayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: VisibleLayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Display.html">.Display</a>.</span>VisibleLayer<span class="signature">(width, height)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="VisibleLayer"><span class="type-signature"></span>new VisibleLayer<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple container for Guacamole.Layer, allowing layers to be easily
+repositioned and nested. This allows certain operations to be accelerated
+through DOM manipulation, rather than raster operations.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the Layer, in pixels. The canvas element
+                      backing this Layer will be given this width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the Layer, in pixels. The canvas element
+                       backing this Layer will be given this height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1223">line 1223</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Layer.html">Guacamole.Layer</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alpha"><span class="type-signature"></span>alpha<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The opacity of the layer container, where 255 is fully opaque and 0 is
+fully transparent.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1247">line 1247</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="autosize"><span class="type-signature"></span>autosize<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Set to true if this Layer should resize itself to accomodate the
+dimensions of any drawing operation, and false (the default) otherwise.
+
+Note that setting this property takes effect immediately, and thus may
+take effect on operations that were started in the past but have not
+yet completed. If you wish the setting of this flag to only modify
+future operations, you will need to make the setting of this flag an
+operation with sync().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#autosize">Guacamole.Layer#autosize</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li>false</li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line255">line 255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+    <h5>Example</h5>
+    
+    <pre class="prettyprint"><code>// Set autosize to true for all future operations
+layer.sync(function() {
+    layer.autosize = true;
+});</code></pre>
+
+
+
+        
+            
+<h4 class="name" id="children"><span class="type-signature"></span>children<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Set of all children of this layer, indexed by layer index. This object
+will have one property per child.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1289">line 1289</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="height"><span class="type-signature"></span>height<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current height of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#height">Guacamole.Layer#height</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line267">line 267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="matrix"><span class="type-signature"></span>matrix<span class="type-signature"> :Array.&lt;Number></span></h4>
+
+
+
+
+<div class="description">
+    The affine transformation applied to this layer container. Each element
+corresponds to a value from the transformation matrix, with the first
+three values being the first row, and the last three values being the
+second row. There are six values total.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Array.&lt;Number></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1277">line 1277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="parent"><span class="type-signature"></span>parent<span class="type-signature"> :<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span></h4>
+
+
+
+
+<div class="description">
+    The parent layer container of this layer, if any.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1283">line 1283</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current width of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#width">Guacamole.Layer#width</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line261">line 261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    X coordinate of the upper-left corner of this layer container within
+its parent, in pixels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1254">line 1254</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    Y coordinate of the upper-left corner of this layer container within
+its parent, in pixels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1261">line 1261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="z"><span class="type-signature"></span>z<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    Z stacking order of this layer relative to other sibling layers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1267">line 1267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#arc">Guacamole.Layer#arc</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line552">line 552</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#clip">Guacamole.Layer#clip</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line626">line 626</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#close">Guacamole.Layer#close</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line592">line 592</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#copy">Guacamole.Layer#copy</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line478">line 478</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#curveTo">Guacamole.Layer#curveTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line575">line 575</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Removes this layer container entirely, such that it is no longer
+contained within its parent layer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1421">line 1421</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="distort"><span class="type-signature"></span>distort<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1446">line 1446</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Image</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is an Image
+                     object - not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#drawImage">Guacamole.Layer#drawImage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line327">line 327</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#fillColor">Guacamole.Layer#fillColor</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line678">line 678</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#fillLayer">Guacamole.Layer#fillLayer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line733">line 733</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCanvas"><span class="type-signature"></span>getCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the canvas element backing this Layer. Note that the dimensions
+of the canvas may not exactly match those of the Layer, as resizing a
+canvas while maintaining its state is an expensive operation.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#getCanvas">Guacamole.Layer#getCanvas</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line277">line 277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The canvas element backing this Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element containing the canvas and any other elements
+associated with this layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1328">line 1328</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing this layer's canvas.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#lineTo">Guacamole.Layer#lineTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line526">line 526</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="move"><span class="type-signature"></span>move<span class="signature">(parent, x, y, z)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of this VisibleLayer to the given X and Y
+coordinate, sets the Z stacking order, and reparents this VisibleLayer
+to the given VisibleLayer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>parent</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parent to set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>z</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Z coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1382">line 1382</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#moveTo">Guacamole.Layer#moveTo</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line507">line 507</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#pop">Guacamole.Layer#pop</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line762">line 762</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#push">Guacamole.Layer#push</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line751">line 751</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#put">Guacamole.Layer#put</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line431">line 431</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#rect">Guacamole.Layer#rect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#reset">Guacamole.Layer#reset</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line776">line 776</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(newWidth, newHeight)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of this Layer to the given width and height. Resizing
+is only attempted if the new size provided is actually different from
+the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>newWidth</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width to assign to this Layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>newHeight</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height to assign to this Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#resize">Guacamole.Layer#resize</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line313">line 313</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setChannelMask">Guacamole.Layer#setChannelMask</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line844">line 844</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setMiterLimit">Guacamole.Layer#setMiterLimit</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line857">line 857</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#setTransform">Guacamole.Layer#setTransform</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line805">line 805</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="shade"><span class="type-signature"></span>shade<span class="signature">(a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the opacity of this layer to the given value, where 255 is fully
+opaque and 0 is fully transparent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The opacity to set.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1412">line 1412</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#strokeColor">Guacamole.Layer#strokeColor</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line652">line 652</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#strokeLayer">Guacamole.Layer#strokeLayer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line705">line 705</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="toCanvas"><span class="type-signature"></span>toCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a new canvas element containing the same image as this Layer.
+Unlike getCanvas(), the canvas element returned is guaranteed to have
+the exact same dimensions as the Layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#toCanvas">Guacamole.Layer#toCanvas</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line290">line 290</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of the image content this
+    Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#transfer">Guacamole.Layer#transfer</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line354">line 354</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Layer.html#transform">Guacamole.Layer#transform</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line824">line 824</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="translate"><span class="type-signature"></span>translate<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of this layer to the given X and Y
+coordinate.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1351">line 1351</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Display.html b/doc/1.1.0/guacamole-common-js/Guacamole.Display.html
new file mode 100644
index 0000000..4d8022a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Display.html
@@ -0,0 +1,9066 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Display</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Display</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Display<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Display"><span class="type-signature"></span>new Display<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    The Guacamole display. The display does not deal with the Guacamole
+protocol, and instead implements a set of graphical operations which
+embody the set of operations present in the protocol. The order operations
+are executed is guaranteed to be in the same order as their corresponding
+functions are called.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="cursorHotspotX"><span class="type-signature"></span>cursorHotspotX<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The X coordinate of the hotspot of the mouse cursor. The hotspot is
+the relative location within the image of the mouse cursor at which
+each click occurs.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line84">line 84</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorHotspotY"><span class="type-signature"></span>cursorHotspotY<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The Y coordinate of the hotspot of the mouse cursor. The hotspot is
+the relative location within the image of the mouse cursor at which
+each click occurs.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line93">line 93</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorX"><span class="type-signature"></span>cursorX<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X coordinate of the local mouse cursor. This is not
+necessarily the location of the actual mouse - it refers only to
+the location of the cursor image within the Guacamole display, as
+last set by moveCursor().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="cursorY"><span class="type-signature"></span>cursorY<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X coordinate of the local mouse cursor. This is not
+necessarily the location of the actual mouse - it refers only to
+the location of the cursor image within the Guacamole display, as
+last set by moveCursor().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line113">line 113</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(layer, x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line752">line 752</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to affect.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line812">line 812</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line781">line 781</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line706">line 706</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createBuffer"><span class="type-signature"></span>createBuffer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Layer.html">Guacamole.Layer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new buffer. Buffers are invisible, off-screen surfaces. They
+are implemented in the same manner as layers, but do not provide the
+same nesting semantics.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line364">line 364</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The newly-created buffer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createLayer"><span class="type-signature"></span>createLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new layer. The new layer will be a direct child of the default
+layer, but can be moved to be a child of any other layer. Layers returned
+by this function are visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line351">line 351</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The newly-created layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(layer, cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line769">line 769</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="dispose"><span class="type-signature"></span>dispose<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Removes the given layer container entirely, such that it is no longer
+contained within its parent layer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being removed from its parent.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1010">line 1010</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="distort"><span class="type-signature"></span>distort<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix) to the given layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being distorted.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1041">line 1041</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="draw"><span class="type-signature"></span>draw<span class="signature">(layer, x, y, url)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the image at the specified URL at the given coordinates. The image
+will be loaded automatically, and this and any future operations will
+wait for the image to finish loading.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the image to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line579">line 579</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawBlob"><span class="type-signature"></span>drawBlob<span class="signature">(layer, x, y, blob)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the image contained within the specified Blob at the given
+coordinates. The Blob specified must already be populated with image
+data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>blob</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Blob</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Blob containing the image data to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line544">line 544</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(layer, x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Image</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is an Image
+                     object - not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line521">line 521</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(layer, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line853">line 853</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(layer, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="flatten"><span class="type-signature"></span>flatten<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a canvas element containing the entire display, with all child
+layers composited within.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1131">line 1131</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of
+                            the display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="flush"><span class="type-signature"></span>flush<span class="signature">(callback)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Flush all pending draw tasks, if possible, as a new frame. If the entire
+frame is not ready, the flush will wait until all required tasks are
+unblocked.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The function to call when this frame is
+                           flushed. This may happen immediately, or
+                           later when blocked tasks become unblocked.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line379">line 379</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCursorLayer"><span class="type-signature"></span>getCursorLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the cursor layer of this display. Each Guacamole display contains
+a layer for the image of the mouse cursor. This layer is a special case
+and exists above all other layers, similar to the hardware mouse cursor.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line340">line 340</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The cursor layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDefaultLayer"><span class="type-signature"></span>getDefaultLayer<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the default layer of this display. Each Guacamole display always
+has at least one layer. Other layers can optionally be created within
+this layer, but the default layer cannot be removed and is the absolute
+ancestor of all other layers.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line329">line 329</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The default layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element which contains the Guacamole display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line299">line 299</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing the Guacamole display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getHeight"><span class="type-signature"></span>getHeight<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the height of this display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line317">line 317</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The height of this display;
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getScale"><span class="type-signature"></span>getScale<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the scale of the display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1120">line 1120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The scale of the display.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getWidth"><span class="type-signature"></span>getWidth<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the width of this display.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line308">line 308</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The width of this display;
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(layer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line732">line 732</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="move"><span class="type-signature"></span>move<span class="signature">(layer, parent, x, y, z)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Moves the upper-left corner of the given layer to the given X and Y
+coordinate, sets the Z stacking order, and reparents the layer
+to the given parent layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer being moved.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parent</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parent to set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>z</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Z coordinate to move to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1067">line 1067</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveCursor"><span class="type-signature"></span>moveCursor<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the location of the local cursor to the given coordinates. For the
+sake of responsiveness, this function performs its action immediately.
+Cursor motion is not maintained within atomic frames.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to move the cursor to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to move the cursor to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line463">line 463</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(layer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line719">line 719</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="play"><span class="type-signature"></span>play<span class="signature">(layer, mimetype, duration, url)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Plays the video at the specified URL within this layer. The video
+will be loaded automatically, and this and any future operations will
+wait for the video to finish loading. Future operations will not be
+executed until the video finishes playing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video to play.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The duration of the video in milliseconds.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the video to play.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line914">line 914</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line903">line 903</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line678">line 678</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(layer, x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line798">line 798</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">(layer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line926">line 926</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(layer, width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of the given Layer to the given width and height.
+Resizing is only attempted if the new size provided is actually different
+from the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to resize.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line484">line 484</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="scale"><span class="type-signature"></span>scale<span class="signature">(scale)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the scale of the client display element such that it renders at
+a relatively smaller or larger size, without affecting the true
+resolution of the display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>scale</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The scale to resize to, where 1.0 is normal
+                      size (1:1 scale).</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1097">line 1097</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(layer, mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line981">line 981</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setCursor"><span class="type-signature"></span>setCursor<span class="signature">(hotspotX, hotspotY, layer, srcx, srcy, srcw, srch)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the hotspot and image of the mouse cursor displayed within the
+Guacamole display.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>hotspotX</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>hotspotY</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The source layer containing the data which
+                               should be used as the mouse cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line410">line 410</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(layer, limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line997">line 997</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line944">line 944</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="shade"><span class="type-signature"></span>shade<span class="signature">(layer, alpha)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the opacity of the given layer to the given value, where 255 is
+fully opaque and 0 is fully transparent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer whose opacity should be set.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>alpha</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The opacity to set.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line1083">line 1083</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="showCursor"><span class="type-signature"></span>showCursor<span class="signature">(shown<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets whether the software-rendered cursor is shown. This cursor differs
+from the hardware cursor in that it is built into the Guacamole.Display,
+and relies on its own Guacamole layer to render.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>shown</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    true
+                
+                </td>
+            
+
+            <td class="description last">Whether to show the software cursor.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line438">line 438</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(layer, cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line835">line 835</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(layer, cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line875">line 875</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, dstLayer, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>dstLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to draw upon.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line653">line 653</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(layer, a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to modify.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line962">line 962</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oncursor">oncursor</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the local cursor image is changed. This can be used to
+implement special handling of the client-side cursor, or to override
+the default use of a software cursor layer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line135">line 135</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onresize">onresize</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when the default layer (and thus the entire Guacamole display)
+is resized.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width of the Guacamole display.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height of the Guacamole display.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Display.js.html">Display.js</a>, <a href="Display.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.HTTPTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.HTTPTunnel.html
new file mode 100644
index 0000000..ba178f1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.HTTPTunnel.html
@@ -0,0 +1,1609 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: HTTPTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: HTTPTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>HTTPTunnel<span class="signature">(tunnelURL, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="HTTPTunnel"><span class="type-signature"></span>new HTTPTunnel<span class="signature">(tunnelURL, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel implemented over HTTP via XMLHttpRequest.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelURL</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                </td>
+            
+
+            <td class="description last">The URL of the HTTP tunneling service.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>crossDomain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+
+            <td class="description last">Whether tunnel requests will be cross-domain, and thus must use CORS
+    mechanisms and headers. By default, it is assumed that tunnel requests
+    will be made to the same domain.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>extraTunnelHeaders</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    {}
+                
+                </td>
+            
+
+            <td class="description last">Key value pairs containing the header names and values of any additional
+    headers to be sent in tunnel requests. By default, no extra headers will
+    be added.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line222">line 222</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.InputSink.html b/doc/1.1.0/guacamole-common-js/Guacamole.InputSink.html
new file mode 100644
index 0000000..c98bcfe
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.InputSink.html
@@ -0,0 +1,380 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: InputSink</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: InputSink</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>InputSink<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="InputSink"><span class="type-signature"></span>new InputSink<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A hidden input field which attempts to keep itself focused at all times,
+except when another input field has been intentionally focused, whether
+programatically or by the user. The actual underlying input field, returned
+by getElement(), may be used as a reliable source of keyboard-related events,
+particularly composition and input events which may require a focused input
+field to be dispatched at all.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="focus"><span class="type-signature"></span>focus<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attempts to focus the underlying input field. The focus attempt occurs
+asynchronously, and may silently fail depending on browser restrictions.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line93">line 93</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying input field. This input field MUST be manually
+added to the DOM for the Guacamole.InputSink to have any effect.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputSink.js.html">InputSink.js</a>, <a href="InputSink.js.html#line105">line 105</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.InputStream.html b/doc/1.1.0/guacamole-common-js/Guacamole.InputStream.html
new file mode 100644
index 0000000..484602e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.InputStream.html
@@ -0,0 +1,716 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: InputStream</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: InputStream</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>InputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="InputStream"><span class="type-signature"></span>new InputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    An input stream abstraction used by the Guacamole client to facilitate
+transfer of files or other binary data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this stream.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line42">line 42</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendAck"><span class="type-signature"></span>sendAck<span class="signature">(message, code)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Acknowledges the receipt of a blob.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A human-readable message describing the error
+                        or status.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The error code, if any, or 0 for success.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line66">line 66</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onblob">onblob</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when a blob of data is received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The received base64 data.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line50">line 50</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this stream is closed.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="InputStream.js.html">InputStream.js</a>, <a href="InputStream.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.IntegerPool.html b/doc/1.1.0/guacamole-common-js/Guacamole.IntegerPool.html
new file mode 100644
index 0000000..a1dc051
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.IntegerPool.html
@@ -0,0 +1,504 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: IntegerPool</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: IntegerPool</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>IntegerPool<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="IntegerPool"><span class="type-signature"></span>new IntegerPool<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Integer pool which returns consistently increasing integers while integers
+are in use, and previously-used integers when possible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line27">line 27</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="next_int"><span class="type-signature"></span>next_int<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The next integer to return if no more integers remain.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line48">line 48</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="free"><span class="type-signature"></span>free<span class="signature">(integer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Frees the given integer, allowing it to be reused.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>integer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The integer to free.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line72">line 72</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="next"><span class="type-signature"></span>next<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the next available integer in the pool. If possible, a previously
+used integer will be returned.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="IntegerPool.js.html">IntegerPool.js</a>, <a href="IntegerPool.js.html#line56">line 56</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The next available integer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.JSONReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.JSONReader.html
new file mode 100644
index 0000000..3cd07b1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.JSONReader.html
@@ -0,0 +1,678 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: JSONReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: JSONReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>JSONReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="JSONReader"><span class="type-signature"></span>new JSONReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, assembling all
+received blobs into a JavaScript object by appending them to each other, in
+order, and decoding the result as JSON. Note that this object will overwrite
+any installed event handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that JSON will be read from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line32">line 32</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getJSON"><span class="type-signature"></span>getJSON<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the contents of this Guacamole.JSONReader as a JavaScript
+object.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line76">line 76</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The contents of this Guacamole.JSONReader, as parsed from the JSON
+    contents of the input stream.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Object</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getLength"><span class="type-signature"></span>getLength<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current length of this Guacamole.JSONReader, in characters.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current length of this Guacamole.JSONReader.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>length</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The number of characters received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="JSONReader.js.html">JSONReader.js</a>, <a href="JSONReader.js.html#line105">line 105</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html
new file mode 100644
index 0000000..c810299
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.ModifierState.html
@@ -0,0 +1,705 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: ModifierState</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: ModifierState</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Keyboard.html">.Keyboard</a>.</span>ModifierState<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="ModifierState"><span class="type-signature"></span>new ModifierState<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    The state of all supported keyboard modifiers.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1452">line 1452</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alt"><span class="type-signature"></span>alt<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether alt is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1470">line 1470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="ctrl"><span class="type-signature"></span>ctrl<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether ctrl is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1464">line 1464</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="hyper"><span class="type-signature"></span>hyper<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether hyper (windows key) is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1482">line 1482</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="meta"><span class="type-signature"></span>meta<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether meta (apple key) is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1476">line 1476</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="shift"><span class="type-signature"></span>shift<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether shift is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1458">line 1458</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".fromKeyboardEvent"><span class="type-signature">(static) </span>fromKeyboardEvent<span class="signature">(e)</span><span class="type-signature"> &rarr; {<a href="Guacamole.Keyboard.ModifierState.html">Guacamole.Keyboard.ModifierState</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the modifier state applicable to the keyboard event given.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">KeyboardEvent</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keyboard event to read.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1493">line 1493</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current state of keyboard
+                                            modifiers.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Keyboard.ModifierState.html">Guacamole.Keyboard.ModifierState</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.html b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.html
new file mode 100644
index 0000000..9db7cd6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Keyboard.html
@@ -0,0 +1,1666 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Keyboard</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Keyboard</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Keyboard<span class="signature">(element<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Keyboard"><span class="type-signature"></span>new Keyboard<span class="signature">(element<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser and cross-keyboard keyboard for a specific element.
+Browser and keyboard layout variation is abstracted away, providing events
+which represent keys as their corresponding X11 keysym.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+|
+
+<span class="param-type">Document</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The Element to use to provide keyboard events. If omitted, at least one
+   Element must be manually provided through the listenTo() function for
+   the Guacamole.Keyboard instance to have any effect.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="modifiers"><span class="type-signature"></span>modifiers<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    All modifiers and their states.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line613">line 613</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="pressed"><span class="type-signature"></span>pressed<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The state of every key, indexed by keysym. If a particular key is
+pressed, the value of pressed for that keysym will be true. If a key
+is not currently pressed, it will not be defined.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line620">line 620</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="listenTo"><span class="type-signature"></span>listenTo<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attaches event listeners to the given Element, automatically translating
+received key, input, and composition events into simple keydown/keyup
+events signalled through this Guacamole.Keyboard's onkeydown and
+onkeyup handlers.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+|
+
+<span class="param-type">Document</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to attach event listeners to for the sake of handling
+    key or input events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1292">line 1292</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="press"><span class="type-signature"></span>press<span class="signature">(keysym)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a key as pressed, firing the keydown event if registered. Key
+repeat for the pressed key will start after a delay if that key is
+not a modifier. The return value of this function depends on the
+return value of the keydown event handler, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key to press.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line821">line 821</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if event should NOT be canceled, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="release"><span class="type-signature"></span>release<span class="signature">(keysym)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Marks a key as released, firing the keyup event if registered.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key to release.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line864">line 864</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Resets the state of this keyboard, releasing all keys, and firing keyup
+events for each released key.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line913">line 913</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="type"><span class="type-signature"></span>type<span class="signature">(str)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Presses and releases the keys necessary to type the given string of
+text.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>str</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The string to type.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~isPrintable"><span class="type-signature">(inner) </span>isPrintable<span class="signature">(keysym)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns true if the given keysym corresponds to a printable character,
+false otherwise.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line700">line 700</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given keysym corresponds to a printable character,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="~markEvent"><span class="type-signature">(inner) </span>markEvent<span class="signature">(e)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Attempts to mark the given Event as having been handled by this
+Guacamole.Keyboard. If the Event has already been marked as handled,
+false is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Event</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Event to mark.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line1270">line 1270</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given Event was successfully marked, false if the given
+    Event was already marked.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeydown">onkeydown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a key with the element associated
+with this Guacamole.Keyboard in focus.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line69">line 69</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the key event should be allowed through to the
+                  browser, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeyup">onkeyup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a key with the element associated
+with this Guacamole.Keyboard in focus.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Keyboard.js.html">Keyboard.js</a>, <a href="Keyboard.js.html#line78">line 78</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Layer.Pixel.html b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.Pixel.html
new file mode 100644
index 0000000..6c67f70
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.Pixel.html
@@ -0,0 +1,554 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Pixel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Pixel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Layer.html">.Layer</a>.</span>Pixel<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Pixel"><span class="type-signature"></span>new Pixel<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents a single pixel of image data. All components have a minimum value
+of 0 and a maximum value of 255.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of this pixel.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of this pixel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line952">line 952</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="alpha"><span class="type-signature"></span>alpha<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The alpha component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line976">line 976</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="blue"><span class="type-signature"></span>blue<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The blue component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line970">line 970</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="green"><span class="type-signature"></span>green<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The green component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line964">line 964</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="red"><span class="type-signature"></span>red<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The red component of this pixel, where 0 is the minimum value,
+and 255 is the maximum.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line958">line 958</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Layer.html b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.html
new file mode 100644
index 0000000..4ac32d8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Layer.html
@@ -0,0 +1,5716 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Layer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Layer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Layer<span class="signature">(width, height)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Layer"><span class="type-signature"></span>new Layer<span class="signature">(width, height)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract ordered drawing surface. Each Layer contains a canvas element and
+provides simple drawing instructions for drawing to that canvas element,
+however unlike the canvas element itself, drawing operations on a Layer are
+guaranteed to run in order, even if such an operation must wait for an image
+to load before completing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the Layer, in pixels. The canvas element
+                      backing this Layer will be given this width.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>height</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the Layer, in pixels. The canvas element
+                       backing this Layer will be given this height.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line37">line 37</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Layer.Pixel.html">Pixel</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".ATOP"><span class="type-signature">(static) </span>ATOP<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "atop".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line879">line 879</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".IN"><span class="type-signature">(static) </span>IN<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "in".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line915">line 915</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".OUT"><span class="type-signature">(static) </span>OUT<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "out".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line923">line 923</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".OVER"><span class="type-signature">(static) </span>OVER<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "over".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line894">line 894</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".PLUS"><span class="type-signature">(static) </span>PLUS<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "plus".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line899">line 899</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".RATOP"><span class="type-signature">(static) </span>RATOP<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "ratop".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line931">line 931</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".RIN"><span class="type-signature">(static) </span>RIN<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rin".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line907">line 907</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".ROUT"><span class="type-signature">(static) </span>ROUT<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rout".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line874">line 874</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".ROVER"><span class="type-signature">(static) </span>ROVER<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "rover".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line889">line 889</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".SRC"><span class="type-signature">(static) </span>SRC<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "src".
+Beware that WebKit-based browsers may leave the contents of the destionation
+layer where the source layer is transparent, despite the definition of this
+operation.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line939">line 939</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".XOR"><span class="type-signature">(static) </span>XOR<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Channel mask for the composite operation "xor".
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line884">line 884</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="autosize"><span class="type-signature"></span>autosize<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Set to true if this Layer should resize itself to accomodate the
+dimensions of any drawing operation, and false (the default) otherwise.
+
+Note that setting this property takes effect immediately, and thus may
+take effect on operations that were started in the past but have not
+yet completed. If you wish the setting of this flag to only modify
+future operations, you will need to make the setting of this flag an
+operation with sync().
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-default">Default Value:</dt>
+    <dd class="tag-default"><ul class="dummy">
+            <li>false</li>
+        </ul></dd>
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line255">line 255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+    <h5>Example</h5>
+    
+    <pre class="prettyprint"><code>// Set autosize to true for all future operations
+layer.sync(function() {
+    layer.autosize = true;
+});</code></pre>
+
+
+
+        
+            
+<h4 class="name" id="height"><span class="type-signature"></span>height<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current height of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line267">line 267</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current width of this layer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line261">line 261</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="arc"><span class="type-signature"></span>arc<span class="signature">(x, y, radius, startAngle, endAngle, negative)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified arc to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the center of the circle which
+                  will contain the arc.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>radius</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The radius of the circle.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>startAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The starting angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>endAngle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The ending angle of the arc, in radians.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>negative</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the arc should be drawn in order of
+                          decreasing angle.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line552">line 552</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="clip"><span class="type-signature"></span>clip<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Clip all future drawing operations by the current path. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as fillColor()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line626">line 626</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="close"><span class="type-signature"></span>close<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes the current path by connecting the end point with the start
+point (if any) with a straight line.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line592">line 592</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="copy"><span class="type-signature"></span>copy<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Copy a rectangle of image data from one Layer to this Layer. This
+operation will copy exactly the image data that will be drawn once all
+operations of the source Layer that were pending at the time this
+function was called are complete. This operation will not alter the
+size of the source Layer even if its autosize property is set to true.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line478">line 478</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="curveTo"><span class="type-signature"></span>curveTo<span class="signature">(cp1x, cp1y, cp2x, cp2y, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp1y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the first control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>cp2y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the second control point.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the curve.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line575">line 575</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="drawImage"><span class="type-signature"></span>drawImage<span class="signature">(x, y, image)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Draws the specified image at the given coordinates. The image specified
+must already be loaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>image</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Image</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The image to draw. Note that this is an Image
+                     object - not a URL.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line327">line 327</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillColor"><span class="type-signature"></span>fillColor<span class="signature">(r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line678">line 678</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fillLayer"><span class="type-signature"></span>fillLayer<span class="signature">(srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fills the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line733">line 733</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getCanvas"><span class="type-signature"></span>getCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the canvas element backing this Layer. Note that the dimensions
+of the canvas may not exactly match those of the Layer, as resizing a
+canvas while maintaining its state is an expensive operation.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line277">line 277</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The canvas element backing this Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="lineTo"><span class="type-signature"></span>lineTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified line to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the endpoint of the line to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line526">line 526</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="moveTo"><span class="type-signature"></span>moveTo<span class="signature">(x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Starts a new path at the specified point.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the point to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the point to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line507">line 507</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pop"><span class="type-signature"></span>pop<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pop layer state off stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line762">line 762</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="push"><span class="type-signature"></span>push<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Push current layer state onto stack.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line751">line 751</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="put"><span class="type-signature"></span>put<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Put a rectangle of image data from one Layer to this Layer directly
+without performing any alpha blending. Simply copy the data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line431">line 431</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="rect"><span class="type-signature"></span>rect<span class="signature">(x, y, w, h)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Add the specified rectangle to the current path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                  rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>w</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle to draw.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>h</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle to draw.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line607">line 607</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="reset"><span class="type-signature"></span>reset<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Reset the layer, clearing the stack, the current path, and any transform
+matrix.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line776">line 776</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(newWidth, newHeight)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the size of this Layer to the given width and height. Resizing
+is only attempted if the new size provided is actually different from
+the current size.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>newWidth</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new width to assign to this Layer.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>newHeight</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new height to assign to this Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line313">line 313</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setChannelMask"><span class="type-signature"></span>setChannelMask<span class="signature">(mask)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the channel mask for future operations on this Layer.
+
+The channel mask is a Guacamole-specific compositing operation identifier
+with a single bit representing each of four channels (in order): source
+image where destination transparent, source where destination opaque,
+destination where source transparent, and destination where source
+opaque.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mask</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The channel mask for future operations on this
+                     Layer.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line844">line 844</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setMiterLimit"><span class="type-signature"></span>setMiterLimit<span class="signature">(limit)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the miter limit for stroke operations using the miter join. This
+limit is the maximum ratio of the size of the miter join to the stroke
+width. If this ratio is exceeded, the miter will not be drawn for that
+joint of the path.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>limit</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The miter limit for stroke operations using the
+                      miter join.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line857">line 857</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setTransform"><span class="type-signature"></span>setTransform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sets the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line805">line 805</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeColor"><span class="type-signature"></span>strokeColor<span class="signature">(cap, join, thickness, r, g, b, a)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the specified color. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>r</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The red component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>g</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The green component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The blue component of the color to fill.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The alpha component of the color to fill.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line652">line 652</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="strokeLayer"><span class="type-signature"></span>strokeLayer<span class="signature">(cap, join, thickness, srcLayer)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Stroke the current path with the image within the specified layer. The
+image data will be tiled infinitely within the stroke. The current path
+is implicitly closed. The current path can continue to be reused
+for other operations (such as clip()) but a new path will be started
+once a path drawing operation (path() or rect()) is used.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>cap</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line cap style. Can be "round", "square",
+                    or "butt".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>join</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line join style. Can be "round", "bevel",
+                     or "miter".</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>thickness</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The line thickness in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layer to use as a repeating pattern
+                                  within the stroke.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line705">line 705</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="toCanvas"><span class="type-signature"></span>toCanvas<span class="signature">()</span><span class="type-signature"> &rarr; {HTMLCanvasElement}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a new canvas element containing the same image as this Layer.
+Unlike getCanvas(), the canvas element returned is guaranteed to have
+the exact same dimensions as the Layer.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line290">line 290</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new canvas element containing a copy of the image content this
+    Layer.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">HTMLCanvasElement</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transfer"><span class="type-signature"></span>transfer<span class="signature">(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Transfer a rectangle of image data from one Layer to this Layer using the
+specified transfer function.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>srcLayer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Layer.html">Guacamole.Layer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Layer to copy image data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcx</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcy</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate of the upper-left corner of the
+                     rectangle within the source Layer's coordinate
+                     space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srcw</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width of the rectangle within the source Layer's
+                     coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>srch</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The height of the rectangle within the source
+                     Layer's coordinate space to copy data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination X coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination Y coordinate.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>transferFunction</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The transfer function to use to
+                                   transfer data from source to
+                                   destination.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line354">line 354</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="transform"><span class="type-signature"></span>transform<span class="signature">(a, b, c, d, e, f)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Applies the given affine transform (defined with six values from the
+transform's matrix).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>a</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The first value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>b</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The second value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>c</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The third value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>d</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fourth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>e</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The fifth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>f</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The sixth value in the affine transform's matrix.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Layer.js.html">Layer.js</a>, <a href="Layer.js.html#line824">line 824</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.State.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.State.html
new file mode 100644
index 0000000..1fdf73e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.State.html
@@ -0,0 +1,1069 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: State</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: State</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>State<span class="signature">(x, y, left, middle, right, up, down)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="State"><span class="type-signature"></span>new State<span class="signature">(x, y, left, middle, right, up, down)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple container for properties describing the state of a mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X position of the mouse pointer in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y position of the mouse pointer in pixels.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>left</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the left mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>middle</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the middle mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>right</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the right mouse button is pressed.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>up</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the up mouse button is pressed (the fourth
+                    button, usually part of a scroll wheel).</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>down</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">Whether the down mouse button is pressed (the fifth
+                      button, usually part of a scroll wheel).</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line411">line 411</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="down"><span class="type-signature"></span>down<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the down mouse button is currently pressed. This is the fifth 
+mouse button, associated with downward scrolling of the mouse scroll
+wheel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line463">line 463</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="left"><span class="type-signature"></span>left<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the left mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line435">line 435</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="middle"><span class="type-signature"></span>middle<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the middle mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line441">line 441</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="right"><span class="type-signature"></span>right<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the right mouse button is currently pressed.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line447">line 447</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="up"><span class="type-signature"></span>up<span class="type-signature"> :Boolean</span></h4>
+
+
+
+
+<div class="description">
+    Whether the up mouse button is currently pressed. This is the fourth
+mouse button, associated with upward scrolling of the mouse scroll
+wheel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line455">line 455</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="x"><span class="type-signature"></span>x<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current X position of the mouse pointer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line423">line 423</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="y"><span class="type-signature"></span>y<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current Y position of the mouse pointer.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line429">line 429</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="fromClientPosition"><span class="type-signature"></span>fromClientPosition<span class="signature">(element, clientX, clientY)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Updates the position represented within this state object by the given
+element and clientX/clientY coordinates (commonly available within event
+objects). Position is translated from clientX/clientY (relative to
+viewport) to element-relative coordinates.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The element the coordinates should be relative
+                         to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>clientX</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X coordinate to translate, viewport-relative.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>clientY</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y coordinate to translate, viewport-relative.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line476">line 476</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html
new file mode 100644
index 0000000..d330ed7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchpad.html
@@ -0,0 +1,914 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Touchpad</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Touchpad</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>Touchpad<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Touchpad"><span class="type-signature"></span>new Touchpad<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser relative touch event translation for a given element.
+
+Touch events are translated into mouse events as if the touches occurred
+on a touchpad (drag to push the mouse pointer, tap to click).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide touch events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line513">line 513</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="clickMoveThreshold"><span class="type-signature"></span>clickMoveThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of pixels to allow a touch to move for the gesture to
+be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line537">line 537</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="clickTimingThreshold"><span class="type-signature"></span>clickTimingThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of milliseconds to wait for a touch to end for the
+gesture to be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line531">line 531</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line546">line 546</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The distance a two-finger touch must move per scrollwheel event, in
+pixels.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line525">line 525</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively pressed. This can happen
+as part of a "click" gesture initiated by the user by tapping one
+or more fingers over the touchpad element, as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line560">line 560</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse by dragging their finger over
+the touchpad element.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line580">line 580</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively released. This can happen
+as part of a "click" gesture initiated by the user by tapping one
+or more fingers over the touchpad element, as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line571">line 571</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html
new file mode 100644
index 0000000..16c28d7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.Touchscreen.html
@@ -0,0 +1,980 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Touchscreen</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Touchscreen</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.Mouse.html">.Mouse</a>.</span>Touchscreen<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Touchscreen"><span class="type-signature"></span>new Touchscreen<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser absolute touch event translation for a given element.
+
+Touch events are translated into mouse events as if the touches occurred
+on a touchscreen (tapping anywhere on the screen clicks at that point,
+long-press to right-click).
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide touch events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line780">line 780</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="clickMoveThreshold"><span class="type-signature"></span>clickMoveThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of pixels to allow a touch to move for the gesture to
+be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line838">line 838</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="clickTimingThreshold"><span class="type-signature"></span>clickTimingThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The maximum number of milliseconds to wait for a touch to end for the
+gesture to be considered a click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line832">line 832</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line853">line 853</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="longPressThreshold"><span class="type-signature"></span>longPressThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The amount of time a press must be held for long press to be
+detected.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line844">line 844</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The distance a two-finger touch must move per scrollwheel event, in
+pixels.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line826">line 826</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively pressed. This can happen
+as part of a "mousedown" gesture initiated by the user by pressing one
+finger over the touchscreen element, as part of a "scroll" gesture
+initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line867">line 867</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse by dragging their finger over
+the touchscreen element. Note that unlike Guacamole.Mouse.Touchpad,
+dragging a finger over the touchscreen element will always cause
+the mouse button to be effectively down, as if clicking-and-dragging.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line889">line 889</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever a mouse button is effectively released. This can happen
+as part of a "mouseup" gesture initiated by the user by removing the
+finger pressed against the touchscreen element, or as part of a "scroll"
+gesture initiated by dragging two fingers up or down, etc.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line878">line 878</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.html b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.html
new file mode 100644
index 0000000..ca5923e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Mouse.html
@@ -0,0 +1,1286 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Mouse</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Mouse</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Mouse<span class="signature">(element)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Mouse"><span class="type-signature"></span>new Mouse<span class="signature">(element)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Provides cross-browser mouse events for a given element. The events of
+the given element are automatically populated with handlers that translate
+mouse events into a non-browser-specific event provided by the
+Guacamole.Mouse instance.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>element</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Element</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Element to use to provide mouse events.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.Mouse.State.html">State</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="currentState"><span class="type-signature"></span>currentState<span class="type-signature"> :<a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span></h4>
+
+
+
+
+<div class="description">
+    The current mouse state. The properties of this state are updated when
+mouse events fire. This state object is also passed in as a parameter to
+the handler of any mouse events.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line68">line 68</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="PIXELS_PER_LINE"><span class="type-signature"></span>PIXELS_PER_LINE<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of pixels to scroll per line.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line54">line 54</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="PIXELS_PER_PAGE"><span class="type-signature"></span>PIXELS_PER_PAGE<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of pixels to scroll per page.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line59">line 59</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="scrollThreshold"><span class="type-signature"></span>scrollThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The minimum amount of pixels scrolled required for a single scroll button
+click.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line49">line 49</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="touchMouseThreshold"><span class="type-signature"></span>touchMouseThreshold<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    The number of mousemove events to require before re-enabling mouse
+event handling after receiving a touch event.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line43">line 43</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="setCursor"><span class="type-signature"></span>setCursor<span class="signature">(canvas, x, y)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Changes the local mouse cursor to the given canvas, having the given
+hotspot coordinates. This affects styling of the element backing this
+Guacamole.Mouse only, and may fail depending on browser support for
+setting the mouse cursor.
+
+If setting the local cursor is desired, it is up to the implementation
+to do something else, such as use the software cursor built into
+Guacamole.Display, if the local cursor cannot be set.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>canvas</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">HTMLCanvasElement</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The cursor image.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>x</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The X-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>y</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Y-coordinate of the cursor hotspot.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line381">line 381</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the cursor was successfully set, false if the
+                  cursor could not be set for any reason.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousedown">onmousedown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a mouse button down over the element
+associated with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line80">line 80</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmousemove">onmousemove</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user moves the mouse over the element associated with
+this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line98">line 98</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseout">onmouseout</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the mouse leaves the boundaries of the element associated
+with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line106">line 106</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onmouseup">onmouseup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a mouse button down over the element
+associated with this Guacamole.Mouse.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Mouse.State.html">Guacamole.Mouse.State</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The current mouse state.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Mouse.js.html">Mouse.js</a>, <a href="Mouse.js.html#line89">line 89</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Object.html b/doc/1.1.0/guacamole-common-js/Guacamole.Object.html
new file mode 100644
index 0000000..d38ae33
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Object.html
@@ -0,0 +1,1120 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Object</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Object</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Object<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Object"><span class="type-signature"></span>new Object<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    An object used by the Guacamole client to house arbitrarily-many named
+input and output streams.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this object.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".ROOT_STREAM"><span class="type-signature">(static, constant) </span>ROOT_STREAM<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The reserved name denoting the root stream of any object. The contents of
+the root stream MUST be a JSON map of stream name to mimetype.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line200">line 200</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".STREAM_INDEX_MIMETYPE"><span class="type-signature">(static, constant) </span>STREAM_INDEX_MIMETYPE<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The mimetype of a stream containing JSON which maps available stream names
+to their corresponding mimetype. The root stream of a Guacamole.Object MUST
+have this mimetype.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this object.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="createOutputStream"><span class="type-signature"></span>createOutputStream<span class="signature">(mimetype, name)</span><span class="type-signature"> &rarr; {<a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Creates a new output stream associated with this object and having the
+given mimetype and name. The legality of a mimetype and name is dictated
+by the object itself.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data which will be sent to the output stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The defined name of an output stream within this object.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line187">line 187</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    An output stream which will write blobs to the named output stream
+    of this object.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="requestInputStream"><span class="type-signature"></span>requestInputStream<span class="signature">(name, bodyCallback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Requests read access to the input stream having the given name. If
+successful, a new input stream will be created.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The name of the input stream to request.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>bodyCallback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The callback to invoke when the body of the requested input stream
+    is received. This callback will be provided a Guacamole.InputStream
+    and its mimetype as its two only arguments. If the onbody handler of
+    this object is overridden, this callback will not be invoked.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line161">line 161</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onbody">onbody</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this object receives the body of a requested input stream.
+By default, all objects will invoke the callbacks provided to their
+requestInputStream() functions based on the name of the stream
+requested. This behavior can be overridden by specifying a different
+handler here.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>inputStream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The input stream of the received body.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the data being received.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The name of the stream whose body has been received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line131">line 131</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onundefine">onundefine</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Called when this object is being undefined. Once undefined, no further
+communication involving this object may occur.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object.js.html">Object.js</a>, <a href="Object.js.html#line146">line 146</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html
new file mode 100644
index 0000000..f1e10de
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Key.html
@@ -0,0 +1,656 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Key</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Key</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.OnScreenKeyboard.html">.OnScreenKeyboard</a>.</span>Key<span class="signature">(template, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Key"><span class="type-signature"></span>new Key<span class="signature">(template, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents a single key, or a single possible behavior of a key. Each key
+on the on-screen keyboard must have at least one associated
+Guacamole.OnScreenKeyboard.Key, whether that key is explicitly defined or
+implied, and may have multiple Guacamole.OnScreenKeyboard.Key if behavior
+depends on modifier states.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The object whose identically-named properties will be used to initialize
+    the properties of this key.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>name</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The name to use instead of any name provided within the template, if
+    any. If omitted, the name within the template will be used, assuming the
+    template contains a name.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line877">line 877</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keysym"><span class="type-signature"></span>keysym<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The keysym to be pressed/released when this key is pressed/released. If
+not provided, this will be derived from the title if the title is a
+single character.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line901">line 901</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="modifier"><span class="type-signature"></span>modifier<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The name of the modifier set when the key is pressed and cleared when
+this key is released, if any. The names of modifiers are distinct from
+the names of keys; both the "RightShift" and "LeftShift" keys may set
+the "shift" modifier, for example. By default, the key will affect no
+modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line930">line 930</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="name"><span class="type-signature"></span>name<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The unique name identifying this key within the keyboard layout.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line884">line 884</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="requires"><span class="type-signature"></span>requires<span class="type-signature"> :Array.&lt;String></span></h4>
+
+
+
+
+<div class="description">
+    An array containing the names of each modifier required for this key to
+have an effect. For example, a lowercase letter may require nothing,
+while an uppercase letter would require "shift", assuming the Shift key
+is named "shift" within the layout. By default, the key will require
+no modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Array.&lt;String></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line941">line 941</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="title"><span class="type-signature"></span>title<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The human-readable title that will be displayed to the user within the
+key. If not provided, this will be derived from the key name.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line892">line 892</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html
new file mode 100644
index 0000000..6c68c3d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.Layout.html
@@ -0,0 +1,687 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Layout</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Layout</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a><a href="Guacamole.OnScreenKeyboard.html">.OnScreenKeyboard</a>.</span>Layout<span class="signature">(template)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Layout"><span class="type-signature"></span>new Layout<span class="signature">(template)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Represents an entire on-screen keyboard layout, including all available
+keys, their behaviors, and their relative position and sizing.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The object whose identically-named properties will be used to initialize
+    the properties of this layout.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line796">line 796</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keys"><span class="type-signature"></span>keys<span class="type-signature"> :Object.&lt;String, (Number|String|<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>|Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>)></span></h4>
+
+
+
+
+<div class="description">
+    Map of key name to corresponding keysym, title, or key object. If only
+the keysym or title is provided, the key object will be created
+implicitly. In all cases, the name property of the key object will be
+taken from the name given in the mapping.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, (Number|String|<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>|Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>)></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line823">line 823</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="keyWidths"><span class="type-signature"></span>keyWidths<span class="type-signature"> :Object.&lt;String, Number></span></h4>
+
+
+
+
+<div class="description">
+    The width of each key, in arbitrary units, relative to other keys in
+this layout. The true pixel size of each key will be determined by the
+overall size of the keyboard. If not defined here, the width of each
+key will default to 1.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, Number></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line856">line 856</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="language"><span class="type-signature"></span>language<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The language of keyboard layout, such as "en_US". This property is for
+informational purposes only, but it is recommend to conform to the
+[language code]_[country code] format.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line805">line 805</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="layout"><span class="type-signature"></span>layout<span class="type-signature"> :Object</span></h4>
+
+
+
+
+<div class="description">
+    Arbitrarily nested, arbitrarily grouped key names. The contents of the
+layout will be traversed to produce an identically-nested grouping of
+keys in the DOM tree. All strings will be transformed into their
+corresponding sets of keys, while all objects and arrays will be
+transformed into named groups and anonymous groups respectively. Any
+numbers present will be transformed into gaps of that size, scaled
+according to the same units as each key.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line836">line 836</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="type"><span class="type-signature"></span>type<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The type of keyboard layout, such as "qwerty". This property is for
+informational purposes only, and does not conform to any standard.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line813">line 813</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="width"><span class="type-signature"></span>width<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The width of the entire keyboard, in arbitrary units. The width of each
+key is relative to this width, as both width values are assumed to be in
+the same units. The conversion factor between these units and pixels is
+derived later via a call to resize() on the Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line846">line 846</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html
new file mode 100644
index 0000000..2ad8d71
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OnScreenKeyboard.html
@@ -0,0 +1,986 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: OnScreenKeyboard</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: OnScreenKeyboard</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>OnScreenKeyboard<span class="signature">(layout)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="OnScreenKeyboard"><span class="type-signature"></span>new OnScreenKeyboard<span class="signature">(layout)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Dynamic on-screen keyboard. Given the layout object for an on-screen
+keyboard, this object will construct a clickable on-screen keyboard with its
+own key events.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>layout</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The layout of the on-screen keyboard to display.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="keys"><span class="type-signature"></span>keys<span class="type-signature"> :Object.&lt;String, Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>></span></h4>
+
+
+
+
+<div class="description">
+    Map of all key names to their corresponding set of keys. Each key name
+may correspond to multiple keys due to the effect of modifiers.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Object.&lt;String, Array.&lt;<a href="Guacamole.OnScreenKeyboard.Key.html">Guacamole.OnScreenKeyboard.Key</a>>></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line543">line 543</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="layout"><span class="type-signature"></span>layout<span class="type-signature"> :<a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span></h4>
+
+
+
+
+<div class="description">
+    The keyboard layout provided at time of construction.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type"><a href="Guacamole.OnScreenKeyboard.Layout.html">Guacamole.OnScreenKeyboard.Layout</a></span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line427">line 427</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="touchMouseThreshold"><span class="type-signature"></span>touchMouseThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of mousemove events to require before re-enabling mouse
+event handling after receiving a touch event.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line404">line 404</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getElement"><span class="type-signature"></span>getElement<span class="signature">()</span><span class="type-signature"> &rarr; {Element}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the element containing the entire on-screen keyboard.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line433">line 433</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The element containing the entire on-screen keyboard.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Element</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="resize"><span class="type-signature"></span>resize<span class="signature">(width)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Resizes all elements within this Guacamole.OnScreenKeyboard such that
+the width is close to but does not exceed the specified width. The
+height of the keyboard is determined based on the width.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>width</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The width to resize this Guacamole.OnScreenKeyboard
+                      to, in pixels.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line445">line 445</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeydown">onkeydown</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user presses a key on this Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being pressed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line412">line 412</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onkeyup">onkeyup</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the user releases a key on this Guacamole.OnScreenKeyboard.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>keysym</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The keysym of the key being released.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OnScreenKeyboard.js.html">OnScreenKeyboard.js</a>, <a href="OnScreenKeyboard.js.html#line420">line 420</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.OutputStream.html b/doc/1.1.0/guacamole-common-js/Guacamole.OutputStream.html
new file mode 100644
index 0000000..5e41b2d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.OutputStream.html
@@ -0,0 +1,692 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: OutputStream</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: OutputStream</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>OutputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="OutputStream"><span class="type-signature"></span>new OutputStream<span class="signature">(client, index)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract stream which can receive data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>client</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Client.html">Guacamole.Client</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The client owning this stream.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>index</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The index of this stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line29">line 29</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="index"><span class="type-signature"></span>index<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The index of this stream.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line41">line 41</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendBlob"><span class="type-signature"></span>sendBlob<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Writes the given base64-encoded data to this stream as a blob.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The base64-encoded data to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Closes this stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an acknowledgement is received from the server, indicating
+that a stream operation has completed, or an error has occurred.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="OutputStream.js.html">OutputStream.js</a>, <a href="OutputStream.js.html#line50">line 50</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Parser.html b/doc/1.1.0/guacamole-common-js/Guacamole.Parser.html
new file mode 100644
index 0000000..eade535
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Parser.html
@@ -0,0 +1,484 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Parser</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Parser</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Parser<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Parser"><span class="type-signature"></span>new Parser<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Simple Guacamole protocol parser that invokes an oninstruction event when
+full instructions are available from data received via receive().
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line28">line 28</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="receive"><span class="type-signature"></span>receive<span class="signature">(packet)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Appends the given instruction data packet to the internal buffer of
+this Guacamole.Parser, executing all completed instructions at
+the beginning of this buffer, if any.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>packet</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The instruction data to receive.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line66">line 66</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Parser.js.html">Parser.js</a>, <a href="Parser.js.html#line154">line 154</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioFormat.html b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioFormat.html
new file mode 100644
index 0000000..136e54d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioFormat.html
@@ -0,0 +1,621 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioFormat</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioFormat</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioFormat<span class="signature">(template)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioFormat"><span class="type-signature"></span>new RawAudioFormat<span class="signature">(template)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A description of the format of raw PCM audio, such as that used by
+Guacamole.RawAudioPlayer and Guacamole.RawAudioRecorder. This object
+describes the number of bytes per sample, the number of channels, and the
+overall sample rate.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>template</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a></span>
+|
+
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The object whose properties should be copied into the corresponding
+    properties of the new Guacamole.RawAudioFormat.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line33">line 33</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="bytesPerSample"><span class="type-signature"></span>bytesPerSample<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of bytes in each sample of audio data. This value is
+independent of the number of channels.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line41">line 41</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="channels"><span class="type-signature"></span>channels<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of audio channels (ie: 1 for mono, 2 for stereo).
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line48">line 48</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="rate"><span class="type-signature"></span>rate<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The number of samples per second, per channel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".parse"><span class="type-signature">(static) </span>parse<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Parses the given mimetype, returning a new Guacamole.RawAudioFormat
+which describes the type of raw audio data represented by that mimetype. If
+the mimetype is not a supported raw audio data mimetype, null is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The audio mimetype to parse.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="RawAudioFormat.js.html">RawAudioFormat.js</a>, <a href="RawAudioFormat.js.html#line72">line 72</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A new Guacamole.RawAudioFormat which describes the type of raw
+    audio data represented by the given mimetype, or null if the given
+    mimetype is not supported.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.RawAudioFormat.html">Guacamole.RawAudioFormat</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioPlayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioPlayer.html
new file mode 100644
index 0000000..4474db8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioPlayer.html
@@ -0,0 +1,638 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioPlayer<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioPlayer"><span class="type-signature"></span>new RawAudioPlayer<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Implementation of Guacamole.AudioPlayer providing support for raw PCM format
+audio. This player relies only on the Web Audio API and does not require any
+browser-level support for its audio formats.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read audio data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data in the provided stream, which must be a
+    "audio/L8" or "audio/L16" mimetype with necessary parameters, such as:
+    "audio/L16;rate=44100,channels=2".</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line123">line 123</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.AudioPlayer.html">Guacamole.AudioPlayer</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by Guacamole.RawAudioPlayer. Only
+the core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a raw audio mimetype that may be supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line493">line 493</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by Guacamole.RawAudioPlayer, excluding
+    any parameters. If the necessary JavaScript APIs for playing raw audio
+    are absent, this list will be empty.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by
+Guacamole.RawAudioPlayer.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line470">line 470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by Guacamole.RawAudioPlayer,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.AudioPlayer that all audio up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued audio data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.AudioPlayer.html#sync">Guacamole.AudioPlayer#sync</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioPlayer.js.html">AudioPlayer.js</a>, <a href="AudioPlayer.js.html#line38">line 38</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioRecorder.html b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioRecorder.html
new file mode 100644
index 0000000..09ba7f6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.RawAudioRecorder.html
@@ -0,0 +1,814 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: RawAudioRecorder</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: RawAudioRecorder</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>RawAudioRecorder<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="RawAudioRecorder"><span class="type-signature"></span>new RawAudioRecorder<span class="signature">(stream, mimetype)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Implementation of Guacamole.AudioRecorder providing support for raw PCM
+format audio. This recorder relies only on the Web Audio API and does not
+require any browser-level support for its audio formats.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.OutputStream to write audio data to.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the audio data to send along the provided stream, which
+    must be a "audio/L8" or "audio/L16" mimetype with necessary parameters,
+    such as: "audio/L16;rate=44100,channels=2".</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line134">line 134</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.AudioRecorder.html">Guacamole.AudioRecorder</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="~mediaStream"><span class="type-signature">(inner) </span>mediaStream<span class="type-signature"> :MediaStream</span></h4>
+
+
+
+
+<div class="description">
+    The audio stream provided by the browser, if allowed. If no stream has
+yet been received, this will be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">MediaStream</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line252">line 252</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by Guacamole.RawAudioRecorder. Only
+the core mimetypes themselves will be listed. Any mimetype parameters, even
+required ones, will not be included in the list. For example, "audio/L8" is
+a raw audio mimetype that may be supported, but it is invalid without
+additional parameters. Something like "audio/L8;rate=44100" would be valid,
+however (see https://tools.ietf.org/html/rfc4856).
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line559">line 559</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by Guacamole.RawAudioRecorder,
+    excluding any parameters. If the necessary JavaScript APIs for recording
+    raw audio are absent, this list will be empty.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by
+Guacamole.RawAudioRecorder.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line536">line 536</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by Guacamole.RawAudioRecorder,
+    false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onclose">onclose</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process has stopped
+and the underlying Guacamole stream has been closed normally. Audio will
+only resume recording if a new Guacamole.AudioRecorder is started. This
+Guacamole.AudioRecorder instance MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.AudioRecorder.html#event:onclose">Guacamole.AudioRecorder#event:onclose</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Callback which is invoked when the audio recording process cannot
+continue due to an error, if it has started at all. The underlying
+Guacamole stream is automatically closed. Future attempts to record
+audio should not be made, and this Guacamole.AudioRecorder instance
+MAY NOT be reused.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.AudioRecorder.html#event:onerror">Guacamole.AudioRecorder#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="AudioRecorder.js.html">AudioRecorder.js</a>, <a href="AudioRecorder.js.html#line51">line 51</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.SessionRecording.html b/doc/1.1.0/guacamole-common-js/Guacamole.SessionRecording.html
new file mode 100644
index 0000000..501f816
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.SessionRecording.html
@@ -0,0 +1,1715 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: SessionRecording</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: SessionRecording</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>SessionRecording<span class="signature">(tunnel)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="SessionRecording"><span class="type-signature"></span>new SessionRecording<span class="signature">(tunnel)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A recording of a Guacamole session. Given a <a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a>, the
+Guacamole.SessionRecording automatically handles incoming Guacamole
+instructions, storing them for playback. Playback of the recording may be
+controlled through function calls to the Guacamole.SessionRecording, even
+while the recording has not yet finished being created or downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnel</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.Tunnel from which the instructions of the recording should
+    be read.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line34">line 34</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connects the underlying tunnel, beginning download of the Guacamole
+session. Playback of the Guacamole session cannot occur until at least
+one frame worth of instructions has been downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line480">line 480</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnects the underlying tunnel, stopping further download of the
+Guacamole session.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line488">line 488</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDisplay"><span class="type-signature"></span>getDisplay<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Guacamole.Display.html">Guacamole.Display</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the underlying display of the Guacamole.Client used by this
+Guacamole.SessionRecording for playback. The display contains an Element
+which can be added to the DOM, causing the display (and thus playback of
+the recording) to become visible.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line502">line 502</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The underlying display of the Guacamole.Client used by this
+    Guacamole.SessionRecording for playback.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.Display.html">Guacamole.Display</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getDuration"><span class="type-signature"></span>getDuration<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the duration of this recording, in milliseconds. If the
+recording is still being downloaded, this value will gradually increase.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line542">line 542</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The duration of this recording, in milliseconds.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="getPosition"><span class="type-signature"></span>getPosition<span class="signature">()</span><span class="type-signature"> &rarr; {Number}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns the current playback position within the recording, in
+milliseconds, where zero is the start of the recording.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line523">line 523</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    The current playback position within the recording, in milliseconds.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Number</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isPlaying"><span class="type-signature"></span>isPlaying<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether playback is currently in progress.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line512">line 512</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if playback is currently in progress, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="pause"><span class="type-signature"></span>pause<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Pauses playback of the recording, if playback is currently in progress.
+If playback is not in progress, this function has no effect. If a seek
+operation is in progress, the seek is aborted. Playback is initially
+paused when a Guacamole.SessionRecording is created, and must be
+explicitly started through a call to play().
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line632">line 632</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="play"><span class="type-signature"></span>play<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Begins continuous playback of the recording downloaded thus far.
+Playback of the recording will continue until pause() is invoked or
+until no further frames exist. Playback is initially paused when a
+Guacamole.SessionRecording is created, and must be explicitly started
+through a call to this function. If playback is already in progress,
+this function has no effect. If a seek operation is in progress,
+playback resumes at the current position, and the seek is aborted as if
+completed.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line563">line 563</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="seek"><span class="type-signature"></span>seek<span class="signature">(position, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Seeks to the given position within the recording. If the recording is
+currently being played back, playback will continue after the seek is
+performed. If the recording is currently paused, playback will be
+paused after the seek is performed. If a seek operation is already in
+progress, that seek is first aborted. The seek operation will proceed
+asynchronously.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The position within the recording to seek to, in milliseconds.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>callback</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">function</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The callback to invoke once the seek operation has completed.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line600">line 600</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onpause">onpause</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever playback of the recording has been paused. This may
+happen when playback is explicitly paused with a call to pause(), or
+when playback is implicitly paused due to reaching the end of the
+recording.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line461">line 461</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onplay">onplay</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever playback of the recording has started.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line451">line 451</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onprogress">onprogress</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired when new frames have become available while the recording is
+being downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>duration</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new duration of the recording, in milliseconds.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line444">line 444</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onseek">onseek</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the playback position within the recording changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>position</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new position within the recording, in milliseconds.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="SessionRecording.js.html">SessionRecording.js</a>, <a href="SessionRecording.js.html#line470">line 470</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html
new file mode 100644
index 0000000..876c5c1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.StaticHTTPTunnel.html
@@ -0,0 +1,1611 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StaticHTTPTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StaticHTTPTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StaticHTTPTunnel<span class="signature">(url, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StaticHTTPTunnel"><span class="type-signature"></span>new StaticHTTPTunnel<span class="signature">(url, crossDomain<span class="signature-attributes">opt</span>, extraTunnelHeaders<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel which replays a Guacamole protocol dump from a static file
+received via HTTP. Instructions within the file are parsed and handled as
+quickly as possible, while the file is being downloaded.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+        <th>Default</th>
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>url</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                </td>
+            
+
+            <td class="description last">The URL of a Guacamole protocol dump.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>crossDomain</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Boolean</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    false
+                
+                </td>
+            
+
+            <td class="description last">Whether tunnel requests will be cross-domain, and thus must use CORS
+    mechanisms and headers. By default, it is assumed that tunnel requests
+    will be made to the same domain.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>extraTunnelHeaders</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Object</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+                <td class="default">
+                
+                    {}
+                
+                </td>
+            
+
+            <td class="description last">Key value pairs containing the header names and values of any additional
+    headers to be sent in tunnel requests. By default, no extra headers will
+    be added.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line1255">line 1255</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Status.html b/doc/1.1.0/guacamole-common-js/Guacamole.Status.html
new file mode 100644
index 0000000..ca3259a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Status.html
@@ -0,0 +1,606 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Status</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Status</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Status<span class="signature">(code, message<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Status"><span class="type-signature"></span>new Status<span class="signature">(code, message<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A Guacamole status. Each Guacamole status consists of a status code, defined
+by the protocol, and an optional human-readable message, usually only
+included for debugging convenience.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>code</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The Guacamole status code, as defined by Guacamole.Status.Code.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>message</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+                    &lt;optional><br>
+                
+
+                
+
+                
+                </td>
+            
+
+            
+
+            <td class="description last">An optional human-readable message.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line34">line 34</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".Code"><span class="type-signature">(static) </span>Code<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    Enumeration of all Guacamole status codes.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line73">line 73</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="code"><span class="type-signature"></span>code<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The Guacamole status code.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line47">line 47</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+    <dt class="tag-see">See:</dt>
+    <dd class="tag-see">
+        <ul>
+            <li><a href="Guacamole.Status.html#.Code">Guacamole.Status.Code</a></li>
+        </ul>
+    </dd>
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="message"><span class="type-signature"></span>message<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    An arbitrary human-readable message associated with this status, if any.
+The human-readable message is not required, and is generally provided
+for debugging purposes only. For user feedback, it is better to translate
+the Guacamole status code into a message.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isError"><span class="type-signature"></span>isError<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this status represents an error.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Status.js.html">Status.js</a>, <a href="Status.js.html#line64">line 64</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this status represents an error, false
+                   otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.StringReader.html b/doc/1.1.0/guacamole-common-js/Guacamole.StringReader.html
new file mode 100644
index 0000000..5ccbf53
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.StringReader.html
@@ -0,0 +1,456 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StringReader</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StringReader</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StringReader<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StringReader"><span class="type-signature"></span>new StringReader<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A reader which automatically handles the given input stream, returning
+strictly text data. Note that this object will overwrite any installed event
+handlers on the given Guacamole.InputStream.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be read
+                                      from.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onend">onend</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once this stream is finished and no further data will be written.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line165">line 165</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:ontext">ontext</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every blob of text data received.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>text</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data packet received.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringReader.js.html">StringReader.js</a>, <a href="StringReader.js.html#line159">line 159</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.StringWriter.html b/doc/1.1.0/guacamole-common-js/Guacamole.StringWriter.html
new file mode 100644
index 0000000..52223ce
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.StringWriter.html
@@ -0,0 +1,595 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: StringWriter</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: StringWriter</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>StringWriter<span class="signature">(stream)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="StringWriter"><span class="type-signature"></span>new StringWriter<span class="signature">(stream)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    A writer which automatically writes to the given output stream with text
+data.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.OutputStream.html">Guacamole.OutputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The stream that data will be written
+                                       to.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendEnd"><span class="type-signature"></span>sendEnd<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Signals that no further text will be sent, effectively closing the
+stream.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line181">line 181</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendText"><span class="type-signature"></span>sendText<span class="signature">(text)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Sends the given text.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>text</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The text to send.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line172">line 172</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onack">onack</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired for received data, if acknowledged by the server.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The status of the operation.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="StringWriter.js.html">StringWriter.js</a>, <a href="StringWriter.js.html#line190">line 190</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.Tunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.Tunnel.html
new file mode 100644
index 0000000..72b47a8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.Tunnel.html
@@ -0,0 +1,1545 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: Tunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: Tunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>Tunnel<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="Tunnel"><span class="type-signature"></span>new Tunnel<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Core object providing abstract communication for Guacamole. This object
+is a null implementation whose functions do nothing. Guacamole applications
+should use <a href="Guacamole.HTTPTunnel.html">Guacamole.HTTPTunnel</a> instead, or implement their own tunnel based
+on this one.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+    <dt class="tag-see">See:</dt>
+    <dd class="tag-see">
+        <ul>
+            <li><a href="Guacamole.HTTPTunnel.html">Guacamole.HTTPTunnel</a></li>
+        </ul>
+    </dd>
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".INTERNAL_DATA_OPCODE"><span class="type-signature">(static, constant) </span>INTERNAL_DATA_OPCODE<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The Guacamole protocol instruction opcode reserved for arbitrary internal
+use by tunnel implementations. The value of this opcode is guaranteed to be
+the empty string (""). Tunnel implementations may use this opcode for any
+purpose. It is currently used by the HTTP tunnel to mark the end of the HTTP
+response, and by the WebSocket tunnel to transmit the tunnel UUID and send
+connection stability test pings/responses.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line162">line 162</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id=".State"><span class="type-signature">(static) </span>State<span class="type-signature"></span></h4>
+
+
+
+
+<div class="description">
+    All possible tunnel states.
+</div>
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line167">line 167</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.VideoPlayer.html b/doc/1.1.0/guacamole-common-js/Guacamole.VideoPlayer.html
new file mode 100644
index 0000000..3e836ce
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.VideoPlayer.html
@@ -0,0 +1,756 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: VideoPlayer</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: VideoPlayer</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>VideoPlayer<span class="signature">()</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="VideoPlayer"><span class="type-signature"></span>new VideoPlayer<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Abstract video player which accepts, queues and plays back arbitrary video
+data. It is up to implementations of this class to provide some means of
+handling a provided Guacamole.InputStream and rendering the received data to
+the provided Guacamole.Display.VisibleLayer. Data received along the
+provided stream is to be played back immediately.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line31">line 31</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getInstance"><span class="type-signature">(static) </span>getInstance<span class="signature">(stream, layer, mimetype)</span><span class="type-signature"> &rarr; {<a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns an instance of Guacamole.VideoPlayer providing support for the given
+video format. If support for the given video format is not available, null
+is returned.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>stream</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.InputStream.html">Guacamole.InputStream</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole.InputStream to read video data from.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>layer</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Display.VisibleLayer.html">Guacamole.Display.VisibleLayer</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The destination layer in which this Guacamole.VideoPlayer should play
+    the received video data.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype of the video data in the provided stream.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line103">line 103</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A Guacamole.VideoPlayer instance supporting the given mimetype and
+    reading from the given stream, or null if support for the given mimetype
+    is absent.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type"><a href="Guacamole.VideoPlayer.html">Guacamole.VideoPlayer</a></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".getSupportedTypes"><span class="type-signature">(static) </span>getSupportedTypes<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;String>}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns a list of all mimetypes supported by any built-in
+Guacamole.VideoPlayer, in rough order of priority. Beware that only the core
+mimetypes themselves will be listed. Any mimetype parameters, even required
+ones, will not be included in the list.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line75">line 75</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    A list of all mimetypes supported by any built-in Guacamole.VideoPlayer,
+    excluding any parameters.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Array.&lt;String></span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id=".isSupportedType"><span class="type-signature">(static) </span>isSupportedType<span class="signature">(mimetype)</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Determines whether the given mimetype is supported by any built-in
+implementation of Guacamole.VideoPlayer, and thus will be properly handled
+by Guacamole.VideoPlayer.getInstance().
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>mimetype</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The mimetype to check.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line57">line 57</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if the given mimetype is supported by any built-in
+    Guacamole.VideoPlayer, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sync"><span class="type-signature"></span>sync<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Notifies this Guacamole.VideoPlayer that all video up to the current
+point in time has been given via the underlying stream, and that any
+difference in time between queued video data and the current time can be
+considered latency.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="VideoPlayer.js.html">VideoPlayer.js</a>, <a href="VideoPlayer.js.html#line39">line 39</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.WebSocketTunnel.html b/doc/1.1.0/guacamole-common-js/Guacamole.WebSocketTunnel.html
new file mode 100644
index 0000000..06a1a9a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.WebSocketTunnel.html
@@ -0,0 +1,1511 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Class: WebSocketTunnel</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Class: WebSocketTunnel</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2><span class="attribs"><span class="type-signature"></span></span>
+            <span class="ancestors"><a href="Guacamole.html">Guacamole</a>.</span>WebSocketTunnel<span class="signature">(tunnelURL)</span><span class="type-signature"></span></h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+
+    
+
+    
+    <h4 class="name" id="WebSocketTunnel"><span class="type-signature"></span>new WebSocketTunnel<span class="signature">(tunnelURL)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Guacamole Tunnel implemented over WebSocket via XMLHttpRequest.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>tunnelURL</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The URL of the WebSocket tunneling service.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line747">line 747</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    
+    </div>
+
+    
+        <h3 class="subsection-title">Extends</h3>
+
+        
+
+
+    <ul>
+        <li><a href="Guacamole.Tunnel.html">Guacamole.Tunnel</a></li>
+    </ul>
+
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id="receiveTimeout"><span class="type-signature"></span>receiveTimeout<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The maximum amount of time to wait for data to be received, in
+milliseconds. If data is not received within this amount of time,
+the tunnel is closed with an error. The default value is 15000.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#receiveTimeout">Guacamole.Tunnel#receiveTimeout</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line101">line 101</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="state"><span class="type-signature"></span>state<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The current state of this tunnel.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#state">Guacamole.Tunnel#state</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line92">line 92</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="unstableThreshold"><span class="type-signature"></span>unstableThreshold<span class="type-signature"> :Number</span></h4>
+
+
+
+
+<div class="description">
+    The amount of time to wait for data to be received before considering
+the connection to be unstable, in milliseconds. If data is not received
+within this amount of time, the tunnel status is updated to warn that
+the connection appears unresponsive and may close. The default value is
+1500.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">Number</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#unstableThreshold">Guacamole.Tunnel#unstableThreshold</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line112">line 112</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
+<h4 class="name" id="uuid"><span class="type-signature"></span>uuid<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The UUID uniquely identifying this tunnel. If not yet known, this will
+be null.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#uuid">Guacamole.Tunnel#uuid</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line120">line 120</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+        <h3 class="subsection-title">Methods</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="connect"><span class="type-signature"></span>connect<span class="signature">(data)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Connect to the tunnel with the given optional data. This data is
+typically used for authentication. The format of data accepted is
+up to the tunnel implementation.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>data</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The data to send to the tunnel when connecting.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#connect">Guacamole.Tunnel#connect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line40">line 40</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="disconnect"><span class="type-signature"></span>disconnect<span class="signature">()</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Disconnect from the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#disconnect">Guacamole.Tunnel#disconnect</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line45">line 45</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="isConnected"><span class="type-signature"></span>isConnected<span class="signature">()</span><span class="type-signature"> &rarr; {Boolean}</span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Returns whether this tunnel is currently connected.
+</div>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#isConnected">Guacamole.Tunnel#isConnected</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line82">line 82</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h5>Returns:</h5>
+
+        
+<div class="param-desc">
+    true if this tunnel is currently connected, false otherwise.
+</div>
+
+
+
+<dl>
+    <dt>
+        Type
+    </dt>
+    <dd>
+        
+<span class="param-type">Boolean</span>
+
+
+    </dd>
+</dl>
+
+    
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="sendMessage"><span class="type-signature"></span>sendMessage<span class="signature">(&hellip;elements)</span><span class="type-signature"></span></h4>
+    
+
+    
+
+
+
+<div class="description">
+    Send the given message through the tunnel to the service on the other
+side. All messages are guaranteed to be received in the order sent.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+        <th>Attributes</th>
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>elements</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">*</span>
+
+
+            
+            </td>
+
+            
+                <td class="attributes">
+                
+
+                
+
+                
+                    &lt;repeatable><br>
+                
+                </td>
+            
+
+            
+
+            <td class="description last">The elements of the message to send to the service on the other side
+    of the tunnel.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-overrides">Overrides:</dt>
+    <dd class="tag-overrides"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#sendMessage">Guacamole.Tunnel#sendMessage</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line55">line 55</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+        <h3 class="subsection-title">Events</h3>
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onerror">onerror</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever an error is encountered by the tunnel.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>status</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type"><a href="Guacamole.Status.html">Guacamole.Status</a></span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">A status object which describes the
+                                 error.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onerror">Guacamole.Tunnel#event:onerror</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line129">line 129</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:oninstruction">oninstruction</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired once for every complete Guacamole instruction received, in order.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>opcode</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">String</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The Guacamole instruction opcode.</td>
+        </tr>
+
+    
+
+        <tr>
+            
+                <td class="name"><code>parameters</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Array</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The parameters provided for the instruction,
+                          if any.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:oninstruction">Guacamole.Tunnel#event:oninstruction</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line147">line 147</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+            
+
+    
+
+    
+    <h4 class="name" id="event:onstatechange">onstatechange</h4>
+    
+
+    
+
+
+
+<div class="description">
+    Fired whenever the state of the tunnel changes.
+</div>
+
+
+
+
+
+
+
+
+
+    <h5>Parameters:</h5>
+    
+
+<table class="params">
+    <thead>
+    <tr>
+        
+        <th>Name</th>
+        
+
+        <th>Type</th>
+
+        
+
+        
+
+        <th class="last">Description</th>
+    </tr>
+    </thead>
+
+    <tbody>
+    
+
+        <tr>
+            
+                <td class="name"><code>state</code></td>
+            
+
+            <td class="type">
+            
+                
+<span class="param-type">Number</span>
+
+
+            
+            </td>
+
+            
+
+            
+
+            <td class="description last">The new state of the client.</td>
+        </tr>
+
+    
+    </tbody>
+</table>
+
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Guacamole.Tunnel.html#event:onstatechange">Guacamole.Tunnel#event:onstatechange</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Tunnel.js.html">Tunnel.js</a>, <a href="Tunnel.js.html#line137">line 137</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/Guacamole.html b/doc/1.1.0/guacamole-common-js/Guacamole.html
new file mode 100644
index 0000000..0381a4b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Guacamole.html
@@ -0,0 +1,332 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Namespace: Guacamole</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Namespace: Guacamole</h1>
+
+    
+
+
+
+
+<section>
+
+<header>
+    
+        <h2>Guacamole</h2>
+        
+    
+</header>
+
+<article>
+    <div class="container-overview">
+    
+        
+            <div class="description">The namespace used by the Guacamole JavaScript API. Absolutely all classes
+defined by the Guacamole JavaScript API will be within this namespace.</div>
+        
+
+        
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Namespace.js.html">Namespace.js</a>, <a href="Namespace.js.html#line26">line 26</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+        
+    
+    </div>
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Classes</h3>
+
+        <dl>
+            <dt><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.BlobReader.html">BlobReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.BlobWriter.html">BlobWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Client.html">Client</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.DataURIReader.html">DataURIReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Display.html">Display</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.InputSink.html">InputSink</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.InputStream.html">InputStream</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.IntegerPool.html">IntegerPool</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.JSONReader.html">JSONReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Keyboard.html">Keyboard</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Layer.html">Layer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Mouse.html">Mouse</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Object.html">Object</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.OutputStream.html">OutputStream</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Parser.html">Parser</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.SessionRecording.html">SessionRecording</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Status.html">Status</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StringReader.html">StringReader</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.StringWriter.html">StringWriter</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.Tunnel.html">Tunnel</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></dt>
+            <dd></dd>
+        
+            <dt><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+
+    
+
+    
+        <h3 class="subsection-title">Namespaces</h3>
+
+        <dl>
+            <dt><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></dt>
+            <dd></dd>
+        </dl>
+    
+
+    
+        <h3 class="subsection-title">Members</h3>
+
+        
+            
+<h4 class="name" id=".API_VERSION"><span class="type-signature">(static) </span>API_VERSION<span class="type-signature"> :String</span></h4>
+
+
+
+
+<div class="description">
+    The unique ID of this version of the Guacamole JavaScript API. This ID will
+be the version string of the guacamole-common-js Maven project, and can be
+used in downstream applications as a sanity check that the proper version
+of the APIs is being used (in case an older version is cached, for example).
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">String</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Version.js.html">Version.js</a>, <a href="Version.js.html#line30">line 30</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+    
+
+    
+
+    
+
+    
+</article>
+
+</section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/InputSink.js.html b/doc/1.1.0/guacamole-common-js/InputSink.js.html
new file mode 100644
index 0000000..5d69719
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/InputSink.js.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: InputSink.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: InputSink.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A hidden input field which attempts to keep itself focused at all times,
+ * except when another input field has been intentionally focused, whether
+ * programatically or by the user. The actual underlying input field, returned
+ * by getElement(), may be used as a reliable source of keyboard-related events,
+ * particularly composition and input events which may require a focused input
+ * field to be dispatched at all.
+ *
+ * @constructor
+ */
+Guacamole.InputSink = function InputSink() {
+
+    /**
+     * Reference to this instance of Guacamole.InputSink.
+     *
+     * @private
+     * @type {Guacamole.InputSink}
+     */
+    var sink = this;
+
+    /**
+     * The underlying input field, styled to be invisible.
+     *
+     * @private
+     * @type {Element}
+     */
+    var field = document.createElement('textarea');
+    field.style.position   = 'fixed';
+    field.style.outline    = 'none';
+    field.style.border     = 'none';
+    field.style.margin     = '0';
+    field.style.padding    = '0';
+    field.style.height     = '0';
+    field.style.width      = '0';
+    field.style.left       = '0';
+    field.style.bottom     = '0';
+    field.style.resize     = 'none';
+    field.style.background = 'transparent';
+    field.style.color      = 'transparent';
+
+    // Keep field clear when modified via normal keypresses
+    field.addEventListener("keypress", function clearKeypress(e) {
+        field.value = '';
+    }, false);
+
+    // Keep field clear when modofied via composition events
+    field.addEventListener("compositionend", function clearCompletedComposition(e) {
+        if (e.data)
+            field.value = '';
+    }, false);
+
+    // Keep field clear when modofied via input events
+    field.addEventListener("input", function clearCompletedInput(e) {
+        if (e.data &amp;&amp; !e.isComposing)
+            field.value = '';
+    }, false);
+
+    // Whenever focus is gained, automatically click to ensure cursor is
+    // actually placed within the field (the field may simply be highlighted or
+    // outlined otherwise)
+    field.addEventListener("focus", function focusReceived() {
+        window.setTimeout(function deferRefocus() {
+            field.click();
+            field.select();
+        }, 0);
+    }, true);
+
+    /**
+     * Attempts to focus the underlying input field. The focus attempt occurs
+     * asynchronously, and may silently fail depending on browser restrictions.
+     */
+    this.focus = function focus() {
+        window.setTimeout(function deferRefocus() {
+            field.focus(); // Focus must be deferred to work reliably across browsers
+        }, 0);
+    };
+
+    /**
+     * Returns the underlying input field. This input field MUST be manually
+     * added to the DOM for the Guacamole.InputSink to have any effect.
+     *
+     * @returns {Element}
+     */
+    this.getElement = function getElement() {
+        return field;
+    };
+
+    // Automatically refocus input sink if part of DOM
+    document.addEventListener("keydown", function refocusSink(e) {
+
+        // Do not refocus if focus is on an input field
+        var focused = document.activeElement;
+        if (focused &amp;&amp; focused !== document.body) {
+
+            // Only consider focused input fields which are actually visible
+            var rect = focused.getBoundingClientRect();
+            if (rect.left + rect.width > 0 &amp;&amp; rect.top + rect.height > 0)
+                return;
+
+        }
+
+        // Refocus input sink instead of handling click
+        sink.focus();
+
+    }, true);
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/InputStream.js.html b/doc/1.1.0/guacamole-common-js/InputStream.js.html
new file mode 100644
index 0000000..5655b37
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/InputStream.js.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: InputStream.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: InputStream.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * An input stream abstraction used by the Guacamole client to facilitate
+ * transfer of files or other binary data.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client The client owning this stream.
+ * @param {Number} index The index of this stream.
+ */
+Guacamole.InputStream = function(client, index) {
+
+    /**
+     * Reference to this stream.
+     * @private
+     */
+    var guac_stream = this;
+
+    /**
+     * The index of this stream.
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Called when a blob of data is received.
+     * 
+     * @event
+     * @param {String} data The received base64 data.
+     */
+    this.onblob = null;
+
+    /**
+     * Called when this stream is closed.
+     * 
+     * @event
+     */
+    this.onend = null;
+
+    /**
+     * Acknowledges the receipt of a blob.
+     * 
+     * @param {String} message A human-readable message describing the error
+     *                         or status.
+     * @param {Number} code The error code, if any, or 0 for success.
+     */
+    this.sendAck = function(message, code) {
+        client.sendAck(guac_stream.index, message, code);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/IntegerPool.js.html b/doc/1.1.0/guacamole-common-js/IntegerPool.js.html
new file mode 100644
index 0000000..048e4e3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/IntegerPool.js.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: IntegerPool.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: IntegerPool.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Integer pool which returns consistently increasing integers while integers
+ * are in use, and previously-used integers when possible.
+ * @constructor 
+ */
+Guacamole.IntegerPool = function() {
+
+    /**
+     * Reference to this integer pool.
+     *
+     * @private
+     */
+    var guac_pool = this;
+
+    /**
+     * Array of available integers.
+     *
+     * @private
+     * @type {Number[]}
+     */
+    var pool = [];
+
+    /**
+     * The next integer to return if no more integers remain.
+     * @type {Number}
+     */
+    this.next_int = 0;
+
+    /**
+     * Returns the next available integer in the pool. If possible, a previously
+     * used integer will be returned.
+     * 
+     * @return {Number} The next available integer.
+     */
+    this.next = function() {
+
+        // If free'd integers exist, return one of those
+        if (pool.length > 0)
+            return pool.shift();
+
+        // Otherwise, return a new integer
+        return guac_pool.next_int++;
+
+    };
+
+    /**
+     * Frees the given integer, allowing it to be reused.
+     * 
+     * @param {Number} integer The integer to free.
+     */
+    this.free = function(integer) {
+        pool.push(integer);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/JSONReader.js.html b/doc/1.1.0/guacamole-common-js/JSONReader.js.html
new file mode 100644
index 0000000..16bb40c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/JSONReader.js.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: JSONReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: JSONReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, assembling all
+ * received blobs into a JavaScript object by appending them to each other, in
+ * order, and decoding the result as JSON. Note that this object will overwrite
+ * any installed event handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream
+ *     The stream that JSON will be read from.
+ */
+Guacamole.JSONReader = function guacamoleJSONReader(stream) {
+
+    /**
+     * Reference to this Guacamole.JSONReader.
+     *
+     * @private
+     * @type {Guacamole.JSONReader}
+     */
+    var guacReader = this;
+
+    /**
+     * Wrapped Guacamole.StringReader.
+     *
+     * @private
+     * @type {Guacamole.StringReader}
+     */
+    var stringReader = new Guacamole.StringReader(stream);
+
+    /**
+     * All JSON read thus far.
+     *
+     * @private
+     * @type {String}
+     */
+    var json = '';
+
+    /**
+     * Returns the current length of this Guacamole.JSONReader, in characters.
+     *
+     * @return {Number}
+     *     The current length of this Guacamole.JSONReader.
+     */
+    this.getLength = function getLength() {
+        return json.length;
+    };
+
+    /**
+     * Returns the contents of this Guacamole.JSONReader as a JavaScript
+     * object.
+     *
+     * @return {Object}
+     *     The contents of this Guacamole.JSONReader, as parsed from the JSON
+     *     contents of the input stream.
+     */
+    this.getJSON = function getJSON() {
+        return JSON.parse(json);
+    };
+
+    // Append all received text
+    stringReader.ontext = function ontext(text) {
+
+        // Append received text
+        json += text;
+
+        // Call handler, if present
+        if (guacReader.onprogress)
+            guacReader.onprogress(text.length);
+
+    };
+
+    // Simply call onend when end received
+    stringReader.onend = function onend() {
+        if (guacReader.onend)
+            guacReader.onend();
+    };
+
+    /**
+     * Fired once for every blob of data received.
+     * 
+     * @event
+     * @param {Number} length
+     *     The number of characters received.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     *
+     * @event
+     */
+    this.onend = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Keyboard.js.html b/doc/1.1.0/guacamole-common-js/Keyboard.js.html
new file mode 100644
index 0000000..31dc1b0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Keyboard.js.html
@@ -0,0 +1,1574 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Keyboard.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Keyboard.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Provides cross-browser and cross-keyboard keyboard for a specific element.
+ * Browser and keyboard layout variation is abstracted away, providing events
+ * which represent keys as their corresponding X11 keysym.
+ * 
+ * @constructor
+ * @param {Element|Document} [element]
+ *    The Element to use to provide keyboard events. If omitted, at least one
+ *    Element must be manually provided through the listenTo() function for
+ *    the Guacamole.Keyboard instance to have any effect.
+ */
+Guacamole.Keyboard = function Keyboard(element) {
+
+    /**
+     * Reference to this Guacamole.Keyboard.
+     * @private
+     */
+    var guac_keyboard = this;
+
+    /**
+     * An integer value which uniquely identifies this Guacamole.Keyboard
+     * instance with respect to other Guacamole.Keyboard instances.
+     *
+     * @private
+     * @type {Number}
+     */
+    var guacKeyboardID = Guacamole.Keyboard._nextID++;
+
+    /**
+     * The name of the property which is added to event objects via markEvent()
+     * to note that they have already been handled by this Guacamole.Keyboard.
+     *
+     * @private
+     * @constant
+     * @type {String}
+     */
+    var EVENT_MARKER = '_GUAC_KEYBOARD_HANDLED_BY_' + guacKeyboardID;
+
+    /**
+     * Fired whenever the user presses a key with the element associated
+     * with this Guacamole.Keyboard in focus.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being pressed.
+     * @return {Boolean} true if the key event should be allowed through to the
+     *                   browser, false otherwise.
+     */
+    this.onkeydown = null;
+
+    /**
+     * Fired whenever the user releases a key with the element associated
+     * with this Guacamole.Keyboard in focus.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being released.
+     */
+    this.onkeyup = null;
+
+    /**
+     * Set of known platform-specific or browser-specific quirks which must be
+     * accounted for to properly interpret key events, even if the only way to
+     * reliably detect that quirk is to platform/browser-sniff.
+     *
+     * @private
+     * @type {Object.&lt;String, Boolean>}
+     */
+    var quirks = {
+
+        /**
+         * Whether keyup events are universally unreliable.
+         *
+         * @type {Boolean}
+         */
+        keyupUnreliable: false,
+
+        /**
+         * Whether the Alt key is actually a modifier for typable keys and is
+         * thus never used for keyboard shortcuts.
+         *
+         * @type {Boolean}
+         */
+        altIsTypableOnly: false,
+
+        /**
+         * Whether we can rely on receiving a keyup event for the Caps Lock
+         * key.
+         *
+         * @type {Boolean}
+         */
+        capsLockKeyupUnreliable: false
+
+    };
+
+    // Set quirk flags depending on platform/browser, if such information is
+    // available
+    if (navigator &amp;&amp; navigator.platform) {
+
+        // All keyup events are unreliable on iOS (sadly)
+        if (navigator.platform.match(/ipad|iphone|ipod/i))
+            quirks.keyupUnreliable = true;
+
+        // The Alt key on Mac is never used for keyboard shortcuts, and the
+        // Caps Lock key never dispatches keyup events
+        else if (navigator.platform.match(/^mac/i)) {
+            quirks.altIsTypableOnly = true;
+            quirks.capsLockKeyupUnreliable = true;
+        }
+
+    }
+
+    /**
+     * A key event having a corresponding timestamp. This event is non-specific.
+     * Its subclasses should be used instead when recording specific key
+     * events.
+     *
+     * @private
+     * @constructor
+     */
+    var KeyEvent = function() {
+
+        /**
+         * Reference to this key event.
+         */
+        var key_event = this;
+
+        /**
+         * An arbitrary timestamp in milliseconds, indicating this event's
+         * position in time relative to other events.
+         *
+         * @type {Number}
+         */
+        this.timestamp = new Date().getTime();
+
+        /**
+         * Whether the default action of this key event should be prevented.
+         *
+         * @type {Boolean}
+         */
+        this.defaultPrevented = false;
+
+        /**
+         * The keysym of the key associated with this key event, as determined
+         * by a best-effort guess using available event properties and keyboard
+         * state.
+         *
+         * @type {Number}
+         */
+        this.keysym = null;
+
+        /**
+         * Whether the keysym value of this key event is known to be reliable.
+         * If false, the keysym may still be valid, but it's only a best guess,
+         * and future key events may be a better source of information.
+         *
+         * @type {Boolean}
+         */
+        this.reliable = false;
+
+        /**
+         * Returns the number of milliseconds elapsed since this event was
+         * received.
+         *
+         * @return {Number} The number of milliseconds elapsed since this
+         *                  event was received.
+         */
+        this.getAge = function() {
+            return new Date().getTime() - key_event.timestamp;
+        };
+
+    };
+
+    /**
+     * Information related to the pressing of a key, which need not be a key
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} keyCode The JavaScript key code of the key pressed.
+     * @param {String} keyIdentifier The legacy DOM3 "keyIdentifier" of the key
+     *                               pressed, as defined at:
+     *                               http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+     * @param {String} key The standard name of the key pressed, as defined at:
+     *                     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     * @param {Number} location The location on the keyboard corresponding to
+     *                          the key pressed, as defined at:
+     *                          http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var KeydownEvent = function(keyCode, keyIdentifier, key, location) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The JavaScript key code of the key pressed.
+         *
+         * @type {Number}
+         */
+        this.keyCode = keyCode;
+
+        /**
+         * The legacy DOM3 "keyIdentifier" of the key pressed, as defined at:
+         * http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+         *
+         * @type {String}
+         */
+        this.keyIdentifier = keyIdentifier;
+
+        /**
+         * The standard name of the key pressed, as defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {String}
+         */
+        this.key = key;
+
+        /**
+         * The location on the keyboard corresponding to the key pressed, as
+         * defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {Number}
+         */
+        this.location = location;
+
+        // If key is known from keyCode or DOM3 alone, use that
+        this.keysym =  keysym_from_key_identifier(key, location)
+                    || keysym_from_keycode(keyCode, location);
+
+        /**
+         * Whether the keyup following this keydown event is known to be
+         * reliable. If false, we cannot rely on the keyup event to occur.
+         *
+         * @type {Boolean}
+         */
+        this.keyupReliable = !quirks.keyupUnreliable;
+
+        // DOM3 and keyCode are reliable sources if the corresponding key is
+        // not a printable key
+        if (this.keysym &amp;&amp; !isPrintable(this.keysym))
+            this.reliable = true;
+
+        // Use legacy keyIdentifier as a last resort, if it looks sane
+        if (!this.keysym &amp;&amp; key_identifier_sane(keyCode, keyIdentifier))
+            this.keysym = keysym_from_key_identifier(keyIdentifier, location, guac_keyboard.modifiers.shift);
+
+        // If a key is pressed while meta is held down, the keyup will
+        // never be sent in Chrome (bug #108404)
+        if (guac_keyboard.modifiers.meta &amp;&amp; this.keysym !== 0xFFE7 &amp;&amp; this.keysym !== 0xFFE8)
+            this.keyupReliable = false;
+
+        // We cannot rely on receiving keyup for Caps Lock on certain platforms
+        else if (this.keysym === 0xFFE5 &amp;&amp; quirks.capsLockKeyupUnreliable)
+            this.keyupReliable = false;
+
+        // Determine whether default action for Alt+combinations must be prevented
+        var prevent_alt = !guac_keyboard.modifiers.ctrl &amp;&amp; !quirks.altIsTypableOnly;
+
+        // Determine whether default action for Ctrl+combinations must be prevented
+        var prevent_ctrl = !guac_keyboard.modifiers.alt;
+
+        // We must rely on the (potentially buggy) keyIdentifier if preventing
+        // the default action is important
+        if ((prevent_ctrl &amp;&amp; guac_keyboard.modifiers.ctrl)
+         || (prevent_alt  &amp;&amp; guac_keyboard.modifiers.alt)
+         || guac_keyboard.modifiers.meta
+         || guac_keyboard.modifiers.hyper)
+            this.reliable = true;
+
+        // Record most recently known keysym by associated key code
+        recentKeysym[keyCode] = this.keysym;
+
+    };
+
+    KeydownEvent.prototype = new KeyEvent();
+
+    /**
+     * Information related to the pressing of a key, which MUST be
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} charCode The Unicode codepoint of the character that
+     *                          would be typed by the key pressed.
+     */
+    var KeypressEvent = function(charCode) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The Unicode codepoint of the character that would be typed by the
+         * key pressed.
+         *
+         * @type {Number}
+         */
+        this.charCode = charCode;
+
+        // Pull keysym from char code
+        this.keysym = keysym_from_charcode(charCode);
+
+        // Keypress is always reliable
+        this.reliable = true;
+
+    };
+
+    KeypressEvent.prototype = new KeyEvent();
+
+    /**
+     * Information related to the pressing of a key, which need not be a key
+     * associated with a printable character. The presence or absence of any
+     * information within this object is browser-dependent.
+     *
+     * @private
+     * @constructor
+     * @augments Guacamole.Keyboard.KeyEvent
+     * @param {Number} keyCode The JavaScript key code of the key released.
+     * @param {String} keyIdentifier The legacy DOM3 "keyIdentifier" of the key
+     *                               released, as defined at:
+     *                               http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+     * @param {String} key The standard name of the key released, as defined at:
+     *                     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     * @param {Number} location The location on the keyboard corresponding to
+     *                          the key released, as defined at:
+     *                          http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var KeyupEvent = function(keyCode, keyIdentifier, key, location) {
+
+        // We extend KeyEvent
+        KeyEvent.apply(this);
+
+        /**
+         * The JavaScript key code of the key released.
+         *
+         * @type {Number}
+         */
+        this.keyCode = keyCode;
+
+        /**
+         * The legacy DOM3 "keyIdentifier" of the key released, as defined at:
+         * http://www.w3.org/TR/2009/WD-DOM-Level-3-Events-20090908/#events-Events-KeyboardEvent
+         *
+         * @type {String}
+         */
+        this.keyIdentifier = keyIdentifier;
+
+        /**
+         * The standard name of the key released, as defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {String}
+         */
+        this.key = key;
+
+        /**
+         * The location on the keyboard corresponding to the key released, as
+         * defined at:
+         * http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+         * 
+         * @type {Number}
+         */
+        this.location = location;
+
+        // If key is known from keyCode or DOM3 alone, use that
+        this.keysym =  keysym_from_keycode(keyCode, location)
+                    || keysym_from_key_identifier(key, location); // keyCode is still more reliable for keyup when dead keys are in use
+
+        // Fall back to the most recently pressed keysym associated with the
+        // keyCode if the inferred key doesn't seem to actually be pressed
+        if (!guac_keyboard.pressed[this.keysym])
+            this.keysym = recentKeysym[keyCode] || this.keysym;
+
+        // Keyup is as reliable as it will ever be
+        this.reliable = true;
+
+    };
+
+    KeyupEvent.prototype = new KeyEvent();
+
+    /**
+     * An array of recorded events, which can be instances of the private
+     * KeydownEvent, KeypressEvent, and KeyupEvent classes.
+     *
+     * @private
+     * @type {KeyEvent[]}
+     */
+    var eventLog = [];
+
+    /**
+     * Map of known JavaScript keycodes which do not map to typable characters
+     * to their X11 keysym equivalents.
+     * @private
+     */
+    var keycodeKeysyms = {
+        8:   [0xFF08], // backspace
+        9:   [0xFF09], // tab
+        12:  [0xFF0B, 0xFF0B, 0xFF0B, 0xFFB5], // clear       / KP 5
+        13:  [0xFF0D], // enter
+        16:  [0xFFE1, 0xFFE1, 0xFFE2], // shift
+        17:  [0xFFE3, 0xFFE3, 0xFFE4], // ctrl
+        18:  [0xFFE9, 0xFFE9, 0xFE03], // alt
+        19:  [0xFF13], // pause/break
+        20:  [0xFFE5], // caps lock
+        27:  [0xFF1B], // escape
+        32:  [0x0020], // space
+        33:  [0xFF55, 0xFF55, 0xFF55, 0xFFB9], // page up     / KP 9
+        34:  [0xFF56, 0xFF56, 0xFF56, 0xFFB3], // page down   / KP 3
+        35:  [0xFF57, 0xFF57, 0xFF57, 0xFFB1], // end         / KP 1
+        36:  [0xFF50, 0xFF50, 0xFF50, 0xFFB7], // home        / KP 7
+        37:  [0xFF51, 0xFF51, 0xFF51, 0xFFB4], // left arrow  / KP 4
+        38:  [0xFF52, 0xFF52, 0xFF52, 0xFFB8], // up arrow    / KP 8
+        39:  [0xFF53, 0xFF53, 0xFF53, 0xFFB6], // right arrow / KP 6
+        40:  [0xFF54, 0xFF54, 0xFF54, 0xFFB2], // down arrow  / KP 2
+        45:  [0xFF63, 0xFF63, 0xFF63, 0xFFB0], // insert      / KP 0
+        46:  [0xFFFF, 0xFFFF, 0xFFFF, 0xFFAE], // delete      / KP decimal
+        91:  [0xFFEB], // left window key (hyper_l)
+        92:  [0xFF67], // right window key (menu key?)
+        93:  null,     // select key
+        96:  [0xFFB0], // KP 0
+        97:  [0xFFB1], // KP 1
+        98:  [0xFFB2], // KP 2
+        99:  [0xFFB3], // KP 3
+        100: [0xFFB4], // KP 4
+        101: [0xFFB5], // KP 5
+        102: [0xFFB6], // KP 6
+        103: [0xFFB7], // KP 7
+        104: [0xFFB8], // KP 8
+        105: [0xFFB9], // KP 9
+        106: [0xFFAA], // KP multiply
+        107: [0xFFAB], // KP add
+        109: [0xFFAD], // KP subtract
+        110: [0xFFAE], // KP decimal
+        111: [0xFFAF], // KP divide
+        112: [0xFFBE], // f1
+        113: [0xFFBF], // f2
+        114: [0xFFC0], // f3
+        115: [0xFFC1], // f4
+        116: [0xFFC2], // f5
+        117: [0xFFC3], // f6
+        118: [0xFFC4], // f7
+        119: [0xFFC5], // f8
+        120: [0xFFC6], // f9
+        121: [0xFFC7], // f10
+        122: [0xFFC8], // f11
+        123: [0xFFC9], // f12
+        144: [0xFF7F], // num lock
+        145: [0xFF14], // scroll lock
+        225: [0xFE03]  // altgraph (iso_level3_shift)
+    };
+
+    /**
+     * Map of known JavaScript keyidentifiers which do not map to typable
+     * characters to their unshifted X11 keysym equivalents.
+     * @private
+     */
+    var keyidentifier_keysym = {
+        "Again": [0xFF66],
+        "AllCandidates": [0xFF3D],
+        "Alphanumeric": [0xFF30],
+        "Alt": [0xFFE9, 0xFFE9, 0xFE03],
+        "Attn": [0xFD0E],
+        "AltGraph": [0xFE03],
+        "ArrowDown": [0xFF54],
+        "ArrowLeft": [0xFF51],
+        "ArrowRight": [0xFF53],
+        "ArrowUp": [0xFF52],
+        "Backspace": [0xFF08],
+        "CapsLock": [0xFFE5],
+        "Cancel": [0xFF69],
+        "Clear": [0xFF0B],
+        "Convert": [0xFF21],
+        "Copy": [0xFD15],
+        "Crsel": [0xFD1C],
+        "CrSel": [0xFD1C],
+        "CodeInput": [0xFF37],
+        "Compose": [0xFF20],
+        "Control": [0xFFE3, 0xFFE3, 0xFFE4],
+        "ContextMenu": [0xFF67],
+        "Delete": [0xFFFF],
+        "Down": [0xFF54],
+        "End": [0xFF57],
+        "Enter": [0xFF0D],
+        "EraseEof": [0xFD06],
+        "Escape": [0xFF1B],
+        "Execute": [0xFF62],
+        "Exsel": [0xFD1D],
+        "ExSel": [0xFD1D],
+        "F1": [0xFFBE],
+        "F2": [0xFFBF],
+        "F3": [0xFFC0],
+        "F4": [0xFFC1],
+        "F5": [0xFFC2],
+        "F6": [0xFFC3],
+        "F7": [0xFFC4],
+        "F8": [0xFFC5],
+        "F9": [0xFFC6],
+        "F10": [0xFFC7],
+        "F11": [0xFFC8],
+        "F12": [0xFFC9],
+        "F13": [0xFFCA],
+        "F14": [0xFFCB],
+        "F15": [0xFFCC],
+        "F16": [0xFFCD],
+        "F17": [0xFFCE],
+        "F18": [0xFFCF],
+        "F19": [0xFFD0],
+        "F20": [0xFFD1],
+        "F21": [0xFFD2],
+        "F22": [0xFFD3],
+        "F23": [0xFFD4],
+        "F24": [0xFFD5],
+        "Find": [0xFF68],
+        "GroupFirst": [0xFE0C],
+        "GroupLast": [0xFE0E],
+        "GroupNext": [0xFE08],
+        "GroupPrevious": [0xFE0A],
+        "FullWidth": null,
+        "HalfWidth": null,
+        "HangulMode": [0xFF31],
+        "Hankaku": [0xFF29],
+        "HanjaMode": [0xFF34],
+        "Help": [0xFF6A],
+        "Hiragana": [0xFF25],
+        "HiraganaKatakana": [0xFF27],
+        "Home": [0xFF50],
+        "Hyper": [0xFFED, 0xFFED, 0xFFEE],
+        "Insert": [0xFF63],
+        "JapaneseHiragana": [0xFF25],
+        "JapaneseKatakana": [0xFF26],
+        "JapaneseRomaji": [0xFF24],
+        "JunjaMode": [0xFF38],
+        "KanaMode": [0xFF2D],
+        "KanjiMode": [0xFF21],
+        "Katakana": [0xFF26],
+        "Left": [0xFF51],
+        "Meta": [0xFFE7, 0xFFE7, 0xFFE8],
+        "ModeChange": [0xFF7E],
+        "NumLock": [0xFF7F],
+        "PageDown": [0xFF56],
+        "PageUp": [0xFF55],
+        "Pause": [0xFF13],
+        "Play": [0xFD16],
+        "PreviousCandidate": [0xFF3E],
+        "PrintScreen": [0xFF61],
+        "Redo": [0xFF66],
+        "Right": [0xFF53],
+        "RomanCharacters": null,
+        "Scroll": [0xFF14],
+        "Select": [0xFF60],
+        "Separator": [0xFFAC],
+        "Shift": [0xFFE1, 0xFFE1, 0xFFE2],
+        "SingleCandidate": [0xFF3C],
+        "Super": [0xFFEB, 0xFFEB, 0xFFEC],
+        "Tab": [0xFF09],
+        "UIKeyInputDownArrow": [0xFF54],
+        "UIKeyInputEscape": [0xFF1B],
+        "UIKeyInputLeftArrow": [0xFF51],
+        "UIKeyInputRightArrow": [0xFF53],
+        "UIKeyInputUpArrow": [0xFF52],
+        "Up": [0xFF52],
+        "Undo": [0xFF65],
+        "Win": [0xFFEB],
+        "Zenkaku": [0xFF28],
+        "ZenkakuHankaku": [0xFF2A]
+    };
+
+    /**
+     * All keysyms which should not repeat when held down.
+     * @private
+     */
+    var no_repeat = {
+        0xFE03: true, // ISO Level 3 Shift (AltGr)
+        0xFFE1: true, // Left shift
+        0xFFE2: true, // Right shift
+        0xFFE3: true, // Left ctrl 
+        0xFFE4: true, // Right ctrl 
+        0xFFE5: true, // Caps Lock
+        0xFFE7: true, // Left meta 
+        0xFFE8: true, // Right meta 
+        0xFFE9: true, // Left alt
+        0xFFEA: true, // Right alt
+        0xFFEB: true, // Left hyper
+        0xFFEC: true  // Right hyper
+    };
+
+    /**
+     * All modifiers and their states.
+     */
+    this.modifiers = new Guacamole.Keyboard.ModifierState();
+        
+    /**
+     * The state of every key, indexed by keysym. If a particular key is
+     * pressed, the value of pressed for that keysym will be true. If a key
+     * is not currently pressed, it will not be defined. 
+     */
+    this.pressed = {};
+
+    /**
+     * The state of every key, indexed by keysym, for strictly those keys whose
+     * status has been indirectly determined thorugh observation of other key
+     * events. If a particular key is implicitly pressed, the value of
+     * implicitlyPressed for that keysym will be true. If a key
+     * is not currently implicitly pressed (the key is not pressed OR the state
+     * of the key is explicitly known), it will not be defined.
+     *
+     * @private
+     * @tyle {Object.&lt;Number, Boolean>}
+     */
+    var implicitlyPressed = {};
+
+    /**
+     * The last result of calling the onkeydown handler for each key, indexed
+     * by keysym. This is used to prevent/allow default actions for key events,
+     * even when the onkeydown handler cannot be called again because the key
+     * is (theoretically) still pressed.
+     *
+     * @private
+     */
+    var last_keydown_result = {};
+
+    /**
+     * The keysym most recently associated with a given keycode when keydown
+     * fired. This object maps keycodes to keysyms.
+     *
+     * @private
+     * @type {Object.&lt;Number, Number>}
+     */
+    var recentKeysym = {};
+
+    /**
+     * Timeout before key repeat starts.
+     * @private
+     */
+    var key_repeat_timeout = null;
+
+    /**
+     * Interval which presses and releases the last key pressed while that
+     * key is still being held down.
+     * @private
+     */
+    var key_repeat_interval = null;
+
+    /**
+     * Given an array of keysyms indexed by location, returns the keysym
+     * for the given location, or the keysym for the standard location if
+     * undefined.
+     * 
+     * @private
+     * @param {Number[]} keysyms
+     *     An array of keysyms, where the index of the keysym in the array is
+     *     the location value.
+     *
+     * @param {Number} location
+     *     The location on the keyboard corresponding to the key pressed, as
+     *     defined at: http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var get_keysym = function get_keysym(keysyms, location) {
+
+        if (!keysyms)
+            return null;
+
+        return keysyms[location] || keysyms[0];
+    };
+
+    /**
+     * Returns true if the given keysym corresponds to a printable character,
+     * false otherwise.
+     *
+     * @param {Number} keysym
+     *     The keysym to check.
+     *
+     * @returns {Boolean}
+     *     true if the given keysym corresponds to a printable character,
+     *     false otherwise.
+     */
+    var isPrintable = function isPrintable(keysym) {
+
+        // Keysyms with Unicode equivalents are printable
+        return (keysym >= 0x00 &amp;&amp; keysym &lt;= 0xFF)
+            || (keysym &amp; 0xFFFF0000) === 0x01000000;
+
+    };
+
+    function keysym_from_key_identifier(identifier, location, shifted) {
+
+        if (!identifier)
+            return null;
+
+        var typedCharacter;
+
+        // If identifier is U+xxxx, decode Unicode character 
+        var unicodePrefixLocation = identifier.indexOf("U+");
+        if (unicodePrefixLocation >= 0) {
+            var hex = identifier.substring(unicodePrefixLocation+2);
+            typedCharacter = String.fromCharCode(parseInt(hex, 16));
+        }
+
+        // If single character and not keypad, use that as typed character
+        else if (identifier.length === 1 &amp;&amp; location !== 3)
+            typedCharacter = identifier;
+
+        // Otherwise, look up corresponding keysym
+        else
+            return get_keysym(keyidentifier_keysym[identifier], location);
+
+        // Alter case if necessary
+        if (shifted === true)
+            typedCharacter = typedCharacter.toUpperCase();
+        else if (shifted === false)
+            typedCharacter = typedCharacter.toLowerCase();
+
+        // Get codepoint
+        var codepoint = typedCharacter.charCodeAt(0);
+        return keysym_from_charcode(codepoint);
+
+    }
+
+    function isControlCharacter(codepoint) {
+        return codepoint &lt;= 0x1F || (codepoint >= 0x7F &amp;&amp; codepoint &lt;= 0x9F);
+    }
+
+    function keysym_from_charcode(codepoint) {
+
+        // Keysyms for control characters
+        if (isControlCharacter(codepoint)) return 0xFF00 | codepoint;
+
+        // Keysyms for ASCII chars
+        if (codepoint >= 0x0000 &amp;&amp; codepoint &lt;= 0x00FF)
+            return codepoint;
+
+        // Keysyms for Unicode
+        if (codepoint >= 0x0100 &amp;&amp; codepoint &lt;= 0x10FFFF)
+            return 0x01000000 | codepoint;
+
+        return null;
+
+    }
+
+    function keysym_from_keycode(keyCode, location) {
+        return get_keysym(keycodeKeysyms[keyCode], location);
+    }
+
+    /**
+     * Heuristically detects if the legacy keyIdentifier property of
+     * a keydown/keyup event looks incorrectly derived. Chrome, and
+     * presumably others, will produce the keyIdentifier by assuming
+     * the keyCode is the Unicode codepoint for that key. This is not
+     * correct in all cases.
+     *
+     * @private
+     * @param {Number} keyCode
+     *     The keyCode from a browser keydown/keyup event.
+     *
+     * @param {String} keyIdentifier
+     *     The legacy keyIdentifier from a browser keydown/keyup event.
+     *
+     * @returns {Boolean}
+     *     true if the keyIdentifier looks sane, false if the keyIdentifier
+     *     appears incorrectly derived or is missing entirely.
+     */
+    var key_identifier_sane = function key_identifier_sane(keyCode, keyIdentifier) {
+
+        // Missing identifier is not sane
+        if (!keyIdentifier)
+            return false;
+
+        // Assume non-Unicode keyIdentifier values are sane
+        var unicodePrefixLocation = keyIdentifier.indexOf("U+");
+        if (unicodePrefixLocation === -1)
+            return true;
+
+        // If the Unicode codepoint isn't identical to the keyCode,
+        // then the identifier is likely correct
+        var codepoint = parseInt(keyIdentifier.substring(unicodePrefixLocation+2), 16);
+        if (keyCode !== codepoint)
+            return true;
+
+        // The keyCodes for A-Z and 0-9 are actually identical to their
+        // Unicode codepoints
+        if ((keyCode >= 65 &amp;&amp; keyCode &lt;= 90) || (keyCode >= 48 &amp;&amp; keyCode &lt;= 57))
+            return true;
+
+        // The keyIdentifier does NOT appear sane
+        return false;
+
+    };
+
+    /**
+     * Marks a key as pressed, firing the keydown event if registered. Key
+     * repeat for the pressed key will start after a delay if that key is
+     * not a modifier. The return value of this function depends on the
+     * return value of the keydown event handler, if any.
+     * 
+     * @param {Number} keysym The keysym of the key to press.
+     * @return {Boolean} true if event should NOT be canceled, false otherwise.
+     */
+    this.press = function(keysym) {
+
+        // Don't bother with pressing the key if the key is unknown
+        if (keysym === null) return;
+
+        // Only press if released
+        if (!guac_keyboard.pressed[keysym]) {
+
+            // Mark key as pressed
+            guac_keyboard.pressed[keysym] = true;
+
+            // Send key event
+            if (guac_keyboard.onkeydown) {
+                var result = guac_keyboard.onkeydown(keysym);
+                last_keydown_result[keysym] = result;
+
+                // Stop any current repeat
+                window.clearTimeout(key_repeat_timeout);
+                window.clearInterval(key_repeat_interval);
+
+                // Repeat after a delay as long as pressed
+                if (!no_repeat[keysym])
+                    key_repeat_timeout = window.setTimeout(function() {
+                        key_repeat_interval = window.setInterval(function() {
+                            guac_keyboard.onkeyup(keysym);
+                            guac_keyboard.onkeydown(keysym);
+                        }, 50);
+                    }, 500);
+
+                return result;
+            }
+        }
+
+        // Return the last keydown result by default, resort to false if unknown
+        return last_keydown_result[keysym] || false;
+
+    };
+
+    /**
+     * Marks a key as released, firing the keyup event if registered.
+     * 
+     * @param {Number} keysym The keysym of the key to release.
+     */
+    this.release = function(keysym) {
+
+        // Only release if pressed
+        if (guac_keyboard.pressed[keysym]) {
+            
+            // Mark key as released
+            delete guac_keyboard.pressed[keysym];
+            delete implicitlyPressed[keysym];
+
+            // Stop repeat
+            window.clearTimeout(key_repeat_timeout);
+            window.clearInterval(key_repeat_interval);
+
+            // Send key event
+            if (keysym !== null &amp;&amp; guac_keyboard.onkeyup)
+                guac_keyboard.onkeyup(keysym);
+
+        }
+
+    };
+
+    /**
+     * Presses and releases the keys necessary to type the given string of
+     * text.
+     *
+     * @param {String} str
+     *     The string to type.
+     */
+    this.type = function type(str) {
+
+        // Press/release the key corresponding to each character in the string
+        for (var i = 0; i &lt; str.length; i++) {
+
+            // Determine keysym of current character
+            var codepoint = str.codePointAt ? str.codePointAt(i) : str.charCodeAt(i);
+            var keysym = keysym_from_charcode(codepoint);
+
+            // Press and release key for current character
+            guac_keyboard.press(keysym);
+            guac_keyboard.release(keysym);
+
+        }
+
+    };
+
+    /**
+     * Resets the state of this keyboard, releasing all keys, and firing keyup
+     * events for each released key.
+     */
+    this.reset = function() {
+
+        // Release all pressed keys
+        for (var keysym in guac_keyboard.pressed)
+            guac_keyboard.release(parseInt(keysym));
+
+        // Clear event log
+        eventLog = [];
+
+    };
+
+    /**
+     * Given the remote and local state of a particular key, resynchronizes the
+     * remote state of that key with the local state through pressing or
+     * releasing keysyms.
+     *
+     * @private
+     * @param {Boolean} remoteState
+     *     Whether the key is currently pressed remotely.
+     *
+     * @param {Boolean} localState
+     *     Whether the key is currently pressed remotely locally. If the state
+     *     of the key is not known, this may be undefined.
+     *
+     * @param {Number[]} keysyms
+     *     The keysyms which represent the key being updated.
+     *
+     * @param {KeyEvent} keyEvent
+     *     Guacamole's current best interpretation of the key event being
+     *     processed.
+     */
+    var updateModifierState = function updateModifierState(remoteState,
+        localState, keysyms, keyEvent) {
+
+        var i;
+
+        // Do not trust changes in modifier state for events directly involving
+        // that modifier: (1) the flag may erroneously be cleared despite
+        // another version of the same key still being held and (2) the change
+        // in flag may be due to the current event being processed, thus
+        // updating things here is at best redundant and at worst incorrect
+        if (keysyms.indexOf(keyEvent.keysym) !== -1)
+            return;
+
+        // Release all related keys if modifier is implicitly released
+        if (remoteState &amp;&amp; localState === false) {
+            for (i = 0; i &lt; keysyms.length; i++) {
+                guac_keyboard.release(keysyms[i]);
+            }
+        }
+
+        // Press if modifier is implicitly pressed
+        else if (!remoteState &amp;&amp; localState) {
+
+            // Verify that modifier flag isn't already pressed or already set
+            // due to another version of the same key being held down
+            for (i = 0; i &lt; keysyms.length; i++) {
+                if (guac_keyboard.pressed[keysyms[i]])
+                    return;
+            }
+
+            // Mark as implicitly pressed only if there is other information
+            // within the key event relating to a different key. Some
+            // platforms, such as iOS, will send essentially empty key events
+            // for modifier keys, using only the modifier flags to signal the
+            // identity of the key.
+            var keysym = keysyms[0];
+            if (keyEvent.keysym)
+                implicitlyPressed[keysym] = true;
+
+            guac_keyboard.press(keysym);
+
+        }
+
+    };
+
+    /**
+     * Given a keyboard event, updates the local modifier state and remote
+     * key state based on the modifier flags within the event. This function
+     * pays no attention to keycodes.
+     *
+     * @private
+     * @param {KeyboardEvent} e
+     *     The keyboard event containing the flags to update.
+     *
+     * @param {KeyEvent} keyEvent
+     *     Guacamole's current best interpretation of the key event being
+     *     processed.
+     */
+    var syncModifierStates = function syncModifierStates(e, keyEvent) {
+
+        // Get state
+        var state = Guacamole.Keyboard.ModifierState.fromKeyboardEvent(e);
+
+        // Resync state of alt
+        updateModifierState(guac_keyboard.modifiers.alt, state.alt, [
+            0xFFE9, // Left alt
+            0xFFEA, // Right alt
+            0xFE03  // AltGr
+        ], keyEvent);
+
+        // Resync state of shift
+        updateModifierState(guac_keyboard.modifiers.shift, state.shift, [
+            0xFFE1, // Left shift
+            0xFFE2  // Right shift
+        ], keyEvent);
+
+        // Resync state of ctrl
+        updateModifierState(guac_keyboard.modifiers.ctrl, state.ctrl, [
+            0xFFE3, // Left ctrl
+            0xFFE4  // Right ctrl
+        ], keyEvent);
+
+        // Resync state of meta
+        updateModifierState(guac_keyboard.modifiers.meta, state.meta, [
+            0xFFE7, // Left meta
+            0xFFE8  // Right meta
+        ], keyEvent);
+
+        // Resync state of hyper
+        updateModifierState(guac_keyboard.modifiers.hyper, state.hyper, [
+            0xFFEB, // Left hyper
+            0xFFEC  // Right hyper
+        ], keyEvent);
+
+        // Update state
+        guac_keyboard.modifiers = state;
+
+    };
+
+    /**
+     * Returns whether all currently pressed keys were implicitly pressed. A
+     * key is implicitly pressed if its status was inferred indirectly from
+     * inspection of other key events.
+     *
+     * @private
+     * @returns {Boolean}
+     *     true if all currently pressed keys were implicitly pressed, false
+     *     otherwise.
+     */
+    var isStateImplicit = function isStateImplicit() {
+
+        for (var keysym in guac_keyboard.pressed) {
+            if (!implicitlyPressed[keysym])
+                return false;
+        }
+
+        return true;
+
+    };
+
+    /**
+     * Reads through the event log, removing events from the head of the log
+     * when the corresponding true key presses are known (or as known as they
+     * can be).
+     * 
+     * @private
+     * @return {Boolean} Whether the default action of the latest event should
+     *                   be prevented.
+     */
+    function interpret_events() {
+
+        // Do not prevent default if no event could be interpreted
+        var handled_event = interpret_event();
+        if (!handled_event)
+            return false;
+
+        // Interpret as much as possible
+        var last_event;
+        do {
+            last_event = handled_event;
+            handled_event = interpret_event();
+        } while (handled_event !== null);
+
+        // Reset keyboard state if we cannot expect to receive any further
+        // keyup events
+        if (isStateImplicit())
+            guac_keyboard.reset();
+
+        return last_event.defaultPrevented;
+
+    }
+
+    /**
+     * Releases Ctrl+Alt, if both are currently pressed and the given keysym
+     * looks like a key that may require AltGr.
+     *
+     * @private
+     * @param {Number} keysym The key that was just pressed.
+     */
+    var release_simulated_altgr = function release_simulated_altgr(keysym) {
+
+        // Both Ctrl+Alt must be pressed if simulated AltGr is in use
+        if (!guac_keyboard.modifiers.ctrl || !guac_keyboard.modifiers.alt)
+            return;
+
+        // Assume [A-Z] never require AltGr
+        if (keysym >= 0x0041 &amp;&amp; keysym &lt;= 0x005A)
+            return;
+
+        // Assume [a-z] never require AltGr
+        if (keysym >= 0x0061 &amp;&amp; keysym &lt;= 0x007A)
+            return;
+
+        // Release Ctrl+Alt if the keysym is printable
+        if (keysym &lt;= 0xFF || (keysym &amp; 0xFF000000) === 0x01000000) {
+            guac_keyboard.release(0xFFE3); // Left ctrl 
+            guac_keyboard.release(0xFFE4); // Right ctrl 
+            guac_keyboard.release(0xFFE9); // Left alt
+            guac_keyboard.release(0xFFEA); // Right alt
+        }
+
+    };
+
+    /**
+     * Reads through the event log, interpreting the first event, if possible,
+     * and returning that event. If no events can be interpreted, due to a
+     * total lack of events or the need for more events, null is returned. Any
+     * interpreted events are automatically removed from the log.
+     * 
+     * @private
+     * @return {KeyEvent}
+     *     The first key event in the log, if it can be interpreted, or null
+     *     otherwise.
+     */
+    var interpret_event = function interpret_event() {
+
+        // Peek at first event in log
+        var first = eventLog[0];
+        if (!first)
+            return null;
+
+        // Keydown event
+        if (first instanceof KeydownEvent) {
+
+            var keysym = null;
+            var accepted_events = [];
+
+            // If event itself is reliable, no need to wait for other events
+            if (first.reliable) {
+                keysym = first.keysym;
+                accepted_events = eventLog.splice(0, 1);
+            }
+
+            // If keydown is immediately followed by a keypress, use the indicated character
+            else if (eventLog[1] instanceof KeypressEvent) {
+                keysym = eventLog[1].keysym;
+                accepted_events = eventLog.splice(0, 2);
+            }
+
+            // If keydown is immediately followed by anything else, then no
+            // keypress can possibly occur to clarify this event, and we must
+            // handle it now
+            else if (eventLog[1]) {
+                keysym = first.keysym;
+                accepted_events = eventLog.splice(0, 1);
+            }
+
+            // Fire a key press if valid events were found
+            if (accepted_events.length > 0) {
+
+                if (keysym) {
+
+                    // Fire event
+                    release_simulated_altgr(keysym);
+                    var defaultPrevented = !guac_keyboard.press(keysym);
+                    recentKeysym[first.keyCode] = keysym;
+
+                    // Release the key now if we cannot rely on the associated
+                    // keyup event
+                    if (!first.keyupReliable)
+                        guac_keyboard.release(keysym);
+
+                    // Record whether default was prevented
+                    for (var i=0; i&lt;accepted_events.length; i++)
+                        accepted_events[i].defaultPrevented = defaultPrevented;
+
+                }
+
+                return first;
+
+            }
+
+        } // end if keydown
+
+        // Keyup event
+        else if (first instanceof KeyupEvent &amp;&amp; !quirks.keyupUnreliable) {
+
+            // Release specific key if known
+            var keysym = first.keysym;
+            if (keysym) {
+                guac_keyboard.release(keysym);
+                delete recentKeysym[first.keyCode];
+                first.defaultPrevented = true;
+            }
+
+            // Otherwise, fall back to releasing all keys
+            else {
+                guac_keyboard.reset();
+                return first;
+            }
+
+            return eventLog.shift();
+
+        } // end if keyup
+
+        // Ignore any other type of event (keypress by itself is invalid, and
+        // unreliable keyup events should simply be dumped)
+        else
+            return eventLog.shift();
+
+        // No event interpreted
+        return null;
+
+    };
+
+    /**
+     * Returns the keyboard location of the key associated with the given
+     * keyboard event. The location differentiates key events which otherwise
+     * have the same keycode, such as left shift vs. right shift.
+     *
+     * @private
+     * @param {KeyboardEvent} e
+     *     A JavaScript keyboard event, as received through the DOM via a
+     *     "keydown", "keyup", or "keypress" handler.
+     *
+     * @returns {Number}
+     *     The location of the key event on the keyboard, as defined at:
+     *     http://www.w3.org/TR/DOM-Level-3-Events/#events-KeyboardEvent
+     */
+    var getEventLocation = function getEventLocation(e) {
+
+        // Use standard location, if possible
+        if ('location' in e)
+            return e.location;
+
+        // Failing that, attempt to use deprecated keyLocation
+        if ('keyLocation' in e)
+            return e.keyLocation;
+
+        // If no location is available, assume left side
+        return 0;
+
+    };
+
+    /**
+     * Attempts to mark the given Event as having been handled by this
+     * Guacamole.Keyboard. If the Event has already been marked as handled,
+     * false is returned.
+     *
+     * @param {Event} e
+     *     The Event to mark.
+     *
+     * @returns {Boolean}
+     *     true if the given Event was successfully marked, false if the given
+     *     Event was already marked.
+     */
+    var markEvent = function markEvent(e) {
+
+        // Fail if event is already marked
+        if (e[EVENT_MARKER])
+            return false;
+
+        // Mark event otherwise
+        e[EVENT_MARKER] = true;
+        return true;
+
+    };
+
+    /**
+     * Attaches event listeners to the given Element, automatically translating
+     * received key, input, and composition events into simple keydown/keyup
+     * events signalled through this Guacamole.Keyboard's onkeydown and
+     * onkeyup handlers.
+     *
+     * @param {Element|Document} element
+     *     The Element to attach event listeners to for the sake of handling
+     *     key or input events.
+     */
+    this.listenTo = function listenTo(element) {
+
+        // When key pressed
+        element.addEventListener("keydown", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            var keyCode;
+            if (window.event) keyCode = window.event.keyCode;
+            else if (e.which) keyCode = e.which;
+
+            // Fix modifier states
+            var keydownEvent = new KeydownEvent(keyCode, e.keyIdentifier, e.key, getEventLocation(e));
+            syncModifierStates(e, keydownEvent);
+
+            // Ignore (but do not prevent) the "composition" keycode sent by some
+            // browsers when an IME is in use (see: http://lists.w3.org/Archives/Public/www-dom/2010JulSep/att-0182/keyCode-spec.html)
+            if (keyCode === 229)
+                return;
+
+            // Log event
+            eventLog.push(keydownEvent);
+
+            // Interpret as many events as possible, prevent default if indicated
+            if (interpret_events())
+                e.preventDefault();
+
+        }, true);
+
+        // When key pressed
+        element.addEventListener("keypress", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            var charCode;
+            if (window.event) charCode = window.event.keyCode;
+            else if (e.which) charCode = e.which;
+
+            // Fix modifier states
+            var keypressEvent = new KeypressEvent(charCode);
+            syncModifierStates(e, keypressEvent);
+
+            // Log event
+            eventLog.push(keypressEvent);
+
+            // Interpret as many events as possible, prevent default if indicated
+            if (interpret_events())
+                e.preventDefault();
+
+        }, true);
+
+        // When key released
+        element.addEventListener("keyup", function(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            e.preventDefault();
+
+            var keyCode;
+            if (window.event) keyCode = window.event.keyCode;
+            else if (e.which) keyCode = e.which;
+
+            // Fix modifier states
+            var keyupEvent = new KeyupEvent(keyCode, e.keyIdentifier, e.key, getEventLocation(e));
+            syncModifierStates(e, keyupEvent);
+
+            // Log event, call for interpretation
+            eventLog.push(keyupEvent);
+            interpret_events();
+
+        }, true);
+
+        /**
+         * Handles the given "input" event, typing the data within the input text.
+         * If the event is complete (text is provided), handling of "compositionend"
+         * events is suspended, as such events may conflict with input events.
+         *
+         * @private
+         * @param {InputEvent} e
+         *     The "input" event to handle.
+         */
+        var handleInput = function handleInput(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            // Type all content written
+            if (e.data &amp;&amp; !e.isComposing) {
+                element.removeEventListener("compositionend", handleComposition, false);
+                guac_keyboard.type(e.data);
+            }
+
+        };
+
+        /**
+         * Handles the given "compositionend" event, typing the data within the
+         * composed text. If the event is complete (composed text is provided),
+         * handling of "input" events is suspended, as such events may conflict
+         * with composition events.
+         *
+         * @private
+         * @param {CompositionEvent} e
+         *     The "compositionend" event to handle.
+         */
+        var handleComposition = function handleComposition(e) {
+
+            // Only intercept if handler set
+            if (!guac_keyboard.onkeydown &amp;&amp; !guac_keyboard.onkeyup) return;
+
+            // Ignore events which have already been handled
+            if (!markEvent(e)) return;
+
+            // Type all content written
+            if (e.data) {
+                element.removeEventListener("input", handleInput, false);
+                guac_keyboard.type(e.data);
+            }
+
+        };
+
+        // Automatically type text entered into the wrapped field
+        element.addEventListener("input", handleInput, false);
+        element.addEventListener("compositionend", handleComposition, false);
+
+    };
+
+    // Listen to given element, if any
+    if (element)
+        guac_keyboard.listenTo(element);
+
+};
+
+/**
+ * The unique numerical identifier to assign to the next Guacamole.Keyboard
+ * instance.
+ *
+ * @private
+ * @type {Number}
+ */
+Guacamole.Keyboard._nextID = 0;
+
+/**
+ * The state of all supported keyboard modifiers.
+ * @constructor
+ */
+Guacamole.Keyboard.ModifierState = function() {
+    
+    /**
+     * Whether shift is currently pressed.
+     * @type {Boolean}
+     */
+    this.shift = false;
+    
+    /**
+     * Whether ctrl is currently pressed.
+     * @type {Boolean}
+     */
+    this.ctrl = false;
+    
+    /**
+     * Whether alt is currently pressed.
+     * @type {Boolean}
+     */
+    this.alt = false;
+    
+    /**
+     * Whether meta (apple key) is currently pressed.
+     * @type {Boolean}
+     */
+    this.meta = false;
+
+    /**
+     * Whether hyper (windows key) is currently pressed.
+     * @type {Boolean}
+     */
+    this.hyper = false;
+    
+};
+
+/**
+ * Returns the modifier state applicable to the keyboard event given.
+ * 
+ * @param {KeyboardEvent} e The keyboard event to read.
+ * @returns {Guacamole.Keyboard.ModifierState} The current state of keyboard
+ *                                             modifiers.
+ */
+Guacamole.Keyboard.ModifierState.fromKeyboardEvent = function(e) {
+    
+    var state = new Guacamole.Keyboard.ModifierState();
+
+    // Assign states from old flags
+    state.shift = e.shiftKey;
+    state.ctrl  = e.ctrlKey;
+    state.alt   = e.altKey;
+    state.meta  = e.metaKey;
+
+    // Use DOM3 getModifierState() for others
+    if (e.getModifierState) {
+        state.hyper = e.getModifierState("OS")
+                   || e.getModifierState("Super")
+                   || e.getModifierState("Hyper")
+                   || e.getModifierState("Win");
+    }
+
+    return state;
+    
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Layer.js.html b/doc/1.1.0/guacamole-common-js/Layer.js.html
new file mode 100644
index 0000000..0fca0e9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Layer.js.html
@@ -0,0 +1,1039 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Layer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Layer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract ordered drawing surface. Each Layer contains a canvas element and
+ * provides simple drawing instructions for drawing to that canvas element,
+ * however unlike the canvas element itself, drawing operations on a Layer are
+ * guaranteed to run in order, even if such an operation must wait for an image
+ * to load before completing.
+ * 
+ * @constructor
+ * 
+ * @param {Number} width The width of the Layer, in pixels. The canvas element
+ *                       backing this Layer will be given this width.
+ *                       
+ * @param {Number} height The height of the Layer, in pixels. The canvas element
+ *                        backing this Layer will be given this height.
+ */
+Guacamole.Layer = function(width, height) {
+
+    /**
+     * Reference to this Layer.
+     * @private
+     */
+    var layer = this;
+
+    /**
+     * The number of pixels the width or height of a layer must change before
+     * the underlying canvas is resized. The underlying canvas will be kept at
+     * dimensions which are integer multiples of this factor.
+     *
+     * @private
+     * @constant
+     * @type Number
+     */
+    var CANVAS_SIZE_FACTOR = 64;
+
+    /**
+     * The canvas element backing this Layer.
+     * @private
+     */
+    var canvas = document.createElement("canvas");
+
+    /**
+     * The 2D display context of the canvas element backing this Layer.
+     * @private
+     */
+    var context = canvas.getContext("2d");
+    context.save();
+
+    /**
+     * Whether the layer has not yet been drawn to. Once any draw operation
+     * which affects the underlying canvas is invoked, this flag will be set to
+     * false.
+     *
+     * @private
+     * @type Boolean
+     */
+    var empty = true;
+
+    /**
+     * Whether a new path should be started with the next path drawing
+     * operations.
+     * @private
+     */
+    var pathClosed = true;
+
+    /**
+     * The number of states on the state stack.
+     * 
+     * Note that there will ALWAYS be one element on the stack, but that
+     * element is not exposed. It is only used to reset the layer to its
+     * initial state.
+     * 
+     * @private
+     */
+    var stackSize = 0;
+
+    /**
+     * Map of all Guacamole channel masks to HTML5 canvas composite operation
+     * names. Not all channel mask combinations are currently implemented.
+     * @private
+     */
+    var compositeOperation = {
+     /* 0x0 NOT IMPLEMENTED */
+        0x1: "destination-in",
+        0x2: "destination-out",
+     /* 0x3 NOT IMPLEMENTED */
+        0x4: "source-in",
+     /* 0x5 NOT IMPLEMENTED */
+        0x6: "source-atop",
+     /* 0x7 NOT IMPLEMENTED */
+        0x8: "source-out",
+        0x9: "destination-atop",
+        0xA: "xor",
+        0xB: "destination-over",
+        0xC: "copy",
+     /* 0xD NOT IMPLEMENTED */
+        0xE: "source-over",
+        0xF: "lighter"
+    };
+
+    /**
+     * Resizes the canvas element backing this Layer. This function should only
+     * be used internally.
+     * 
+     * @private
+     * @param {Number} [newWidth=0]
+     *     The new width to assign to this Layer.
+     *
+     * @param {Number} [newHeight=0]
+     *     The new height to assign to this Layer.
+     */
+    var resize = function resize(newWidth, newHeight) {
+
+        // Default size to zero
+        newWidth = newWidth || 0;
+        newHeight = newHeight || 0;
+
+        // Calculate new dimensions of internal canvas
+        var canvasWidth  = Math.ceil(newWidth  / CANVAS_SIZE_FACTOR) * CANVAS_SIZE_FACTOR;
+        var canvasHeight = Math.ceil(newHeight / CANVAS_SIZE_FACTOR) * CANVAS_SIZE_FACTOR;
+
+        // Resize only if canvas dimensions are actually changing
+        if (canvas.width !== canvasWidth || canvas.height !== canvasHeight) {
+
+            // Copy old data only if relevant and non-empty
+            var oldData = null;
+            if (!empty &amp;&amp; canvas.width !== 0 &amp;&amp; canvas.height !== 0) {
+
+                // Create canvas and context for holding old data
+                oldData = document.createElement("canvas");
+                oldData.width = Math.min(layer.width, newWidth);
+                oldData.height = Math.min(layer.height, newHeight);
+
+                var oldDataContext = oldData.getContext("2d");
+
+                // Copy image data from current
+                oldDataContext.drawImage(canvas,
+                        0, 0, oldData.width, oldData.height,
+                        0, 0, oldData.width, oldData.height);
+
+            }
+
+            // Preserve composite operation
+            var oldCompositeOperation = context.globalCompositeOperation;
+
+            // Resize canvas
+            canvas.width = canvasWidth;
+            canvas.height = canvasHeight;
+
+            // Redraw old data, if any
+            if (oldData)
+                context.drawImage(oldData,
+                    0, 0, oldData.width, oldData.height,
+                    0, 0, oldData.width, oldData.height);
+
+            // Restore composite operation
+            context.globalCompositeOperation = oldCompositeOperation;
+
+            // Acknowledge reset of stack (happens on resize of canvas)
+            stackSize = 0;
+            context.save();
+
+        }
+
+        // If the canvas size is not changing, manually force state reset
+        else
+            layer.reset();
+
+        // Assign new layer dimensions
+        layer.width = newWidth;
+        layer.height = newHeight;
+
+    };
+
+    /**
+     * Given the X and Y coordinates of the upper-left corner of a rectangle
+     * and the rectangle's width and height, resize the backing canvas element
+     * as necessary to ensure that the rectangle fits within the canvas
+     * element's coordinate space. This function will only make the canvas
+     * larger. If the rectangle already fits within the canvas element's
+     * coordinate space, the canvas is left unchanged.
+     * 
+     * @private
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to fit.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to fit.
+     * @param {Number} w The width of the the rectangle to fit.
+     * @param {Number} h The height of the the rectangle to fit.
+     */
+    function fitRect(x, y, w, h) {
+        
+        // Calculate bounds
+        var opBoundX = w + x;
+        var opBoundY = h + y;
+        
+        // Determine max width
+        var resizeWidth;
+        if (opBoundX > layer.width)
+            resizeWidth = opBoundX;
+        else
+            resizeWidth = layer.width;
+
+        // Determine max height
+        var resizeHeight;
+        if (opBoundY > layer.height)
+            resizeHeight = opBoundY;
+        else
+            resizeHeight = layer.height;
+
+        // Resize if necessary
+        layer.resize(resizeWidth, resizeHeight);
+
+    }
+
+    /**
+     * Set to true if this Layer should resize itself to accomodate the
+     * dimensions of any drawing operation, and false (the default) otherwise.
+     * 
+     * Note that setting this property takes effect immediately, and thus may
+     * take effect on operations that were started in the past but have not
+     * yet completed. If you wish the setting of this flag to only modify
+     * future operations, you will need to make the setting of this flag an
+     * operation with sync().
+     * 
+     * @example
+     * // Set autosize to true for all future operations
+     * layer.sync(function() {
+     *     layer.autosize = true;
+     * });
+     * 
+     * @type {Boolean}
+     * @default false
+     */
+    this.autosize = false;
+
+    /**
+     * The current width of this layer.
+     * @type {Number}
+     */
+    this.width = width;
+
+    /**
+     * The current height of this layer.
+     * @type {Number}
+     */
+    this.height = height;
+
+    /**
+     * Returns the canvas element backing this Layer. Note that the dimensions
+     * of the canvas may not exactly match those of the Layer, as resizing a
+     * canvas while maintaining its state is an expensive operation.
+     *
+     * @returns {HTMLCanvasElement}
+     *     The canvas element backing this Layer.
+     */
+    this.getCanvas = function getCanvas() {
+        return canvas;
+    };
+
+    /**
+     * Returns a new canvas element containing the same image as this Layer.
+     * Unlike getCanvas(), the canvas element returned is guaranteed to have
+     * the exact same dimensions as the Layer.
+     *
+     * @returns {HTMLCanvasElement}
+     *     A new canvas element containing a copy of the image content this
+     *     Layer.
+     */
+    this.toCanvas = function toCanvas() {
+
+        // Create new canvas having same dimensions
+        var canvas = document.createElement('canvas');
+        canvas.width = layer.width;
+        canvas.height = layer.height;
+
+        // Copy image contents to new canvas
+        var context = canvas.getContext('2d');
+        context.drawImage(layer.getCanvas(), 0, 0);
+
+        return canvas;
+
+    };
+
+    /**
+     * Changes the size of this Layer to the given width and height. Resizing
+     * is only attempted if the new size provided is actually different from
+     * the current size.
+     * 
+     * @param {Number} newWidth The new width to assign to this Layer.
+     * @param {Number} newHeight The new height to assign to this Layer.
+     */
+    this.resize = function(newWidth, newHeight) {
+        if (newWidth !== layer.width || newHeight !== layer.height)
+            resize(newWidth, newHeight);
+    };
+
+    /**
+     * Draws the specified image at the given coordinates. The image specified
+     * must already be loaded.
+     * 
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Image} image The image to draw. Note that this is an Image
+     *                      object - not a URL.
+     */
+    this.drawImage = function(x, y, image) {
+        if (layer.autosize) fitRect(x, y, image.width, image.height);
+        context.drawImage(image, x, y);
+        empty = false;
+    };
+
+    /**
+     * Transfer a rectangle of image data from one Layer to this Layer using the
+     * specified transfer function.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     * @param {Function} transferFunction The transfer function to use to
+     *                                    transfer data from source to
+     *                                    destination.
+     */
+    this.transfer = function(srcLayer, srcx, srcy, srcw, srch, x, y, transferFunction) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+
+        // Get image data from src and dst
+        var src = srcLayer.getCanvas().getContext("2d").getImageData(srcx, srcy, srcw, srch);
+        var dst = context.getImageData(x , y, srcw, srch);
+
+        // Apply transfer for each pixel
+        for (var i=0; i&lt;srcw*srch*4; i+=4) {
+
+            // Get source pixel environment
+            var src_pixel = new Guacamole.Layer.Pixel(
+                src.data[i],
+                src.data[i+1],
+                src.data[i+2],
+                src.data[i+3]
+            );
+                
+            // Get destination pixel environment
+            var dst_pixel = new Guacamole.Layer.Pixel(
+                dst.data[i],
+                dst.data[i+1],
+                dst.data[i+2],
+                dst.data[i+3]
+            );
+
+            // Apply transfer function
+            transferFunction(src_pixel, dst_pixel);
+
+            // Save pixel data
+            dst.data[i  ] = dst_pixel.red;
+            dst.data[i+1] = dst_pixel.green;
+            dst.data[i+2] = dst_pixel.blue;
+            dst.data[i+3] = dst_pixel.alpha;
+
+        }
+
+        // Draw image data
+        context.putImageData(dst, x, y);
+        empty = false;
+
+    };
+
+    /**
+     * Put a rectangle of image data from one Layer to this Layer directly
+     * without performing any alpha blending. Simply copy the data.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.put = function(srcLayer, srcx, srcy, srcw, srch, x, y) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+
+        // Get image data from src and dst
+        var src = srcLayer.getCanvas().getContext("2d").getImageData(srcx, srcy, srcw, srch);
+        context.putImageData(src, x, y);
+        empty = false;
+
+    };
+
+    /**
+     * Copy a rectangle of image data from one Layer to this Layer. This
+     * operation will copy exactly the image data that will be drawn once all
+     * operations of the source Layer that were pending at the time this
+     * function was called are complete. This operation will not alter the
+     * size of the source Layer even if its autosize property is set to true.
+     * 
+     * @param {Guacamole.Layer} srcLayer The Layer to copy image data from.
+     * @param {Number} srcx The X coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcy The Y coordinate of the upper-left corner of the
+     *                      rectangle within the source Layer's coordinate
+     *                      space to copy data from.
+     * @param {Number} srcw The width of the rectangle within the source Layer's
+     *                      coordinate space to copy data from.
+     * @param {Number} srch The height of the rectangle within the source
+     *                      Layer's coordinate space to copy data from.
+     * @param {Number} x The destination X coordinate.
+     * @param {Number} y The destination Y coordinate.
+     */
+    this.copy = function(srcLayer, srcx, srcy, srcw, srch, x, y) {
+
+        var srcCanvas = srcLayer.getCanvas();
+
+        // If entire rectangle outside source canvas, stop
+        if (srcx >= srcCanvas.width || srcy >= srcCanvas.height) return;
+
+        // Otherwise, clip rectangle to area
+        if (srcx + srcw > srcCanvas.width)
+            srcw = srcCanvas.width - srcx;
+
+        if (srcy + srch > srcCanvas.height)
+            srch = srcCanvas.height - srcy;
+
+        // Stop if nothing to draw.
+        if (srcw === 0 || srch === 0) return;
+
+        if (layer.autosize) fitRect(x, y, srcw, srch);
+        context.drawImage(srcCanvas, srcx, srcy, srcw, srch, x, y, srcw, srch);
+        empty = false;
+
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Number} x The X coordinate of the point to draw.
+     * @param {Number} y The Y coordinate of the point to draw.
+     */
+    this.moveTo = function(x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.moveTo(x, y);
+
+    };
+
+    /**
+     * Add the specified line to the current path.
+     * 
+     * @param {Number} x The X coordinate of the endpoint of the line to draw.
+     * @param {Number} y The Y coordinate of the endpoint of the line to draw.
+     */
+    this.lineTo = function(x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.lineTo(x, y);
+        
+    };
+
+    /**
+     * Add the specified arc to the current path.
+     * 
+     * @param {Number} x The X coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} y The Y coordinate of the center of the circle which
+     *                   will contain the arc.
+     * @param {Number} radius The radius of the circle.
+     * @param {Number} startAngle The starting angle of the arc, in radians.
+     * @param {Number} endAngle The ending angle of the arc, in radians.
+     * @param {Boolean} negative Whether the arc should be drawn in order of
+     *                           decreasing angle.
+     */
+    this.arc = function(x, y, radius, startAngle, endAngle, negative) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.arc(x, y, radius, startAngle, endAngle, negative);
+        
+    };
+
+    /**
+     * Starts a new path at the specified point.
+     * 
+     * @param {Number} cp1x The X coordinate of the first control point.
+     * @param {Number} cp1y The Y coordinate of the first control point.
+     * @param {Number} cp2x The X coordinate of the second control point.
+     * @param {Number} cp2y The Y coordinate of the second control point.
+     * @param {Number} x The X coordinate of the endpoint of the curve.
+     * @param {Number} y The Y coordinate of the endpoint of the curve.
+     */
+    this.curveTo = function(cp1x, cp1y, cp2x, cp2y, x, y) {
+        
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, 0, 0);
+        context.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);
+        
+    };
+
+    /**
+     * Closes the current path by connecting the end point with the start
+     * point (if any) with a straight line.
+     */
+    this.close = function() {
+        context.closePath();
+        pathClosed = true;
+    };
+
+    /**
+     * Add the specified rectangle to the current path.
+     * 
+     * @param {Number} x The X coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} y The Y coordinate of the upper-left corner of the
+     *                   rectangle to draw.
+     * @param {Number} w The width of the rectangle to draw.
+     * @param {Number} h The height of the rectangle to draw.
+     */
+    this.rect = function(x, y, w, h) {
+            
+        // Start a new path if current path is closed
+        if (pathClosed) {
+            context.beginPath();
+            pathClosed = false;
+        }
+        
+        if (layer.autosize) fitRect(x, y, w, h);
+        context.rect(x, y, w, h);
+        
+    };
+
+    /**
+     * Clip all future drawing operations by the current path. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as fillColor()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     */
+    this.clip = function() {
+
+        // Set new clipping region
+        context.clip();
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Stroke the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.strokeColor = function(cap, join, thickness, r, g, b, a) {
+
+        // Stroke with color
+        context.lineCap = cap;
+        context.lineJoin = join;
+        context.lineWidth = thickness;
+        context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a/255.0 + ")";
+        context.stroke();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Fills the current path with the specified color. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Number} r The red component of the color to fill.
+     * @param {Number} g The green component of the color to fill.
+     * @param {Number} b The blue component of the color to fill.
+     * @param {Number} a The alpha component of the color to fill.
+     */
+    this.fillColor = function(r, g, b, a) {
+
+        // Fill with color
+        context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a/255.0 + ")";
+        context.fill();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Stroke the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {String} cap The line cap style. Can be "round", "square",
+     *                     or "butt".
+     * @param {String} join The line join style. Can be "round", "bevel",
+     *                      or "miter".
+     * @param {Number} thickness The line thickness in pixels.
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the stroke.
+     */
+    this.strokeLayer = function(cap, join, thickness, srcLayer) {
+
+        // Stroke with image data
+        context.lineCap = cap;
+        context.lineJoin = join;
+        context.lineWidth = thickness;
+        context.strokeStyle = context.createPattern(
+            srcLayer.getCanvas(),
+            "repeat"
+        );
+        context.stroke();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Fills the current path with the image within the specified layer. The
+     * image data will be tiled infinitely within the stroke. The current path
+     * is implicitly closed. The current path can continue to be reused
+     * for other operations (such as clip()) but a new path will be started
+     * once a path drawing operation (path() or rect()) is used.
+     * 
+     * @param {Guacamole.Layer} srcLayer The layer to use as a repeating pattern
+     *                                   within the fill.
+     */
+    this.fillLayer = function(srcLayer) {
+
+        // Fill with image data 
+        context.fillStyle = context.createPattern(
+            srcLayer.getCanvas(),
+            "repeat"
+        );
+        context.fill();
+        empty = false;
+
+        // Path now implicitly closed
+        pathClosed = true;
+
+    };
+
+    /**
+     * Push current layer state onto stack.
+     */
+    this.push = function() {
+
+        // Save current state onto stack
+        context.save();
+        stackSize++;
+
+    };
+
+    /**
+     * Pop layer state off stack.
+     */
+    this.pop = function() {
+
+        // Restore current state from stack
+        if (stackSize > 0) {
+            context.restore();
+            stackSize--;
+        }
+
+    };
+
+    /**
+     * Reset the layer, clearing the stack, the current path, and any transform
+     * matrix.
+     */
+    this.reset = function() {
+
+        // Clear stack
+        while (stackSize > 0) {
+            context.restore();
+            stackSize--;
+        }
+
+        // Restore to initial state
+        context.restore();
+        context.save();
+
+        // Clear path
+        context.beginPath();
+        pathClosed = false;
+
+    };
+
+    /**
+     * Sets the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.setTransform = function(a, b, c, d, e, f) {
+        context.setTransform(
+            a, b, c,
+            d, e, f
+          /*0, 0, 1*/
+        );
+    };
+
+    /**
+     * Applies the given affine transform (defined with six values from the
+     * transform's matrix).
+     * 
+     * @param {Number} a The first value in the affine transform's matrix.
+     * @param {Number} b The second value in the affine transform's matrix.
+     * @param {Number} c The third value in the affine transform's matrix.
+     * @param {Number} d The fourth value in the affine transform's matrix.
+     * @param {Number} e The fifth value in the affine transform's matrix.
+     * @param {Number} f The sixth value in the affine transform's matrix.
+     */
+    this.transform = function(a, b, c, d, e, f) {
+        context.transform(
+            a, b, c,
+            d, e, f
+          /*0, 0, 1*/
+        );
+    };
+
+    /**
+     * Sets the channel mask for future operations on this Layer.
+     * 
+     * The channel mask is a Guacamole-specific compositing operation identifier
+     * with a single bit representing each of four channels (in order): source
+     * image where destination transparent, source where destination opaque,
+     * destination where source transparent, and destination where source
+     * opaque.
+     * 
+     * @param {Number} mask The channel mask for future operations on this
+     *                      Layer.
+     */
+    this.setChannelMask = function(mask) {
+        context.globalCompositeOperation = compositeOperation[mask];
+    };
+
+    /**
+     * Sets the miter limit for stroke operations using the miter join. This
+     * limit is the maximum ratio of the size of the miter join to the stroke
+     * width. If this ratio is exceeded, the miter will not be drawn for that
+     * joint of the path.
+     * 
+     * @param {Number} limit The miter limit for stroke operations using the
+     *                       miter join.
+     */
+    this.setMiterLimit = function(limit) {
+        context.miterLimit = limit;
+    };
+
+    // Initialize canvas dimensions
+    resize(width, height);
+
+    // Explicitly render canvas below other elements in the layer (such as
+    // child layers). Chrome and others may fail to render layers properly
+    // without this.
+    canvas.style.zIndex = -1;
+
+};
+
+/**
+ * Channel mask for the composite operation "rout".
+ */
+Guacamole.Layer.ROUT  = 0x2;
+
+/**
+ * Channel mask for the composite operation "atop".
+ */
+Guacamole.Layer.ATOP  = 0x6;
+
+/**
+ * Channel mask for the composite operation "xor".
+ */
+Guacamole.Layer.XOR   = 0xA;
+
+/**
+ * Channel mask for the composite operation "rover".
+ */
+Guacamole.Layer.ROVER = 0xB;
+
+/**
+ * Channel mask for the composite operation "over".
+ */
+Guacamole.Layer.OVER  = 0xE;
+
+/**
+ * Channel mask for the composite operation "plus".
+ */
+Guacamole.Layer.PLUS  = 0xF;
+
+/**
+ * Channel mask for the composite operation "rin".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.RIN   = 0x1;
+
+/**
+ * Channel mask for the composite operation "in".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.IN    = 0x4;
+
+/**
+ * Channel mask for the composite operation "out".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.OUT   = 0x8;
+
+/**
+ * Channel mask for the composite operation "ratop".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.RATOP = 0x9;
+
+/**
+ * Channel mask for the composite operation "src".
+ * Beware that WebKit-based browsers may leave the contents of the destionation
+ * layer where the source layer is transparent, despite the definition of this
+ * operation.
+ */
+Guacamole.Layer.SRC   = 0xC;
+
+/**
+ * Represents a single pixel of image data. All components have a minimum value
+ * of 0 and a maximum value of 255.
+ * 
+ * @constructor
+ * 
+ * @param {Number} r The red component of this pixel.
+ * @param {Number} g The green component of this pixel.
+ * @param {Number} b The blue component of this pixel.
+ * @param {Number} a The alpha component of this pixel.
+ */
+Guacamole.Layer.Pixel = function(r, g, b, a) {
+
+    /**
+     * The red component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.red   = r;
+
+    /**
+     * The green component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.green = g;
+
+    /**
+     * The blue component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.blue  = b;
+
+    /**
+     * The alpha component of this pixel, where 0 is the minimum value,
+     * and 255 is the maximum.
+     */
+    this.alpha = a;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Mouse.js.html b/doc/1.1.0/guacamole-common-js/Mouse.js.html
new file mode 100644
index 0000000..1c861df
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Mouse.js.html
@@ -0,0 +1,1148 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Mouse.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Mouse.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Provides cross-browser mouse events for a given element. The events of
+ * the given element are automatically populated with handlers that translate
+ * mouse events into a non-browser-specific event provided by the
+ * Guacamole.Mouse instance.
+ * 
+ * @constructor
+ * @param {Element} element The Element to use to provide mouse events.
+ */
+Guacamole.Mouse = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.
+     * @private
+     */
+    var guac_mouse = this;
+
+    /**
+     * The number of mousemove events to require before re-enabling mouse
+     * event handling after receiving a touch event.
+     */
+    this.touchMouseThreshold = 3;
+
+    /**
+     * The minimum amount of pixels scrolled required for a single scroll button
+     * click.
+     */
+    this.scrollThreshold = 53;
+
+    /**
+     * The number of pixels to scroll per line.
+     */
+    this.PIXELS_PER_LINE = 18;
+
+    /**
+     * The number of pixels to scroll per page.
+     */
+    this.PIXELS_PER_PAGE = this.PIXELS_PER_LINE * 16;
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     * 
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0, 
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever the user presses a mouse button down over the element
+     * associated with this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever the user releases a mouse button down over the element
+     * associated with this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse over the element associated with
+     * this Guacamole.Mouse.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    /**
+     * Fired whenever the mouse leaves the boundaries of the element associated
+     * with this Guacamole.Mouse.
+     * 
+     * @event
+     */
+	this.onmouseout = null;
+
+    /**
+     * Counter of mouse events to ignore. This decremented by mousemove, and
+     * while non-zero, mouse events will have no effect.
+     * @private
+     */
+    var ignore_mouse = 0;
+
+    /**
+     * Cumulative scroll delta amount. This value is accumulated through scroll
+     * events and results in scroll button clicks if it exceeds a certain
+     * threshold.
+     *
+     * @private
+     */
+    var scroll_delta = 0;
+
+    function cancelEvent(e) {
+        e.stopPropagation();
+        if (e.preventDefault) e.preventDefault();
+        e.returnValue = false;
+    }
+
+    // Block context menu so right-click gets sent properly
+    element.addEventListener("contextmenu", function(e) {
+        cancelEvent(e);
+    }, false);
+
+    element.addEventListener("mousemove", function(e) {
+
+        cancelEvent(e);
+
+        // If ignoring events, decrement counter
+        if (ignore_mouse) {
+            ignore_mouse--;
+            return;
+        }
+
+        guac_mouse.currentState.fromClientPosition(element, e.clientX, e.clientY);
+
+        if (guac_mouse.onmousemove)
+            guac_mouse.onmousemove(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mousedown", function(e) {
+
+        cancelEvent(e);
+
+        // Do not handle if ignoring events
+        if (ignore_mouse)
+            return;
+
+        switch (e.button) {
+            case 0:
+                guac_mouse.currentState.left = true;
+                break;
+            case 1:
+                guac_mouse.currentState.middle = true;
+                break;
+            case 2:
+                guac_mouse.currentState.right = true;
+                break;
+        }
+
+        if (guac_mouse.onmousedown)
+            guac_mouse.onmousedown(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mouseup", function(e) {
+
+        cancelEvent(e);
+
+        // Do not handle if ignoring events
+        if (ignore_mouse)
+            return;
+
+        switch (e.button) {
+            case 0:
+                guac_mouse.currentState.left = false;
+                break;
+            case 1:
+                guac_mouse.currentState.middle = false;
+                break;
+            case 2:
+                guac_mouse.currentState.right = false;
+                break;
+        }
+
+        if (guac_mouse.onmouseup)
+            guac_mouse.onmouseup(guac_mouse.currentState);
+
+    }, false);
+
+    element.addEventListener("mouseout", function(e) {
+
+        // Get parent of the element the mouse pointer is leaving
+       	if (!e) e = window.event;
+
+        // Check that mouseout is due to actually LEAVING the element
+        var target = e.relatedTarget || e.toElement;
+        while (target) {
+            if (target === element)
+                return;
+            target = target.parentNode;
+        }
+
+        cancelEvent(e);
+
+        // Release all buttons
+        if (guac_mouse.currentState.left
+            || guac_mouse.currentState.middle
+            || guac_mouse.currentState.right) {
+
+            guac_mouse.currentState.left = false;
+            guac_mouse.currentState.middle = false;
+            guac_mouse.currentState.right = false;
+
+            if (guac_mouse.onmouseup)
+                guac_mouse.onmouseup(guac_mouse.currentState);
+        }
+
+        // Fire onmouseout event
+        if (guac_mouse.onmouseout)
+            guac_mouse.onmouseout();
+
+    }, false);
+
+    // Override selection on mouse event element.
+    element.addEventListener("selectstart", function(e) {
+        cancelEvent(e);
+    }, false);
+
+    // Ignore all pending mouse events when touch events are the apparent source
+    function ignorePendingMouseEvents() { ignore_mouse = guac_mouse.touchMouseThreshold; }
+
+    element.addEventListener("touchmove",  ignorePendingMouseEvents, false);
+    element.addEventListener("touchstart", ignorePendingMouseEvents, false);
+    element.addEventListener("touchend",   ignorePendingMouseEvents, false);
+
+    // Scroll wheel support
+    function mousewheel_handler(e) {
+
+        // Determine approximate scroll amount (in pixels)
+        var delta = e.deltaY || -e.wheelDeltaY || -e.wheelDelta;
+
+        // If successfully retrieved scroll amount, convert to pixels if not
+        // already in pixels
+        if (delta) {
+
+            // Convert to pixels if delta was lines
+            if (e.deltaMode === 1)
+                delta = e.deltaY * guac_mouse.PIXELS_PER_LINE;
+
+            // Convert to pixels if delta was pages
+            else if (e.deltaMode === 2)
+                delta = e.deltaY * guac_mouse.PIXELS_PER_PAGE;
+
+        }
+
+        // Otherwise, assume legacy mousewheel event and line scrolling
+        else
+            delta = e.detail * guac_mouse.PIXELS_PER_LINE;
+        
+        // Update overall delta
+        scroll_delta += delta;
+
+        // Up
+        if (scroll_delta &lt;= -guac_mouse.scrollThreshold) {
+
+            // Repeatedly click the up button until insufficient delta remains
+            do {
+
+                if (guac_mouse.onmousedown) {
+                    guac_mouse.currentState.up = true;
+                    guac_mouse.onmousedown(guac_mouse.currentState);
+                }
+
+                if (guac_mouse.onmouseup) {
+                    guac_mouse.currentState.up = false;
+                    guac_mouse.onmouseup(guac_mouse.currentState);
+                }
+
+                scroll_delta += guac_mouse.scrollThreshold;
+
+            } while (scroll_delta &lt;= -guac_mouse.scrollThreshold);
+
+            // Reset delta
+            scroll_delta = 0;
+
+        }
+
+        // Down
+        if (scroll_delta >= guac_mouse.scrollThreshold) {
+
+            // Repeatedly click the down button until insufficient delta remains
+            do {
+
+                if (guac_mouse.onmousedown) {
+                    guac_mouse.currentState.down = true;
+                    guac_mouse.onmousedown(guac_mouse.currentState);
+                }
+
+                if (guac_mouse.onmouseup) {
+                    guac_mouse.currentState.down = false;
+                    guac_mouse.onmouseup(guac_mouse.currentState);
+                }
+
+                scroll_delta -= guac_mouse.scrollThreshold;
+
+            } while (scroll_delta >= guac_mouse.scrollThreshold);
+
+            // Reset delta
+            scroll_delta = 0;
+
+        }
+
+        cancelEvent(e);
+
+    }
+
+    element.addEventListener('DOMMouseScroll', mousewheel_handler, false);
+    element.addEventListener('mousewheel',     mousewheel_handler, false);
+    element.addEventListener('wheel',          mousewheel_handler, false);
+
+    /**
+     * Whether the browser supports CSS3 cursor styling, including hotspot
+     * coordinates.
+     *
+     * @private
+     * @type {Boolean}
+     */
+    var CSS3_CURSOR_SUPPORTED = (function() {
+
+        var div = document.createElement("div");
+
+        // If no cursor property at all, then no support
+        if (!("cursor" in div.style))
+            return false;
+
+        try {
+            // Apply simple 1x1 PNG
+            div.style.cursor = "url(data:image/png;base64,"
+                             + "iVBORw0KGgoAAAANSUhEUgAAAAEAAAAB"
+                             + "AQMAAAAl21bKAAAAA1BMVEX///+nxBvI"
+                             + "AAAACklEQVQI12NgAAAAAgAB4iG8MwAA"
+                             + "AABJRU5ErkJggg==) 0 0, auto";
+        }
+        catch (e) {
+            return false;
+        }
+
+        // Verify cursor property is set to URL with hotspot
+        return /\burl\([^()]*\)\s+0\s+0\b/.test(div.style.cursor || "");
+
+    })();
+
+    /**
+     * Changes the local mouse cursor to the given canvas, having the given
+     * hotspot coordinates. This affects styling of the element backing this
+     * Guacamole.Mouse only, and may fail depending on browser support for
+     * setting the mouse cursor.
+     * 
+     * If setting the local cursor is desired, it is up to the implementation
+     * to do something else, such as use the software cursor built into
+     * Guacamole.Display, if the local cursor cannot be set.
+     *
+     * @param {HTMLCanvasElement} canvas The cursor image.
+     * @param {Number} x The X-coordinate of the cursor hotspot.
+     * @param {Number} y The Y-coordinate of the cursor hotspot.
+     * @return {Boolean} true if the cursor was successfully set, false if the
+     *                   cursor could not be set for any reason.
+     */
+    this.setCursor = function(canvas, x, y) {
+
+        // Attempt to set via CSS3 cursor styling
+        if (CSS3_CURSOR_SUPPORTED) {
+            var dataURL = canvas.toDataURL('image/png');
+            element.style.cursor = "url(" + dataURL + ") " + x + " " + y + ", auto";
+            return true;
+        }
+
+        // Otherwise, setting cursor failed
+        return false;
+
+    };
+
+};
+
+/**
+ * Simple container for properties describing the state of a mouse.
+ * 
+ * @constructor
+ * @param {Number} x The X position of the mouse pointer in pixels.
+ * @param {Number} y The Y position of the mouse pointer in pixels.
+ * @param {Boolean} left Whether the left mouse button is pressed. 
+ * @param {Boolean} middle Whether the middle mouse button is pressed. 
+ * @param {Boolean} right Whether the right mouse button is pressed. 
+ * @param {Boolean} up Whether the up mouse button is pressed (the fourth
+ *                     button, usually part of a scroll wheel). 
+ * @param {Boolean} down Whether the down mouse button is pressed (the fifth
+ *                       button, usually part of a scroll wheel). 
+ */
+Guacamole.Mouse.State = function(x, y, left, middle, right, up, down) {
+
+    /**
+     * Reference to this Guacamole.Mouse.State.
+     * @private
+     */
+    var guac_state = this;
+
+    /**
+     * The current X position of the mouse pointer.
+     * @type {Number}
+     */
+    this.x = x;
+
+    /**
+     * The current Y position of the mouse pointer.
+     * @type {Number}
+     */
+    this.y = y;
+
+    /**
+     * Whether the left mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.left = left;
+
+    /**
+     * Whether the middle mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.middle = middle;
+
+    /**
+     * Whether the right mouse button is currently pressed.
+     * @type {Boolean}
+     */
+    this.right = right;
+
+    /**
+     * Whether the up mouse button is currently pressed. This is the fourth
+     * mouse button, associated with upward scrolling of the mouse scroll
+     * wheel.
+     * @type {Boolean}
+     */
+    this.up = up;
+
+    /**
+     * Whether the down mouse button is currently pressed. This is the fifth 
+     * mouse button, associated with downward scrolling of the mouse scroll
+     * wheel.
+     * @type {Boolean}
+     */
+    this.down = down;
+
+    /**
+     * Updates the position represented within this state object by the given
+     * element and clientX/clientY coordinates (commonly available within event
+     * objects). Position is translated from clientX/clientY (relative to
+     * viewport) to element-relative coordinates.
+     * 
+     * @param {Element} element The element the coordinates should be relative
+     *                          to.
+     * @param {Number} clientX The X coordinate to translate, viewport-relative.
+     * @param {Number} clientY The Y coordinate to translate, viewport-relative.
+     */
+    this.fromClientPosition = function(element, clientX, clientY) {
+    
+        guac_state.x = clientX - element.offsetLeft;
+        guac_state.y = clientY - element.offsetTop;
+
+        // This is all JUST so we can get the mouse position within the element
+        var parent = element.offsetParent;
+        while (parent &amp;&amp; !(parent === document.body)) {
+            guac_state.x -= parent.offsetLeft - parent.scrollLeft;
+            guac_state.y -= parent.offsetTop  - parent.scrollTop;
+
+            parent = parent.offsetParent;
+        }
+
+        // Element ultimately depends on positioning within document body,
+        // take document scroll into account. 
+        if (parent) {
+            var documentScrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
+            var documentScrollTop = document.body.scrollTop || document.documentElement.scrollTop;
+
+            guac_state.x -= parent.offsetLeft - documentScrollLeft;
+            guac_state.y -= parent.offsetTop  - documentScrollTop;
+        }
+
+    };
+
+};
+
+/**
+ * Provides cross-browser relative touch event translation for a given element.
+ * 
+ * Touch events are translated into mouse events as if the touches occurred
+ * on a touchpad (drag to push the mouse pointer, tap to click).
+ * 
+ * @constructor
+ * @param {Element} element The Element to use to provide touch events.
+ */
+Guacamole.Mouse.Touchpad = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.Touchpad.
+     * @private
+     */
+    var guac_touchpad = this;
+
+    /**
+     * The distance a two-finger touch must move per scrollwheel event, in
+     * pixels.
+     */
+    this.scrollThreshold = 20 * (window.devicePixelRatio || 1);
+
+    /**
+     * The maximum number of milliseconds to wait for a touch to end for the
+     * gesture to be considered a click.
+     */
+    this.clickTimingThreshold = 250;
+
+    /**
+     * The maximum number of pixels to allow a touch to move for the gesture to
+     * be considered a click.
+     */
+    this.clickMoveThreshold = 10 * (window.devicePixelRatio || 1);
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     * 
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0, 
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever a mouse button is effectively pressed. This can happen
+     * as part of a "click" gesture initiated by the user by tapping one
+     * or more fingers over the touchpad element, as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever a mouse button is effectively released. This can happen
+     * as part of a "click" gesture initiated by the user by tapping one
+     * or more fingers over the touchpad element, as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse by dragging their finger over
+     * the touchpad element.
+     * 
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    var touch_count = 0;
+    var last_touch_x = 0;
+    var last_touch_y = 0;
+    var last_touch_time = 0;
+    var pixels_moved = 0;
+
+    var touch_buttons = {
+        1: "left",
+        2: "right",
+        3: "middle"
+    };
+
+    var gesture_in_progress = false;
+    var click_release_timeout = null;
+
+    element.addEventListener("touchend", function(e) {
+        
+        e.preventDefault();
+            
+        // If we're handling a gesture AND this is the last touch
+        if (gesture_in_progress &amp;&amp; e.touches.length === 0) {
+            
+            var time = new Date().getTime();
+
+            // Get corresponding mouse button
+            var button = touch_buttons[touch_count];
+
+            // If mouse already down, release anad clear timeout
+            if (guac_touchpad.currentState[button]) {
+
+                // Fire button up event
+                guac_touchpad.currentState[button] = false;
+                if (guac_touchpad.onmouseup)
+                    guac_touchpad.onmouseup(guac_touchpad.currentState);
+
+                // Clear timeout, if set
+                if (click_release_timeout) {
+                    window.clearTimeout(click_release_timeout);
+                    click_release_timeout = null;
+                }
+
+            }
+
+            // If single tap detected (based on time and distance)
+            if (time - last_touch_time &lt;= guac_touchpad.clickTimingThreshold
+                    &amp;&amp; pixels_moved &lt; guac_touchpad.clickMoveThreshold) {
+
+                // Fire button down event
+                guac_touchpad.currentState[button] = true;
+                if (guac_touchpad.onmousedown)
+                    guac_touchpad.onmousedown(guac_touchpad.currentState);
+
+                // Delay mouse up - mouse up should be canceled if
+                // touchstart within timeout.
+                click_release_timeout = window.setTimeout(function() {
+                    
+                    // Fire button up event
+                    guac_touchpad.currentState[button] = false;
+                    if (guac_touchpad.onmouseup)
+                        guac_touchpad.onmouseup(guac_touchpad.currentState);
+                    
+                    // Gesture now over
+                    gesture_in_progress = false;
+
+                }, guac_touchpad.clickTimingThreshold);
+
+            }
+
+            // If we're not waiting to see if this is a click, stop gesture
+            if (!click_release_timeout)
+                gesture_in_progress = false;
+
+        }
+
+    }, false);
+
+    element.addEventListener("touchstart", function(e) {
+
+        e.preventDefault();
+
+        // Track number of touches, but no more than three
+        touch_count = Math.min(e.touches.length, 3);
+
+        // Clear timeout, if set
+        if (click_release_timeout) {
+            window.clearTimeout(click_release_timeout);
+            click_release_timeout = null;
+        }
+
+        // Record initial touch location and time for touch movement
+        // and tap gestures
+        if (!gesture_in_progress) {
+
+            // Stop mouse events while touching
+            gesture_in_progress = true;
+
+            // Record touch location and time
+            var starting_touch = e.touches[0];
+            last_touch_x = starting_touch.clientX;
+            last_touch_y = starting_touch.clientY;
+            last_touch_time = new Date().getTime();
+            pixels_moved = 0;
+
+        }
+
+    }, false);
+
+    element.addEventListener("touchmove", function(e) {
+
+        e.preventDefault();
+
+        // Get change in touch location
+        var touch = e.touches[0];
+        var delta_x = touch.clientX - last_touch_x;
+        var delta_y = touch.clientY - last_touch_y;
+
+        // Track pixels moved
+        pixels_moved += Math.abs(delta_x) + Math.abs(delta_y);
+
+        // If only one touch involved, this is mouse move
+        if (touch_count === 1) {
+
+            // Calculate average velocity in Manhatten pixels per millisecond
+            var velocity = pixels_moved / (new Date().getTime() - last_touch_time);
+
+            // Scale mouse movement relative to velocity
+            var scale = 1 + velocity;
+
+            // Update mouse location
+            guac_touchpad.currentState.x += delta_x*scale;
+            guac_touchpad.currentState.y += delta_y*scale;
+
+            // Prevent mouse from leaving screen
+
+            if (guac_touchpad.currentState.x &lt; 0)
+                guac_touchpad.currentState.x = 0;
+            else if (guac_touchpad.currentState.x >= element.offsetWidth)
+                guac_touchpad.currentState.x = element.offsetWidth - 1;
+
+            if (guac_touchpad.currentState.y &lt; 0)
+                guac_touchpad.currentState.y = 0;
+            else if (guac_touchpad.currentState.y >= element.offsetHeight)
+                guac_touchpad.currentState.y = element.offsetHeight - 1;
+
+            // Fire movement event, if defined
+            if (guac_touchpad.onmousemove)
+                guac_touchpad.onmousemove(guac_touchpad.currentState);
+
+            // Update touch location
+            last_touch_x = touch.clientX;
+            last_touch_y = touch.clientY;
+
+        }
+
+        // Interpret two-finger swipe as scrollwheel
+        else if (touch_count === 2) {
+
+            // If change in location passes threshold for scroll
+            if (Math.abs(delta_y) >= guac_touchpad.scrollThreshold) {
+
+                // Decide button based on Y movement direction
+                var button;
+                if (delta_y > 0) button = "down";
+                else             button = "up";
+
+                // Fire button down event
+                guac_touchpad.currentState[button] = true;
+                if (guac_touchpad.onmousedown)
+                    guac_touchpad.onmousedown(guac_touchpad.currentState);
+
+                // Fire button up event
+                guac_touchpad.currentState[button] = false;
+                if (guac_touchpad.onmouseup)
+                    guac_touchpad.onmouseup(guac_touchpad.currentState);
+
+                // Only update touch location after a scroll has been
+                // detected
+                last_touch_x = touch.clientX;
+                last_touch_y = touch.clientY;
+
+            }
+
+        }
+
+    }, false);
+
+};
+
+/**
+ * Provides cross-browser absolute touch event translation for a given element.
+ *
+ * Touch events are translated into mouse events as if the touches occurred
+ * on a touchscreen (tapping anywhere on the screen clicks at that point,
+ * long-press to right-click).
+ *
+ * @constructor
+ * @param {Element} element The Element to use to provide touch events.
+ */
+Guacamole.Mouse.Touchscreen = function(element) {
+
+    /**
+     * Reference to this Guacamole.Mouse.Touchscreen.
+     * @private
+     */
+    var guac_touchscreen = this;
+
+    /**
+     * Whether a gesture is known to be in progress. If false, touch events
+     * will be ignored.
+     *
+     * @private
+     */
+    var gesture_in_progress = false;
+
+    /**
+     * The start X location of a gesture.
+     * @private
+     */
+    var gesture_start_x = null;
+
+    /**
+     * The start Y location of a gesture.
+     * @private
+     */
+    var gesture_start_y = null;
+
+    /**
+     * The timeout associated with the delayed, cancellable click release.
+     *
+     * @private
+     */
+    var click_release_timeout = null;
+
+    /**
+     * The timeout associated with long-press for right click.
+     *
+     * @private
+     */
+    var long_press_timeout = null;
+
+    /**
+     * The distance a two-finger touch must move per scrollwheel event, in
+     * pixels.
+     */
+    this.scrollThreshold = 20 * (window.devicePixelRatio || 1);
+
+    /**
+     * The maximum number of milliseconds to wait for a touch to end for the
+     * gesture to be considered a click.
+     */
+    this.clickTimingThreshold = 250;
+
+    /**
+     * The maximum number of pixels to allow a touch to move for the gesture to
+     * be considered a click.
+     */
+    this.clickMoveThreshold = 16 * (window.devicePixelRatio || 1);
+
+    /**
+     * The amount of time a press must be held for long press to be
+     * detected.
+     */
+    this.longPressThreshold = 500;
+
+    /**
+     * The current mouse state. The properties of this state are updated when
+     * mouse events fire. This state object is also passed in as a parameter to
+     * the handler of any mouse events.
+     *
+     * @type {Guacamole.Mouse.State}
+     */
+    this.currentState = new Guacamole.Mouse.State(
+        0, 0,
+        false, false, false, false, false
+    );
+
+    /**
+     * Fired whenever a mouse button is effectively pressed. This can happen
+     * as part of a "mousedown" gesture initiated by the user by pressing one
+     * finger over the touchscreen element, as part of a "scroll" gesture
+     * initiated by dragging two fingers up or down, etc.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousedown = null;
+
+    /**
+     * Fired whenever a mouse button is effectively released. This can happen
+     * as part of a "mouseup" gesture initiated by the user by removing the
+     * finger pressed against the touchscreen element, or as part of a "scroll"
+     * gesture initiated by dragging two fingers up or down, etc.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmouseup = null;
+
+    /**
+     * Fired whenever the user moves the mouse by dragging their finger over
+     * the touchscreen element. Note that unlike Guacamole.Mouse.Touchpad,
+     * dragging a finger over the touchscreen element will always cause
+     * the mouse button to be effectively down, as if clicking-and-dragging.
+     *
+     * @event
+     * @param {Guacamole.Mouse.State} state The current mouse state.
+     */
+	this.onmousemove = null;
+
+    /**
+     * Presses the given mouse button, if it isn't already pressed. Valid
+     * button values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to press.
+     */
+    function press_button(button) {
+        if (!guac_touchscreen.currentState[button]) {
+            guac_touchscreen.currentState[button] = true;
+            if (guac_touchscreen.onmousedown)
+                guac_touchscreen.onmousedown(guac_touchscreen.currentState);
+        }
+    }
+
+    /**
+     * Releases the given mouse button, if it isn't already released. Valid
+     * button values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to release.
+     */
+    function release_button(button) {
+        if (guac_touchscreen.currentState[button]) {
+            guac_touchscreen.currentState[button] = false;
+            if (guac_touchscreen.onmouseup)
+                guac_touchscreen.onmouseup(guac_touchscreen.currentState);
+        }
+    }
+
+    /**
+     * Clicks (presses and releases) the given mouse button. Valid button
+     * values are "left", "middle", "right", "up", and "down".
+     *
+     * @private
+     * @param {String} button The mouse button to click.
+     */
+    function click_button(button) {
+        press_button(button);
+        release_button(button);
+    }
+
+    /**
+     * Moves the mouse to the given coordinates. These coordinates must be
+     * relative to the browser window, as they will be translated based on
+     * the touch event target's location within the browser window.
+     *
+     * @private
+     * @param {Number} x The X coordinate of the mouse pointer.
+     * @param {Number} y The Y coordinate of the mouse pointer.
+     */
+    function move_mouse(x, y) {
+        guac_touchscreen.currentState.fromClientPosition(element, x, y);
+        if (guac_touchscreen.onmousemove)
+            guac_touchscreen.onmousemove(guac_touchscreen.currentState);
+    }
+
+    /**
+     * Returns whether the given touch event exceeds the movement threshold for
+     * clicking, based on where the touch gesture began.
+     *
+     * @private
+     * @param {TouchEvent} e The touch event to check.
+     * @return {Boolean} true if the movement threshold is exceeded, false
+     *                   otherwise.
+     */
+    function finger_moved(e) {
+        var touch = e.touches[0] || e.changedTouches[0];
+        var delta_x = touch.clientX - gesture_start_x;
+        var delta_y = touch.clientY - gesture_start_y;
+        return Math.sqrt(delta_x*delta_x + delta_y*delta_y) >= guac_touchscreen.clickMoveThreshold;
+    }
+
+    /**
+     * Begins a new gesture at the location of the first touch in the given
+     * touch event.
+     * 
+     * @private
+     * @param {TouchEvent} e The touch event beginning this new gesture.
+     */
+    function begin_gesture(e) {
+        var touch = e.touches[0];
+        gesture_in_progress = true;
+        gesture_start_x = touch.clientX;
+        gesture_start_y = touch.clientY;
+    }
+
+    /**
+     * End the current gesture entirely. Wait for all touches to be done before
+     * resuming gesture detection.
+     * 
+     * @private
+     */
+    function end_gesture() {
+        window.clearTimeout(click_release_timeout);
+        window.clearTimeout(long_press_timeout);
+        gesture_in_progress = false;
+    }
+
+    element.addEventListener("touchend", function(e) {
+
+        // Do not handle if no gesture
+        if (!gesture_in_progress)
+            return;
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 0 || e.changedTouches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        // Long-press, if any, is over
+        window.clearTimeout(long_press_timeout);
+
+        // Always release mouse button if pressed
+        release_button("left");
+
+        // If finger hasn't moved enough to cancel the click
+        if (!finger_moved(e)) {
+
+            e.preventDefault();
+
+            // If not yet pressed, press and start delay release
+            if (!guac_touchscreen.currentState.left) {
+
+                var touch = e.changedTouches[0];
+                move_mouse(touch.clientX, touch.clientY);
+                press_button("left");
+
+                // Release button after a delay, if not canceled
+                click_release_timeout = window.setTimeout(function() {
+                    release_button("left");
+                    end_gesture();
+                }, guac_touchscreen.clickTimingThreshold);
+
+            }
+
+        } // end if finger not moved
+
+    }, false);
+
+    element.addEventListener("touchstart", function(e) {
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        e.preventDefault();
+
+        // New touch begins a new gesture
+        begin_gesture(e);
+
+        // Keep button pressed if tap after left click
+        window.clearTimeout(click_release_timeout);
+
+        // Click right button if this turns into a long-press
+        long_press_timeout = window.setTimeout(function() {
+            var touch = e.touches[0];
+            move_mouse(touch.clientX, touch.clientY);
+            click_button("right");
+            end_gesture();
+        }, guac_touchscreen.longPressThreshold);
+
+    }, false);
+
+    element.addEventListener("touchmove", function(e) {
+
+        // Do not handle if no gesture
+        if (!gesture_in_progress)
+            return;
+
+        // Cancel long press if finger moved
+        if (finger_moved(e))
+            window.clearTimeout(long_press_timeout);
+
+        // Ignore if more than one touch
+        if (e.touches.length !== 1) {
+            end_gesture();
+            return;
+        }
+
+        // Update mouse position if dragging
+        if (guac_touchscreen.currentState.left) {
+
+            e.preventDefault();
+
+            // Update state
+            var touch = e.touches[0];
+            move_mouse(touch.clientX, touch.clientY);
+
+        }
+
+    }, false);
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Namespace.js.html b/doc/1.1.0/guacamole-common-js/Namespace.js.html
new file mode 100644
index 0000000..be16e93
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Namespace.js.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Namespace.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Namespace.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * The namespace used by the Guacamole JavaScript API. Absolutely all classes
+ * defined by the Guacamole JavaScript API will be within this namespace.
+ *
+ * @namespace
+ */
+var Guacamole = Guacamole || {};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Object.js.html b/doc/1.1.0/guacamole-common-js/Object.js.html
new file mode 100644
index 0000000..a035207
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Object.js.html
@@ -0,0 +1,271 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Object.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Object.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * An object used by the Guacamole client to house arbitrarily-many named
+ * input and output streams.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client
+ *     The client owning this object.
+ *
+ * @param {Number} index
+ *     The index of this object.
+ */
+Guacamole.Object = function guacamoleObject(client, index) {
+
+    /**
+     * Reference to this Guacamole.Object.
+     *
+     * @private
+     * @type {Guacamole.Object}
+     */
+    var guacObject = this;
+
+    /**
+     * Map of stream name to corresponding queue of callbacks. The queue of
+     * callbacks is guaranteed to be in order of request.
+     *
+     * @private
+     * @type {Object.&lt;String, Function[]>}
+     */
+    var bodyCallbacks = {};
+
+    /**
+     * Removes and returns the callback at the head of the callback queue for
+     * the stream having the given name. If no such callbacks exist, null is
+     * returned.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the stream to retrieve a callback for.
+     *
+     * @returns {Function}
+     *     The next callback associated with the stream having the given name,
+     *     or null if no such callback exists.
+     */
+    var dequeueBodyCallback = function dequeueBodyCallback(name) {
+
+        // If no callbacks defined, simply return null
+        var callbacks = bodyCallbacks[name];
+        if (!callbacks)
+            return null;
+
+        // Otherwise, pull off first callback, deleting the queue if empty
+        var callback = callbacks.shift();
+        if (callbacks.length === 0)
+            delete bodyCallbacks[name];
+
+        // Return found callback
+        return callback;
+
+    };
+
+    /**
+     * Adds the given callback to the tail of the callback queue for the stream
+     * having the given name.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the stream to associate with the given callback.
+     *
+     * @param {Function} callback
+     *     The callback to add to the queue of the stream with the given name.
+     */
+    var enqueueBodyCallback = function enqueueBodyCallback(name, callback) {
+
+        // Get callback queue by name, creating first if necessary
+        var callbacks = bodyCallbacks[name];
+        if (!callbacks) {
+            callbacks = [];
+            bodyCallbacks[name] = callbacks;
+        }
+
+        // Add callback to end of queue
+        callbacks.push(callback);
+
+    };
+
+    /**
+     * The index of this object.
+     *
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Called when this object receives the body of a requested input stream.
+     * By default, all objects will invoke the callbacks provided to their
+     * requestInputStream() functions based on the name of the stream
+     * requested. This behavior can be overridden by specifying a different
+     * handler here.
+     *
+     * @event
+     * @param {Guacamole.InputStream} inputStream
+     *     The input stream of the received body.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data being received.
+     *
+     * @param {String} name
+     *     The name of the stream whose body has been received.
+     */
+    this.onbody = function defaultBodyHandler(inputStream, mimetype, name) {
+
+        // Call queued callback for the received body, if any
+        var callback = dequeueBodyCallback(name);
+        if (callback)
+            callback(inputStream, mimetype);
+
+    };
+
+    /**
+     * Called when this object is being undefined. Once undefined, no further
+     * communication involving this object may occur.
+     * 
+     * @event
+     */
+    this.onundefine = null;
+
+    /**
+     * Requests read access to the input stream having the given name. If
+     * successful, a new input stream will be created.
+     *
+     * @param {String} name
+     *     The name of the input stream to request.
+     *
+     * @param {Function} [bodyCallback]
+     *     The callback to invoke when the body of the requested input stream
+     *     is received. This callback will be provided a Guacamole.InputStream
+     *     and its mimetype as its two only arguments. If the onbody handler of
+     *     this object is overridden, this callback will not be invoked.
+     */
+    this.requestInputStream = function requestInputStream(name, bodyCallback) {
+
+        // Queue body callback if provided
+        if (bodyCallback)
+            enqueueBodyCallback(name, bodyCallback);
+
+        // Send request for input stream
+        client.requestObjectInputStream(guacObject.index, name);
+
+    };
+
+    /**
+     * Creates a new output stream associated with this object and having the
+     * given mimetype and name. The legality of a mimetype and name is dictated
+     * by the object itself.
+     *
+     * @param {String} mimetype
+     *     The mimetype of the data which will be sent to the output stream.
+     *
+     * @param {String} name
+     *     The defined name of an output stream within this object.
+     *
+     * @returns {Guacamole.OutputStream}
+     *     An output stream which will write blobs to the named output stream
+     *     of this object.
+     */
+    this.createOutputStream = function createOutputStream(mimetype, name) {
+        return client.createObjectOutputStream(guacObject.index, mimetype, name);
+    };
+
+};
+
+/**
+ * The reserved name denoting the root stream of any object. The contents of
+ * the root stream MUST be a JSON map of stream name to mimetype.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Object.ROOT_STREAM = '/';
+
+/**
+ * The mimetype of a stream containing JSON which maps available stream names
+ * to their corresponding mimetype. The root stream of a Guacamole.Object MUST
+ * have this mimetype.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Object.STREAM_INDEX_MIMETYPE = 'application/vnd.glyptodon.guacamole.stream-index+json';
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/OnScreenKeyboard.js.html b/doc/1.1.0/guacamole-common-js/OnScreenKeyboard.js.html
new file mode 100644
index 0000000..b0630fc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/OnScreenKeyboard.js.html
@@ -0,0 +1,1004 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: OnScreenKeyboard.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: OnScreenKeyboard.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Dynamic on-screen keyboard. Given the layout object for an on-screen
+ * keyboard, this object will construct a clickable on-screen keyboard with its
+ * own key events.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Layout} layout
+ *     The layout of the on-screen keyboard to display.
+ */
+Guacamole.OnScreenKeyboard = function(layout) {
+
+    /**
+     * Reference to this Guacamole.OnScreenKeyboard.
+     *
+     * @private
+     * @type {Guacamole.OnScreenKeyboard}
+     */
+    var osk = this;
+
+    /**
+     * Map of currently-set modifiers to the keysym associated with their
+     * original press. When the modifier is cleared, this keysym must be
+     * released.
+     *
+     * @private
+     * @type {Object.&lt;String, Number>}
+     */
+    var modifierKeysyms = {};
+
+    /**
+     * Map of all key names to their current pressed states. If a key is not
+     * pressed, it may not be in this map at all, but all pressed keys will
+     * have a corresponding mapping to true.
+     *
+     * @private
+     * @type {Object.&lt;String, Boolean>}
+     */
+    var pressed = {};
+
+    /**
+     * All scalable elements which are part of the on-screen keyboard. Each
+     * scalable element is carefully controlled to ensure the interface layout
+     * and sizing remains constant, even on browsers that would otherwise
+     * experience rounding error due to unit conversions.
+     *
+     * @private
+     * @type {ScaledElement[]}
+     */
+    var scaledElements = [];
+
+    /**
+     * Adds a CSS class to an element.
+     * 
+     * @private
+     * @function
+     * @param {Element} element
+     *     The element to add a class to.
+     *
+     * @param {String} classname
+     *     The name of the class to add.
+     */
+    var addClass = function addClass(element, classname) {
+
+        // If classList supported, use that
+        if (element.classList)
+            element.classList.add(classname);
+
+        // Otherwise, simply append the class
+        else
+            element.className += " " + classname;
+
+    };
+
+    /**
+     * Removes a CSS class from an element.
+     * 
+     * @private
+     * @function
+     * @param {Element} element
+     *     The element to remove a class from.
+     *
+     * @param {String} classname
+     *     The name of the class to remove.
+     */
+    var removeClass = function removeClass(element, classname) {
+
+        // If classList supported, use that
+        if (element.classList)
+            element.classList.remove(classname);
+
+        // Otherwise, manually filter out classes with given name
+        else {
+            element.className = element.className.replace(/([^ ]+)[ ]*/g,
+                function removeMatchingClasses(match, testClassname) {
+
+                    // If same class, remove
+                    if (testClassname === classname)
+                        return "";
+
+                    // Otherwise, allow
+                    return match;
+                    
+                }
+            );
+        }
+
+    };
+
+    /**
+     * Counter of mouse events to ignore. This decremented by mousemove, and
+     * while non-zero, mouse events will have no effect.
+     *
+     * @private
+     * @type {Number}
+     */
+    var ignoreMouse = 0;
+
+    /**
+     * Ignores all pending mouse events when touch events are the apparent
+     * source. Mouse events are ignored until at least touchMouseThreshold
+     * mouse events occur without corresponding touch events.
+     *
+     * @private
+     */
+    var ignorePendingMouseEvents = function ignorePendingMouseEvents() {
+        ignoreMouse = osk.touchMouseThreshold;
+    };
+
+    /**
+     * An element whose dimensions are maintained according to an arbitrary
+     * scale. The conversion factor for these arbitrary units to pixels is
+     * provided later via a call to scale().
+     *
+     * @private
+     * @constructor
+     * @param {Element} element
+     *     The element whose scale should be maintained.
+     *
+     * @param {Number} width
+     *     The width of the element, in arbitrary units, relative to other
+     *     ScaledElements.
+     *
+     * @param {Number} height
+     *     The height of the element, in arbitrary units, relative to other
+     *     ScaledElements.
+     *     
+     * @param {Boolean} [scaleFont=false]
+     *     Whether the line height and font size should be scaled as well.
+     */
+    var ScaledElement = function ScaledElement(element, width, height, scaleFont) {
+
+        /**
+         * The width of this ScaledElement, in arbitrary units, relative to
+         * other ScaledElements.
+         *
+         * @type {Number}
+         */
+         this.width = width;
+
+        /**
+         * The height of this ScaledElement, in arbitrary units, relative to
+         * other ScaledElements.
+         *
+         * @type {Number}
+         */
+         this.height = height;
+ 
+        /**
+         * Resizes the associated element, updating its dimensions according to
+         * the given pixels per unit.
+         *
+         * @param {Number} pixels
+         *     The number of pixels to assign per arbitrary unit.
+         */
+        this.scale = function(pixels) {
+
+            // Scale element width/height
+            element.style.width  = (width  * pixels) + "px";
+            element.style.height = (height * pixels) + "px";
+
+            // Scale font, if requested
+            if (scaleFont) {
+                element.style.lineHeight = (height * pixels) + "px";
+                element.style.fontSize   = pixels + "px";
+            }
+
+        };
+
+    };
+
+    /**
+     * Returns whether all modifiers having the given names are currently
+     * active.
+     *
+     * @private
+     * @param {String[]} names
+     *     The names of all modifiers to test.
+     *
+     * @returns {Boolean}
+     *     true if all specified modifiers are pressed, false otherwise.
+     */
+    var modifiersPressed = function modifiersPressed(names) {
+
+        // If any required modifiers are not pressed, return false
+        for (var i=0; i &lt; names.length; i++) {
+
+            // Test whether current modifier is pressed
+            var name = names[i];
+            if (!(name in modifierKeysyms))
+                return false;
+
+        }
+
+        // Otherwise, all required modifiers are pressed
+        return true;
+
+    };
+
+    /**
+     * Returns the single matching Key object associated with the key of the
+     * given name, where that Key object's requirements (such as pressed
+     * modifiers) are all currently satisfied.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to retrieve.
+     *
+     * @returns {Guacamole.OnScreenKeyboard.Key}
+     *     The Key object associated with the given name, where that object's
+     *     requirements are all currently satisfied, or null if no such Key
+     *     can be found.
+     */
+    var getActiveKey = function getActiveKey(keyName) {
+
+        // Get key array for given name
+        var keys = osk.keys[keyName];
+        if (!keys)
+            return null;
+
+        // Find last matching key
+        for (var i = keys.length - 1; i >= 0; i--) {
+
+            // Get candidate key
+            var candidate = keys[i];
+
+            // If all required modifiers are pressed, use that key
+            if (modifiersPressed(candidate.requires))
+                return candidate;
+
+        }
+
+        // No valid key
+        return null;
+
+    };
+
+    /**
+     * Presses the key having the given name, updating the associated key
+     * element with the "guac-keyboard-pressed" CSS class. If the key is
+     * already pressed, this function has no effect.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to press.
+     *
+     * @param {String} keyElement
+     *     The element associated with the given key.
+     */
+    var press = function press(keyName, keyElement) {
+
+        // Press key if not yet pressed
+        if (!pressed[keyName]) {
+
+            addClass(keyElement, "guac-keyboard-pressed");
+
+            // Get current key based on modifier state
+            var key = getActiveKey(keyName);
+
+            // Update modifier state
+            if (key.modifier) {
+
+                // Construct classname for modifier
+                var modifierClass = "guac-keyboard-modifier-" + getCSSName(key.modifier);
+
+                // Retrieve originally-pressed keysym, if modifier was already pressed
+                var originalKeysym = modifierKeysyms[key.modifier];
+
+                // Activate modifier if not pressed
+                if (!originalKeysym) {
+                    
+                    addClass(keyboard, modifierClass);
+                    modifierKeysyms[key.modifier] = key.keysym;
+                    
+                    // Send key event
+                    if (osk.onkeydown)
+                        osk.onkeydown(key.keysym);
+
+                }
+
+                // Deactivate if not pressed
+                else {
+
+                    removeClass(keyboard, modifierClass);
+                    delete modifierKeysyms[key.modifier];
+                    
+                    // Send key event
+                    if (osk.onkeyup)
+                        osk.onkeyup(originalKeysym);
+
+                }
+
+            }
+
+            // If not modifier, send key event now
+            else if (osk.onkeydown)
+                osk.onkeydown(key.keysym);
+
+            // Mark key as pressed
+            pressed[keyName] = true;
+
+        }
+
+    };
+
+    /**
+     * Releases the key having the given name, removing the
+     * "guac-keyboard-pressed" CSS class from the associated element. If the
+     * key is already released, this function has no effect.
+     *
+     * @private
+     * @param {String} keyName
+     *     The name of the key to release.
+     *
+     * @param {String} keyElement
+     *     The element associated with the given key.
+     */
+    var release = function release(keyName, keyElement) {
+
+        // Release key if currently pressed
+        if (pressed[keyName]) {
+
+            removeClass(keyElement, "guac-keyboard-pressed");
+
+            // Get current key based on modifier state
+            var key = getActiveKey(keyName);
+
+            // Send key event if not a modifier key
+            if (!key.modifier &amp;&amp; osk.onkeyup)
+                osk.onkeyup(key.keysym);
+
+            // Mark key as released
+            pressed[keyName] = false;
+
+        }
+
+    };
+
+    // Create keyboard
+    var keyboard = document.createElement("div");
+    keyboard.className = "guac-keyboard";
+
+    // Do not allow selection or mouse movement to propagate/register.
+    keyboard.onselectstart =
+    keyboard.onmousemove   =
+    keyboard.onmouseup     =
+    keyboard.onmousedown   = function handleMouseEvents(e) {
+
+        // If ignoring events, decrement counter
+        if (ignoreMouse)
+            ignoreMouse--;
+
+        e.stopPropagation();
+        return false;
+
+    };
+
+    /**
+     * The number of mousemove events to require before re-enabling mouse
+     * event handling after receiving a touch event.
+     *
+     * @type {Number}
+     */
+    this.touchMouseThreshold = 3;
+
+    /**
+     * Fired whenever the user presses a key on this Guacamole.OnScreenKeyboard.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being pressed.
+     */
+    this.onkeydown = null;
+
+    /**
+     * Fired whenever the user releases a key on this Guacamole.OnScreenKeyboard.
+     * 
+     * @event
+     * @param {Number} keysym The keysym of the key being released.
+     */
+    this.onkeyup = null;
+
+    /**
+     * The keyboard layout provided at time of construction.
+     *
+     * @type {Guacamole.OnScreenKeyboard.Layout}
+     */
+    this.layout = new Guacamole.OnScreenKeyboard.Layout(layout);
+
+    /**
+     * Returns the element containing the entire on-screen keyboard.
+     * @returns {Element} The element containing the entire on-screen keyboard.
+     */
+    this.getElement = function() {
+        return keyboard;
+    };
+
+    /**
+     * Resizes all elements within this Guacamole.OnScreenKeyboard such that
+     * the width is close to but does not exceed the specified width. The
+     * height of the keyboard is determined based on the width.
+     * 
+     * @param {Number} width The width to resize this Guacamole.OnScreenKeyboard
+     *                       to, in pixels.
+     */
+    this.resize = function(width) {
+
+        // Get pixel size of a unit
+        var unit = Math.floor(width * 10 / osk.layout.width) / 10;
+
+        // Resize all scaled elements
+        for (var i=0; i&lt;scaledElements.length; i++) {
+            var scaledElement = scaledElements[i];
+            scaledElement.scale(unit);
+        }
+
+    };
+
+    /**
+     * Given the name of a key and its corresponding definition, which may be
+     * an array of keys objects, a number (keysym), a string (key title), or a
+     * single key object, returns an array of key objects, deriving any missing
+     * properties as needed, and ensuring the key name is defined.
+     *
+     * @private
+     * @param {String} name
+     *     The name of the key being coerced into an array of Key objects.
+     *
+     * @param {Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]} object
+     *     The object defining the behavior of the key having the given name,
+     *     which may be the title of the key (a string), the keysym (a number),
+     *     a single Key object, or an array of Key objects.
+     *     
+     * @returns {Guacamole.OnScreenKeyboard.Key[]}
+     *     An array of all keys associated with the given name.
+     */
+    var asKeyArray = function asKeyArray(name, object) {
+
+        // If already an array, just coerce into a true Key[] 
+        if (object instanceof Array) {
+            var keys = [];
+            for (var i=0; i &lt; object.length; i++) {
+                keys.push(new Guacamole.OnScreenKeyboard.Key(object[i], name));
+            }
+            return keys;
+        }
+
+        // Derive key object from keysym if that's all we have
+        if (typeof object === 'number') {
+            return [new Guacamole.OnScreenKeyboard.Key({
+                name   : name,
+                keysym : object
+            })];
+        }
+
+        // Derive key object from title if that's all we have
+        if (typeof object === 'string') {
+            return [new Guacamole.OnScreenKeyboard.Key({
+                name  : name,
+                title : object
+            })];
+        }
+
+        // Otherwise, assume it's already a key object, just not an array
+        return [new Guacamole.OnScreenKeyboard.Key(object, name)];
+
+    };
+
+    /**
+     * Converts the rather forgiving key mapping allowed by
+     * Guacamole.OnScreenKeyboard.Layout into a rigorous mapping of key name
+     * to key definition, where the key definition is always an array of Key
+     * objects.
+     *
+     * @private
+     * @param {Object.&lt;String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>} keys
+     *     A mapping of key name to key definition, where the key definition is
+     *     the title of the key (a string), the keysym (a number), a single
+     *     Key object, or an array of Key objects.
+     *
+     * @returns {Object.&lt;String, Guacamole.OnScreenKeyboard.Key[]>}
+     *     A more-predictable mapping of key name to key definition, where the
+     *     key definition is always simply an array of Key objects.
+     */
+    var getKeys = function getKeys(keys) {
+
+        var keyArrays = {};
+
+        // Coerce all keys into individual key arrays
+        for (var name in layout.keys) {
+            keyArrays[name] = asKeyArray(name, keys[name]);
+        }
+
+        return keyArrays;
+
+    };
+
+    /**
+     * Map of all key names to their corresponding set of keys. Each key name
+     * may correspond to multiple keys due to the effect of modifiers.
+     *
+     * @type {Object.&lt;String, Guacamole.OnScreenKeyboard.Key[]>}
+     */
+    this.keys = getKeys(layout.keys);
+
+    /**
+     * Given an arbitrary string representing the name of some component of the
+     * on-screen keyboard, returns a string formatted for use as a CSS class
+     * name. The result will be lowercase. Word boundaries previously denoted
+     * by CamelCase will be replaced by individual hyphens, as will all
+     * contiguous non-alphanumeric characters.
+     *
+     * @private
+     * @param {String} name
+     *     An arbitrary string representing the name of some component of the
+     *     on-screen keyboard.
+     *
+     * @returns {String}
+     *     A string formatted for use as a CSS class name.
+     */
+    var getCSSName = function getCSSName(name) {
+
+        // Convert name from possibly-CamelCase to hyphenated lowercase
+        var cssName = name
+               .replace(/([a-z])([A-Z])/g, '$1-$2')
+               .replace(/[^A-Za-z0-9]+/g, '-')
+               .toLowerCase();
+
+        return cssName;
+
+    };
+
+    /**
+     * Appends DOM elements to the given element as dictated by the layout
+     * structure object provided. If a name is provided, an additional CSS
+     * class, prepended with "guac-keyboard-", will be added to the top-level
+     * element.
+     * 
+     * If the layout structure object is an array, all elements within that
+     * array will be recursively appended as children of a group, and the
+     * top-level element will be given the CSS class "guac-keyboard-group".
+     *
+     * If the layout structure object is an object, all properties within that
+     * object will be recursively appended as children of a group, and the
+     * top-level element will be given the CSS class "guac-keyboard-group". The
+     * name of each property will be applied as the name of each child object
+     * for the sake of CSS. Each property will be added in sorted order.
+     *
+     * If the layout structure object is a string, the key having that name
+     * will be appended. The key will be given the CSS class
+     * "guac-keyboard-key" and "guac-keyboard-key-NAME", where NAME is the name
+     * of the key. If the name of the key is a single character, this will
+     * first be transformed into the C-style hexadecimal literal for the
+     * Unicode codepoint of that character. For example, the key "A" would
+     * become "guac-keyboard-key-0x41".
+     * 
+     * If the layout structure object is a number, a gap of that size will be
+     * inserted. The gap will be given the CSS class "guac-keyboard-gap", and
+     * will be scaled according to the same size units as each key.
+     *
+     * @private
+     * @param {Element} element
+     *     The element to append elements to.
+     *
+     * @param {Array|Object|String|Number} object
+     *     The layout structure object to use when constructing the elements to
+     *     append.
+     *
+     * @param {String} [name]
+     *     The name of the top-level element being appended, if any.
+     */
+    var appendElements = function appendElements(element, object, name) {
+
+        var i;
+
+        // Create div which will become the group or key
+        var div = document.createElement('div');
+
+        // Add class based on name, if name given
+        if (name)
+            addClass(div, 'guac-keyboard-' + getCSSName(name));
+
+        // If an array, append each element
+        if (object instanceof Array) {
+
+            // Add group class
+            addClass(div, 'guac-keyboard-group');
+
+            // Append all elements of array
+            for (i=0; i &lt; object.length; i++)
+                appendElements(div, object[i]);
+
+        }
+
+        // If an object, append each property value
+        else if (object instanceof Object) {
+
+            // Add group class
+            addClass(div, 'guac-keyboard-group');
+
+            // Append all children, sorted by name
+            var names = Object.keys(object).sort();
+            for (i=0; i &lt; names.length; i++) {
+                var name = names[i];
+                appendElements(div, object[name], name);
+            }
+
+        }
+
+        // If a number, create as a gap 
+        else if (typeof object === 'number') {
+
+            // Add gap class
+            addClass(div, 'guac-keyboard-gap');
+
+            // Maintain scale
+            scaledElements.push(new ScaledElement(div, object, object));
+
+        }
+
+        // If a string, create as a key
+        else if (typeof object === 'string') {
+
+            // If key name is only one character, use codepoint for name
+            var keyName = object;
+            if (keyName.length === 1)
+                keyName = '0x' + keyName.charCodeAt(0).toString(16);
+
+            // Add key container class
+            addClass(div, 'guac-keyboard-key-container');
+
+            // Create key element which will contain all possible caps
+            var keyElement = document.createElement('div');
+            keyElement.className = 'guac-keyboard-key '
+                                 + 'guac-keyboard-key-' + getCSSName(keyName);
+
+            // Add all associated keys as caps within DOM
+            var keys = osk.keys[object];
+            if (keys) {
+                for (i=0; i &lt; keys.length; i++) {
+
+                    // Get current key
+                    var key = keys[i];
+
+                    // Create cap element for key
+                    var capElement = document.createElement('div');
+                    capElement.className   = 'guac-keyboard-cap';
+                    capElement.textContent = key.title;
+
+                    // Add classes for any requirements
+                    for (var j=0; j &lt; key.requires.length; j++) {
+                        var requirement = key.requires[j];
+                        addClass(capElement, 'guac-keyboard-requires-' + getCSSName(requirement));
+                        addClass(keyElement, 'guac-keyboard-uses-'     + getCSSName(requirement));
+                    }
+
+                    // Add cap to key within DOM
+                    keyElement.appendChild(capElement);
+
+                }
+            }
+
+            // Add key to DOM, maintain scale
+            div.appendChild(keyElement);
+            scaledElements.push(new ScaledElement(div, osk.layout.keyWidths[object] || 1, 1, true));
+
+            /**
+             * Handles a touch event which results in the pressing of an OSK
+             * key. Touch events will result in mouse events being ignored for
+             * touchMouseThreshold events.
+             *
+             * @private
+             * @param {TouchEvent} e
+             *     The touch event being handled.
+             */
+            var touchPress = function touchPress(e) {
+                e.preventDefault();
+                ignoreMouse = osk.touchMouseThreshold;
+                press(object, keyElement);
+            };
+
+            /**
+             * Handles a touch event which results in the release of an OSK
+             * key. Touch events will result in mouse events being ignored for
+             * touchMouseThreshold events.
+             *
+             * @private
+             * @param {TouchEvent} e
+             *     The touch event being handled.
+             */
+            var touchRelease = function touchRelease(e) {
+                e.preventDefault();
+                ignoreMouse = osk.touchMouseThreshold;
+                release(object, keyElement);
+            };
+
+            /**
+             * Handles a mouse event which results in the pressing of an OSK
+             * key. If mouse events are currently being ignored, this handler
+             * does nothing.
+             *
+             * @private
+             * @param {MouseEvent} e
+             *     The touch event being handled.
+             */
+            var mousePress = function mousePress(e) {
+                e.preventDefault();
+                if (ignoreMouse === 0)
+                    press(object, keyElement);
+            };
+
+            /**
+             * Handles a mouse event which results in the release of an OSK
+             * key. If mouse events are currently being ignored, this handler
+             * does nothing.
+             *
+             * @private
+             * @param {MouseEvent} e
+             *     The touch event being handled.
+             */
+            var mouseRelease = function mouseRelease(e) {
+                e.preventDefault();
+                if (ignoreMouse === 0)
+                    release(object, keyElement);
+            };
+
+            // Handle touch events on key
+            keyElement.addEventListener("touchstart", touchPress,   true);
+            keyElement.addEventListener("touchend",   touchRelease, true);
+
+            // Handle mouse events on key
+            keyElement.addEventListener("mousedown", mousePress,   true);
+            keyElement.addEventListener("mouseup",   mouseRelease, true);
+            keyElement.addEventListener("mouseout",  mouseRelease, true);
+
+        } // end if object is key name
+
+        // Add newly-created group/key
+        element.appendChild(div);
+
+    };
+
+    // Create keyboard layout in DOM
+    appendElements(keyboard, layout.layout);
+
+};
+
+/**
+ * Represents an entire on-screen keyboard layout, including all available
+ * keys, their behaviors, and their relative position and sizing.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Layout|Object} template
+ *     The object whose identically-named properties will be used to initialize
+ *     the properties of this layout.
+ */
+Guacamole.OnScreenKeyboard.Layout = function(template) {
+
+    /**
+     * The language of keyboard layout, such as "en_US". This property is for
+     * informational purposes only, but it is recommend to conform to the
+     * [language code]_[country code] format.
+     *
+     * @type {String}
+     */
+    this.language = template.language;
+
+    /**
+     * The type of keyboard layout, such as "qwerty". This property is for
+     * informational purposes only, and does not conform to any standard.
+     *
+     * @type {String}
+     */
+    this.type = template.type;
+
+    /**
+     * Map of key name to corresponding keysym, title, or key object. If only
+     * the keysym or title is provided, the key object will be created
+     * implicitly. In all cases, the name property of the key object will be
+     * taken from the name given in the mapping.
+     *
+     * @type {Object.&lt;String, Number|String|Guacamole.OnScreenKeyboard.Key|Guacamole.OnScreenKeyboard.Key[]>}
+     */
+    this.keys = template.keys;
+
+    /**
+     * Arbitrarily nested, arbitrarily grouped key names. The contents of the
+     * layout will be traversed to produce an identically-nested grouping of
+     * keys in the DOM tree. All strings will be transformed into their
+     * corresponding sets of keys, while all objects and arrays will be
+     * transformed into named groups and anonymous groups respectively. Any
+     * numbers present will be transformed into gaps of that size, scaled
+     * according to the same units as each key.
+     *
+     * @type {Object}
+     */
+    this.layout = template.layout;
+
+    /**
+     * The width of the entire keyboard, in arbitrary units. The width of each
+     * key is relative to this width, as both width values are assumed to be in
+     * the same units. The conversion factor between these units and pixels is
+     * derived later via a call to resize() on the Guacamole.OnScreenKeyboard.
+     *
+     * @type {Number}
+     */
+    this.width = template.width;
+
+    /**
+     * The width of each key, in arbitrary units, relative to other keys in
+     * this layout. The true pixel size of each key will be determined by the
+     * overall size of the keyboard. If not defined here, the width of each
+     * key will default to 1.
+     *
+     * @type {Object.&lt;String, Number>}
+     */
+    this.keyWidths = template.keyWidths || {};
+
+};
+
+/**
+ * Represents a single key, or a single possible behavior of a key. Each key
+ * on the on-screen keyboard must have at least one associated
+ * Guacamole.OnScreenKeyboard.Key, whether that key is explicitly defined or
+ * implied, and may have multiple Guacamole.OnScreenKeyboard.Key if behavior
+ * depends on modifier states.
+ *
+ * @constructor
+ * @param {Guacamole.OnScreenKeyboard.Key|Object} template
+ *     The object whose identically-named properties will be used to initialize
+ *     the properties of this key.
+ *     
+ * @param {String} [name]
+ *     The name to use instead of any name provided within the template, if
+ *     any. If omitted, the name within the template will be used, assuming the
+ *     template contains a name.
+ */
+Guacamole.OnScreenKeyboard.Key = function(template, name) {
+
+    /**
+     * The unique name identifying this key within the keyboard layout.
+     *
+     * @type {String}
+     */
+    this.name = name || template.name;
+
+    /**
+     * The human-readable title that will be displayed to the user within the
+     * key. If not provided, this will be derived from the key name.
+     *
+     * @type {String}
+     */
+    this.title = template.title || this.name;
+
+    /**
+     * The keysym to be pressed/released when this key is pressed/released. If
+     * not provided, this will be derived from the title if the title is a
+     * single character.
+     *
+     * @type {Number}
+     */
+    this.keysym = template.keysym || (function deriveKeysym(title) {
+
+        // Do not derive keysym if title is not exactly one character
+        if (!title || title.length !== 1)
+            return null;
+
+        // For characters between U+0000 and U+00FF, the keysym is the codepoint
+        var charCode = title.charCodeAt(0);
+        if (charCode >= 0x0000 &amp;&amp; charCode &lt;= 0x00FF)
+            return charCode;
+
+        // For characters between U+0100 and U+10FFFF, the keysym is the codepoint or'd with 0x01000000
+        if (charCode >= 0x0100 &amp;&amp; charCode &lt;= 0x10FFFF)
+            return 0x01000000 | charCode;
+
+        // Unable to derive keysym
+        return null;
+
+    })(this.title);
+
+    /**
+     * The name of the modifier set when the key is pressed and cleared when
+     * this key is released, if any. The names of modifiers are distinct from
+     * the names of keys; both the "RightShift" and "LeftShift" keys may set
+     * the "shift" modifier, for example. By default, the key will affect no
+     * modifiers.
+     * 
+     * @type {String}
+     */
+    this.modifier = template.modifier;
+
+    /**
+     * An array containing the names of each modifier required for this key to
+     * have an effect. For example, a lowercase letter may require nothing,
+     * while an uppercase letter would require "shift", assuming the Shift key
+     * is named "shift" within the layout. By default, the key will require
+     * no modifiers.
+     *
+     * @type {String[]}
+     */
+    this.requires = template.requires || [];
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/OutputStream.js.html b/doc/1.1.0/guacamole-common-js/OutputStream.js.html
new file mode 100644
index 0000000..0c8ca17
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/OutputStream.js.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: OutputStream.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: OutputStream.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract stream which can receive data.
+ * 
+ * @constructor
+ * @param {Guacamole.Client} client The client owning this stream.
+ * @param {Number} index The index of this stream.
+ */
+Guacamole.OutputStream = function(client, index) {
+
+    /**
+     * Reference to this stream.
+     * @private
+     */
+    var guac_stream = this;
+
+    /**
+     * The index of this stream.
+     * @type {Number}
+     */
+    this.index = index;
+
+    /**
+     * Fired whenever an acknowledgement is received from the server, indicating
+     * that a stream operation has completed, or an error has occurred.
+     * 
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+    /**
+     * Writes the given base64-encoded data to this stream as a blob.
+     * 
+     * @param {String} data The base64-encoded data to send.
+     */
+    this.sendBlob = function(data) {
+        client.sendBlob(guac_stream.index, data);
+    };
+
+    /**
+     * Closes this stream.
+     */
+    this.sendEnd = function() {
+        client.endStream(guac_stream.index);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Parser.js.html b/doc/1.1.0/guacamole-common-js/Parser.js.html
new file mode 100644
index 0000000..e9d04ad
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Parser.js.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Parser.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Parser.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Simple Guacamole protocol parser that invokes an oninstruction event when
+ * full instructions are available from data received via receive().
+ * 
+ * @constructor
+ */
+Guacamole.Parser = function() {
+
+    /**
+     * Reference to this parser.
+     * @private
+     */
+    var parser = this;
+
+    /**
+     * Current buffer of received data. This buffer grows until a full
+     * element is available. After a full element is available, that element
+     * is flushed into the element buffer.
+     * 
+     * @private
+     */
+    var buffer = "";
+
+    /**
+     * Buffer of all received, complete elements. After an entire instruction
+     * is read, this buffer is flushed, and a new instruction begins.
+     * 
+     * @private
+     */
+    var element_buffer = [];
+
+    // The location of the last element's terminator
+    var element_end = -1;
+
+    // Where to start the next length search or the next element
+    var start_index = 0;
+
+    /**
+     * Appends the given instruction data packet to the internal buffer of
+     * this Guacamole.Parser, executing all completed instructions at
+     * the beginning of this buffer, if any.
+     *
+     * @param {String} packet The instruction data to receive.
+     */
+    this.receive = function(packet) {
+
+        // Truncate buffer as necessary
+        if (start_index > 4096 &amp;&amp; element_end >= start_index) {
+
+            buffer = buffer.substring(start_index);
+
+            // Reset parse relative to truncation
+            element_end -= start_index;
+            start_index = 0;
+
+        }
+
+        // Append data to buffer
+        buffer += packet;
+
+        // While search is within currently received data
+        while (element_end &lt; buffer.length) {
+
+            // If we are waiting for element data
+            if (element_end >= start_index) {
+
+                // We now have enough data for the element. Parse.
+                var element = buffer.substring(start_index, element_end);
+                var terminator = buffer.substring(element_end, element_end+1);
+
+                // Add element to array
+                element_buffer.push(element);
+
+                // If last element, handle instruction
+                if (terminator == ";") {
+
+                    // Get opcode
+                    var opcode = element_buffer.shift();
+
+                    // Call instruction handler.
+                    if (parser.oninstruction != null)
+                        parser.oninstruction(opcode, element_buffer);
+
+                    // Clear elements
+                    element_buffer.length = 0;
+
+                }
+                else if (terminator != ',')
+                    throw new Error("Illegal terminator.");
+
+                // Start searching for length at character after
+                // element terminator
+                start_index = element_end + 1;
+
+            }
+
+            // Search for end of length
+            var length_end = buffer.indexOf(".", start_index);
+            if (length_end != -1) {
+
+                // Parse length
+                var length = parseInt(buffer.substring(element_end+1, length_end));
+                if (isNaN(length))
+                    throw new Error("Non-numeric character in element length.");
+
+                // Calculate start of element
+                start_index = length_end + 1;
+
+                // Calculate location of element terminator
+                element_end = start_index + length;
+
+            }
+            
+            // If no period yet, continue search when more data
+            // is received
+            else {
+                start_index = buffer.length;
+                break;
+            }
+
+        } // end parse loop
+
+    };
+
+    /**
+     * Fired once for every complete Guacamole instruction received, in order.
+     * 
+     * @event
+     * @param {String} opcode The Guacamole instruction opcode.
+     * @param {Array} parameters The parameters provided for the instruction,
+     *                           if any.
+     */
+    this.oninstruction = null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/RawAudioFormat.js.html b/doc/1.1.0/guacamole-common-js/RawAudioFormat.js.html
new file mode 100644
index 0000000..8e96e57
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/RawAudioFormat.js.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: RawAudioFormat.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: RawAudioFormat.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A description of the format of raw PCM audio, such as that used by
+ * Guacamole.RawAudioPlayer and Guacamole.RawAudioRecorder. This object
+ * describes the number of bytes per sample, the number of channels, and the
+ * overall sample rate.
+ *
+ * @constructor
+ * @param {Guacamole.RawAudioFormat|Object} template
+ *     The object whose properties should be copied into the corresponding
+ *     properties of the new Guacamole.RawAudioFormat.
+ */
+Guacamole.RawAudioFormat = function RawAudioFormat(template) {
+
+    /**
+     * The number of bytes in each sample of audio data. This value is
+     * independent of the number of channels.
+     *
+     * @type {Number}
+     */
+    this.bytesPerSample = template.bytesPerSample;
+
+    /**
+     * The number of audio channels (ie: 1 for mono, 2 for stereo).
+     *
+     * @type {Number}
+     */
+    this.channels = template.channels;
+
+    /**
+     * The number of samples per second, per channel.
+     *
+     * @type {Number}
+     */
+    this.rate = template.rate;
+
+};
+
+/**
+ * Parses the given mimetype, returning a new Guacamole.RawAudioFormat
+ * which describes the type of raw audio data represented by that mimetype. If
+ * the mimetype is not a supported raw audio data mimetype, null is returned.
+ *
+ * @param {String} mimetype
+ *     The audio mimetype to parse.
+ *
+ * @returns {Guacamole.RawAudioFormat}
+ *     A new Guacamole.RawAudioFormat which describes the type of raw
+ *     audio data represented by the given mimetype, or null if the given
+ *     mimetype is not supported.
+ */
+Guacamole.RawAudioFormat.parse = function parseFormat(mimetype) {
+
+    var bytesPerSample;
+
+    // Rate is absolutely required - if null is still present later, the
+    // mimetype must not be supported
+    var rate = null;
+
+    // Default for both "audio/L8" and "audio/L16" is one channel
+    var channels = 1;
+
+    // "audio/L8" has one byte per sample
+    if (mimetype.substring(0, 9) === 'audio/L8;') {
+        mimetype = mimetype.substring(9);
+        bytesPerSample = 1;
+    }
+
+    // "audio/L16" has two bytes per sample
+    else if (mimetype.substring(0, 10) === 'audio/L16;') {
+        mimetype = mimetype.substring(10);
+        bytesPerSample = 2;
+    }
+
+    // All other types are unsupported
+    else
+        return null;
+
+    // Parse all parameters
+    var parameters = mimetype.split(',');
+    for (var i = 0; i &lt; parameters.length; i++) {
+
+        var parameter = parameters[i];
+
+        // All parameters must have an equals sign separating name from value
+        var equals = parameter.indexOf('=');
+        if (equals === -1)
+            return null;
+
+        // Parse name and value from parameter string
+        var name  = parameter.substring(0, equals);
+        var value = parameter.substring(equals+1);
+
+        // Handle each supported parameter
+        switch (name) {
+
+            // Number of audio channels
+            case 'channels':
+                channels = parseInt(value);
+                break;
+
+            // Sample rate
+            case 'rate':
+                rate = parseInt(value);
+                break;
+
+            // All other parameters are unsupported
+            default:
+                return null;
+
+        }
+
+    };
+
+    // The rate parameter is required
+    if (rate === null)
+        return null;
+
+    // Return parsed format details
+    return new Guacamole.RawAudioFormat({
+        bytesPerSample : bytesPerSample,
+        channels       : channels,
+        rate           : rate
+    });
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/SessionRecording.js.html b/doc/1.1.0/guacamole-common-js/SessionRecording.js.html
new file mode 100644
index 0000000..a0a38dd
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/SessionRecording.js.html
@@ -0,0 +1,880 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: SessionRecording.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: SessionRecording.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A recording of a Guacamole session. Given a {@link Guacamole.Tunnel}, the
+ * Guacamole.SessionRecording automatically handles incoming Guacamole
+ * instructions, storing them for playback. Playback of the recording may be
+ * controlled through function calls to the Guacamole.SessionRecording, even
+ * while the recording has not yet finished being created or downloaded.
+ *
+ * @constructor
+ * @param {Guacamole.Tunnel} tunnel
+ *     The Guacamole.Tunnel from which the instructions of the recording should
+ *     be read.
+ */
+Guacamole.SessionRecording = function SessionRecording(tunnel) {
+
+    /**
+     * Reference to this Guacamole.SessionRecording.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording}
+     */
+    var recording = this;
+
+    /**
+     * The minimum number of characters which must have been read between
+     * keyframes.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var KEYFRAME_CHAR_INTERVAL = 16384;
+
+    /**
+     * The minimum number of milliseconds which must elapse between keyframes.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var KEYFRAME_TIME_INTERVAL = 5000;
+
+    /**
+     * The maximum amount of time to spend in any particular seek operation
+     * before returning control to the main thread, in milliseconds. Seek
+     * operations exceeding this amount of time will proceed asynchronously.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var MAXIMUM_SEEK_TIME = 5;
+
+    /**
+     * All frames parsed from the provided tunnel.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame[]}
+     */
+    var frames = [];
+
+    /**
+     * All instructions which have been read since the last frame was added to
+     * the frames array.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame.Instruction[]}
+     */
+    var instructions = [];
+
+    /**
+     * The approximate number of characters which have been read from the
+     * provided tunnel since the last frame was flagged for use as a keyframe.
+     *
+     * @private
+     * @type {Number}
+     */
+    var charactersSinceLastKeyframe = 0;
+
+    /**
+     * The timestamp of the last frame which was flagged for use as a keyframe.
+     * If no timestamp has yet been flagged, this will be 0.
+     *
+     * @private
+     * @type {Number}
+     */
+    var lastKeyframeTimestamp = 0;
+
+    /**
+     * Tunnel which feeds arbitrary instructions to the client used by this
+     * Guacamole.SessionRecording for playback of the session recording.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._PlaybackTunnel}
+     */
+    var playbackTunnel = new Guacamole.SessionRecording._PlaybackTunnel();
+
+    /**
+     * Guacamole.Client instance used for visible playback of the session
+     * recording.
+     *
+     * @private
+     * @type {Guacamole.Client}
+     */
+    var playbackClient = new Guacamole.Client(playbackTunnel);
+
+    /**
+     * The current frame rendered within the playback client. If no frame is
+     * yet rendered, this will be -1.
+     *
+     * @private
+     * @type {Number}
+     */
+    var currentFrame = -1;
+
+    /**
+     * The timestamp of the frame when playback began, in milliseconds. If
+     * playback is not in progress, this will be null.
+     *
+     * @private
+     * @type {Number}
+     */
+    var startVideoTimestamp = null;
+
+    /**
+     * The real-world timestamp when playback began, in milliseconds. If
+     * playback is not in progress, this will be null.
+     *
+     * @private
+     * @type {Number}
+     */
+    var startRealTimestamp = null;
+
+    /**
+     * The ID of the timeout which will continue the in-progress seek
+     * operation. If no seek operation is in progress, the ID stored here (if
+     * any) will not be valid.
+     *
+     * @private
+     * @type {Number}
+     */
+    var seekTimeout = null;
+
+    // Start playback client connected
+    playbackClient.connect();
+
+    // Hide cursor unless mouse position is received
+    playbackClient.getDisplay().showCursor(false);
+
+    // Read instructions from provided tunnel, extracting each frame
+    tunnel.oninstruction = function handleInstruction(opcode, args) {
+
+        // Store opcode and arguments for received instruction
+        var instruction = new Guacamole.SessionRecording._Frame.Instruction(opcode, args.slice());
+        instructions.push(instruction);
+        charactersSinceLastKeyframe += instruction.getSize();
+
+        // Once a sync is received, store all instructions since the last
+        // frame as a new frame
+        if (opcode === 'sync') {
+
+            // Parse frame timestamp from sync instruction
+            var timestamp = parseInt(args[0]);
+
+            // Add a new frame containing the instructions read since last frame
+            var frame = new Guacamole.SessionRecording._Frame(timestamp, instructions);
+            frames.push(frame);
+
+            // This frame should eventually become a keyframe if enough data
+            // has been processed and enough recording time has elapsed, or if
+            // this is the absolute first frame
+            if (frames.length === 1 || (charactersSinceLastKeyframe >= KEYFRAME_CHAR_INTERVAL
+                    &amp;&amp; timestamp - lastKeyframeTimestamp >= KEYFRAME_TIME_INTERVAL)) {
+                frame.keyframe = true;
+                lastKeyframeTimestamp = timestamp;
+                charactersSinceLastKeyframe = 0;
+            }
+
+            // Clear set of instructions in preparation for next frame
+            instructions = [];
+
+            // Notify that additional content is available
+            if (recording.onprogress)
+                recording.onprogress(recording.getDuration());
+
+        }
+
+    };
+
+    /**
+     * Converts the given absolute timestamp to a timestamp which is relative
+     * to the first frame in the recording.
+     *
+     * @private
+     * @param {Number} timestamp
+     *     The timestamp to convert to a relative timestamp.
+     *
+     * @returns {Number}
+     *     The difference in milliseconds between the given timestamp and the
+     *     first frame of the recording, or zero if no frames yet exist.
+     */
+    var toRelativeTimestamp = function toRelativeTimestamp(timestamp) {
+
+        // If no frames yet exist, all timestamps are zero
+        if (frames.length === 0)
+            return 0;
+
+        // Calculate timestamp relative to first frame
+        return timestamp - frames[0].timestamp;
+
+    };
+
+    /**
+     * Searches through the given region of frames for the frame having a
+     * relative timestamp closest to the timestamp given.
+     *
+     * @private
+     * @param {Number} minIndex
+     *     The index of the first frame in the region (the frame having the
+     *     smallest timestamp).
+     *
+     * @param {Number} maxIndex
+     *     The index of the last frame in the region (the frame having the
+     *     largest timestamp).
+     *
+     * @param {Number} timestamp
+     *     The relative timestamp to search for, where zero denotes the first
+     *     frame in the recording.
+     *
+     * @returns {Number}
+     *     The index of the frame having a relative timestamp closest to the
+     *     given value.
+     */
+    var findFrame = function findFrame(minIndex, maxIndex, timestamp) {
+
+        // Do not search if the region contains only one element
+        if (minIndex === maxIndex)
+            return minIndex;
+
+        // Split search region into two halves
+        var midIndex = Math.floor((minIndex + maxIndex) / 2);
+        var midTimestamp = toRelativeTimestamp(frames[midIndex].timestamp);
+
+        // If timestamp is within lesser half, search again within that half
+        if (timestamp &lt; midTimestamp &amp;&amp; midIndex > minIndex)
+            return findFrame(minIndex, midIndex - 1, timestamp);
+
+        // If timestamp is within greater half, search again within that half
+        if (timestamp > midTimestamp &amp;&amp; midIndex &lt; maxIndex)
+            return findFrame(midIndex + 1, maxIndex, timestamp);
+
+        // Otherwise, we lucked out and found a frame with exactly the
+        // desired timestamp
+        return midIndex;
+
+    };
+
+    /**
+     * Replays the instructions associated with the given frame, sending those
+     * instructions to the playback client.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the frame within the frames array which should be
+     *     replayed.
+     */
+    var replayFrame = function replayFrame(index) {
+
+        var frame = frames[index];
+
+        // Replay all instructions within the retrieved frame
+        for (var i = 0; i &lt; frame.instructions.length; i++) {
+            var instruction = frame.instructions[i];
+            playbackTunnel.receiveInstruction(instruction.opcode, instruction.args);
+        }
+
+        // Store client state if frame is flagged as a keyframe
+        if (frame.keyframe &amp;&amp; !frame.clientState) {
+            playbackClient.exportState(function storeClientState(state) {
+                frame.clientState = state;
+            });
+        }
+
+    };
+
+    /**
+     * Moves the playback position to the given frame, resetting the state of
+     * the playback client and replaying frames as necessary. The seek
+     * operation will proceed asynchronously. If a seek operation is already in
+     * progress, that seek is first aborted. The progress of the seek operation
+     * can be observed through the onseek handler and the provided callback.
+     *
+     * @private
+     * @param {Number} index
+     *     The index of the frame which should become the new playback
+     *     position.
+     *
+     * @param {function} callback
+     *     The callback to invoke once the seek operation has completed.
+     *
+     * @param {Number} [delay=0]
+     *     The number of milliseconds that the seek operation should be
+     *     scheduled to take.
+     */
+    var seekToFrame = function seekToFrame(index, callback, delay) {
+
+        // Abort any in-progress seek
+        abortSeek();
+
+        // Replay frames asynchronously
+        seekTimeout = window.setTimeout(function continueSeek() {
+
+            var startIndex;
+
+            // Back up until startIndex represents current state
+            for (startIndex = index; startIndex >= 0; startIndex--) {
+
+                var frame = frames[startIndex];
+
+                // If we've reached the current frame, startIndex represents
+                // current state by definition
+                if (startIndex === currentFrame)
+                    break;
+
+                // If frame has associated absolute state, make that frame the
+                // current state
+                if (frame.clientState) {
+                    playbackClient.importState(frame.clientState);
+                    break;
+                }
+
+            }
+
+            // Advance to frame index after current state
+            startIndex++;
+
+            var startTime = new Date().getTime();
+
+            // Replay any applicable incremental frames
+            for (; startIndex &lt;= index; startIndex++) {
+
+                // Stop seeking if the operation is taking too long
+                var currentTime = new Date().getTime();
+                if (currentTime - startTime >= MAXIMUM_SEEK_TIME)
+                    break;
+
+                replayFrame(startIndex);
+            }
+
+            // Current frame is now at requested index
+            currentFrame = startIndex - 1;
+
+            // Notify of changes in position
+            if (recording.onseek)
+                recording.onseek(recording.getPosition());
+
+            // If the seek operation has not yet completed, schedule continuation
+            if (currentFrame !== index)
+                seekToFrame(index, callback,
+                    Math.max(delay - (new Date().getTime() - startTime), 0));
+
+            // Notify that the requested seek has completed
+            else
+                callback();
+
+        }, delay || 0);
+
+    };
+
+    /**
+     * Aborts the seek operation currently in progress, if any. If no seek
+     * operation is in progress, this function has no effect.
+     *
+     * @private
+     */
+    var abortSeek = function abortSeek() {
+        window.clearTimeout(seekTimeout);
+    };
+
+    /**
+     * Advances playback to the next frame in the frames array and schedules
+     * playback of the frame following that frame based on their associated
+     * timestamps. If no frames exist after the next frame, playback is paused.
+     *
+     * @private
+     */
+    var continuePlayback = function continuePlayback() {
+
+        // If frames remain after advancing, schedule next frame
+        if (currentFrame + 1 &lt; frames.length) {
+
+            // Pull the upcoming frame
+            var next = frames[currentFrame + 1];
+
+            // Calculate the real timestamp corresponding to when the next
+            // frame begins
+            var nextRealTimestamp = next.timestamp - startVideoTimestamp + startRealTimestamp;
+
+            // Calculate the relative delay between the current time and
+            // the next frame start
+            var delay = Math.max(nextRealTimestamp - new Date().getTime(), 0);
+
+            // Advance to next frame after enough time has elapsed
+            seekToFrame(currentFrame + 1, function frameDelayElapsed() {
+                continuePlayback();
+            }, delay);
+
+        }
+
+        // Otherwise stop playback
+        else
+            recording.pause();
+
+    };
+
+    /**
+     * Fired when new frames have become available while the recording is
+     * being downloaded.
+     *
+     * @event
+     * @param {Number} duration
+     *     The new duration of the recording, in milliseconds.
+     */
+    this.onprogress = null;
+
+    /**
+     * Fired whenever playback of the recording has started.
+     *
+     * @event
+     */
+    this.onplay = null;
+
+    /**
+     * Fired whenever playback of the recording has been paused. This may
+     * happen when playback is explicitly paused with a call to pause(), or
+     * when playback is implicitly paused due to reaching the end of the
+     * recording.
+     *
+     * @event
+     */
+    this.onpause = null;
+
+    /**
+     * Fired whenever the playback position within the recording changes.
+     *
+     * @event
+     * @param {Number} position
+     *     The new position within the recording, in milliseconds.
+     */
+    this.onseek = null;
+
+    /**
+     * Connects the underlying tunnel, beginning download of the Guacamole
+     * session. Playback of the Guacamole session cannot occur until at least
+     * one frame worth of instructions has been downloaded.
+     *
+     * @param {String} data
+     *     The data to send to the tunnel when connecting.
+     */
+    this.connect = function connect(data) {
+        tunnel.connect(data);
+    };
+
+    /**
+     * Disconnects the underlying tunnel, stopping further download of the
+     * Guacamole session.
+     */
+    this.disconnect = function disconnect() {
+        tunnel.disconnect();
+    };
+
+    /**
+     * Returns the underlying display of the Guacamole.Client used by this
+     * Guacamole.SessionRecording for playback. The display contains an Element
+     * which can be added to the DOM, causing the display (and thus playback of
+     * the recording) to become visible.
+     *
+     * @return {Guacamole.Display}
+     *     The underlying display of the Guacamole.Client used by this
+     *     Guacamole.SessionRecording for playback.
+     */
+    this.getDisplay = function getDisplay() {
+        return playbackClient.getDisplay();
+    };
+
+    /**
+     * Returns whether playback is currently in progress.
+     *
+     * @returns {Boolean}
+     *     true if playback is currently in progress, false otherwise.
+     */
+    this.isPlaying = function isPlaying() {
+        return !!startVideoTimestamp;
+    };
+
+    /**
+     * Returns the current playback position within the recording, in
+     * milliseconds, where zero is the start of the recording.
+     *
+     * @returns {Number}
+     *     The current playback position within the recording, in milliseconds.
+     */
+    this.getPosition = function getPosition() {
+
+        // Position is simply zero if playback has not started at all
+        if (currentFrame === -1)
+            return 0;
+
+        // Return current position as a millisecond timestamp relative to the
+        // start of the recording
+        return toRelativeTimestamp(frames[currentFrame].timestamp);
+
+    };
+
+    /**
+     * Returns the duration of this recording, in milliseconds. If the
+     * recording is still being downloaded, this value will gradually increase.
+     *
+     * @returns {Number}
+     *     The duration of this recording, in milliseconds.
+     */
+    this.getDuration = function getDuration() {
+
+        // If no frames yet exist, duration is zero
+        if (frames.length === 0)
+            return 0;
+
+        // Recording duration is simply the timestamp of the last frame
+        return toRelativeTimestamp(frames[frames.length - 1].timestamp);
+
+    };
+
+    /**
+     * Begins continuous playback of the recording downloaded thus far.
+     * Playback of the recording will continue until pause() is invoked or
+     * until no further frames exist. Playback is initially paused when a
+     * Guacamole.SessionRecording is created, and must be explicitly started
+     * through a call to this function. If playback is already in progress,
+     * this function has no effect. If a seek operation is in progress,
+     * playback resumes at the current position, and the seek is aborted as if
+     * completed.
+     */
+    this.play = function play() {
+
+        // If playback is not already in progress and frames remain,
+        // begin playback
+        if (!recording.isPlaying() &amp;&amp; currentFrame + 1 &lt; frames.length) {
+
+            // Notify that playback is starting
+            if (recording.onplay)
+                recording.onplay();
+
+            // Store timestamp of playback start for relative scheduling of
+            // future frames
+            var next = frames[currentFrame + 1];
+            startVideoTimestamp = next.timestamp;
+            startRealTimestamp = new Date().getTime();
+
+            // Begin playback of video
+            continuePlayback();
+
+        }
+
+    };
+
+    /**
+     * Seeks to the given position within the recording. If the recording is
+     * currently being played back, playback will continue after the seek is
+     * performed. If the recording is currently paused, playback will be
+     * paused after the seek is performed. If a seek operation is already in
+     * progress, that seek is first aborted. The seek operation will proceed
+     * asynchronously.
+     *
+     * @param {Number} position
+     *     The position within the recording to seek to, in milliseconds.
+     *
+     * @param {function} [callback]
+     *     The callback to invoke once the seek operation has completed.
+     */
+    this.seek = function seek(position, callback) {
+
+        // Do not seek if no frames exist
+        if (frames.length === 0)
+            return;
+
+        // Pause playback, preserving playback state
+        var originallyPlaying = recording.isPlaying();
+        recording.pause();
+
+        // Perform seek
+        seekToFrame(findFrame(0, frames.length - 1, position), function restorePlaybackState() {
+
+            // Restore playback state
+            if (originallyPlaying)
+                recording.play();
+
+            // Notify that seek has completed
+            if (callback)
+                callback();
+
+        });
+
+    };
+
+    /**
+     * Pauses playback of the recording, if playback is currently in progress.
+     * If playback is not in progress, this function has no effect. If a seek
+     * operation is in progress, the seek is aborted. Playback is initially
+     * paused when a Guacamole.SessionRecording is created, and must be
+     * explicitly started through a call to play().
+     */
+    this.pause = function pause() {
+
+        // Abort any in-progress seek / playback
+        abortSeek();
+
+        // Stop playback only if playback is in progress
+        if (recording.isPlaying()) {
+
+            // Notify that playback is stopping
+            if (recording.onpause)
+                recording.onpause();
+
+            // Playback is stopped
+            startVideoTimestamp = null;
+            startRealTimestamp = null;
+
+        }
+
+    };
+
+};
+
+/**
+ * A single frame of Guacamole session data. Each frame is made up of the set
+ * of instructions used to generate that frame, and the timestamp as dictated
+ * by the "sync" instruction terminating the frame. Optionally, a frame may
+ * also be associated with a snapshot of Guacamole client state, such that the
+ * frame can be rendered without replaying all previous frames.
+ *
+ * @private
+ * @constructor
+ * @param {Number} timestamp
+ *     The timestamp of this frame, as dictated by the "sync" instruction which
+ *     terminates the frame.
+ *
+ * @param {Guacamole.SessionRecording._Frame.Instruction[]} instructions
+ *     All instructions which are necessary to generate this frame relative to
+ *     the previous frame in the Guacamole session.
+ */
+Guacamole.SessionRecording._Frame = function _Frame(timestamp, instructions) {
+
+    /**
+     * Whether this frame should be used as a keyframe if possible. This value
+     * is purely advisory. The stored clientState must eventually be manually
+     * set for the frame to be used as a keyframe. By default, frames are not
+     * keyframes.
+     *
+     * @type {Boolean}
+     * @default false
+     */
+    this.keyframe = false;
+
+    /**
+     * The timestamp of this frame, as dictated by the "sync" instruction which
+     * terminates the frame.
+     *
+     * @type {Number}
+     */
+    this.timestamp = timestamp;
+
+    /**
+     * All instructions which are necessary to generate this frame relative to
+     * the previous frame in the Guacamole session.
+     *
+     * @type {Guacamole.SessionRecording._Frame.Instruction[]}
+     */
+    this.instructions = instructions;
+
+    /**
+     * A snapshot of client state after this frame was rendered, as returned by
+     * a call to exportState(). If no such snapshot has been taken, this will
+     * be null.
+     *
+     * @type {Object}
+     * @default null
+     */
+    this.clientState = null;
+
+};
+
+/**
+ * A Guacamole protocol instruction. Each Guacamole protocol instruction is
+ * made up of an opcode and set of arguments.
+ *
+ * @private
+ * @constructor
+ * @param {String} opcode
+ *     The opcode of this Guacamole instruction.
+ *
+ * @param {String[]} args
+ *     All arguments associated with this Guacamole instruction.
+ */
+Guacamole.SessionRecording._Frame.Instruction = function Instruction(opcode, args) {
+
+    /**
+     * Reference to this Guacamole.SessionRecording._Frame.Instruction.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._Frame.Instruction}
+     */
+    var instruction = this;
+
+    /**
+     * The opcode of this Guacamole instruction.
+     *
+     * @type {String}
+     */
+    this.opcode = opcode;
+
+    /**
+     * All arguments associated with this Guacamole instruction.
+     *
+     * @type {String[]}
+     */
+    this.args = args;
+
+    /**
+     * Returns the approximate number of characters which make up this
+     * instruction. This value is only approximate as it excludes the length
+     * prefixes and various delimiters used by the Guacamole protocol; only
+     * the content of the opcode and each argument is taken into account.
+     *
+     * @returns {Number}
+     *     The approximate size of this instruction, in characters.
+     */
+    this.getSize = function getSize() {
+
+        // Init with length of opcode
+        var size = instruction.opcode.length;
+
+        // Add length of all arguments
+        for (var i = 0; i &lt; instruction.args.length; i++)
+            size += instruction.args[i].length;
+
+        return size;
+
+    };
+
+};
+
+/**
+ * A read-only Guacamole.Tunnel implementation which streams instructions
+ * received through explicit calls to its receiveInstruction() function.
+ *
+ * @private
+ * @constructor
+ * @augments {Guacamole.Tunnel}
+ */
+Guacamole.SessionRecording._PlaybackTunnel = function _PlaybackTunnel() {
+
+    /**
+     * Reference to this Guacamole.SessionRecording._PlaybackTunnel.
+     *
+     * @private
+     * @type {Guacamole.SessionRecording._PlaybackTunnel}
+     */
+    var tunnel = this;
+
+    this.connect = function connect(data) {
+        // Do nothing
+    };
+
+    this.sendMessage = function sendMessage(elements) {
+        // Do nothing
+    };
+
+    this.disconnect = function disconnect() {
+        // Do nothing
+    };
+
+    /**
+     * Invokes this tunnel's oninstruction handler, notifying users of this
+     * tunnel (such as a Guacamole.Client instance) that an instruction has
+     * been received. If the oninstruction handler has not been set, this
+     * function has no effect.
+     *
+     * @param {String} opcode
+     *     The opcode of the Guacamole instruction.
+     *
+     * @param {String[]} args
+     *     All arguments associated with this Guacamole instruction.
+     */
+    this.receiveInstruction = function receiveInstruction(opcode, args) {
+        if (tunnel.oninstruction)
+            tunnel.oninstruction(opcode, args);
+    };
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Status.js.html b/doc/1.1.0/guacamole-common-js/Status.js.html
new file mode 100644
index 0000000..b41a033
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Status.js.html
@@ -0,0 +1,379 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Status.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Status.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A Guacamole status. Each Guacamole status consists of a status code, defined
+ * by the protocol, and an optional human-readable message, usually only
+ * included for debugging convenience.
+ *
+ * @constructor
+ * @param {Number} code
+ *     The Guacamole status code, as defined by Guacamole.Status.Code.
+ *
+ * @param {String} [message]
+ *     An optional human-readable message.
+ */
+Guacamole.Status = function(code, message) {
+
+    /**
+     * Reference to this Guacamole.Status.
+     * @private
+     */
+    var guac_status = this;
+
+    /**
+     * The Guacamole status code.
+     * @see Guacamole.Status.Code
+     * @type {Number}
+     */
+    this.code = code;
+
+    /**
+     * An arbitrary human-readable message associated with this status, if any.
+     * The human-readable message is not required, and is generally provided
+     * for debugging purposes only. For user feedback, it is better to translate
+     * the Guacamole status code into a message.
+     * 
+     * @type {String}
+     */
+    this.message = message;
+
+    /**
+     * Returns whether this status represents an error.
+     * @returns {Boolean} true if this status represents an error, false
+     *                    otherwise.
+     */
+    this.isError = function() {
+        return guac_status.code &lt; 0 || guac_status.code > 0x00FF;
+    };
+
+};
+
+/**
+ * Enumeration of all Guacamole status codes.
+ */
+Guacamole.Status.Code = {
+
+    /**
+     * The operation succeeded.
+     *
+     * @type {Number}
+     */
+    "SUCCESS": 0x0000,
+
+    /**
+     * The requested operation is unsupported.
+     *
+     * @type {Number}
+     */
+    "UNSUPPORTED": 0x0100,
+
+    /**
+     * The operation could not be performed due to an internal failure.
+     *
+     * @type {Number}
+     */
+    "SERVER_ERROR": 0x0200,
+
+    /**
+     * The operation could not be performed as the server is busy.
+     *
+     * @type {Number}
+     */
+    "SERVER_BUSY": 0x0201,
+
+    /**
+     * The operation could not be performed because the upstream server is not
+     * responding.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_TIMEOUT": 0x0202,
+
+    /**
+     * The operation was unsuccessful due to an error or otherwise unexpected
+     * condition of the upstream server.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_ERROR": 0x0203,
+
+    /**
+     * The operation could not be performed as the requested resource does not
+     * exist.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_NOT_FOUND": 0x0204,
+
+    /**
+     * The operation could not be performed as the requested resource is
+     * already in use.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_CONFLICT": 0x0205,
+
+    /**
+     * The operation could not be performed as the requested resource is now
+     * closed.
+     *
+     * @type {Number}
+     */
+    "RESOURCE_CLOSED": 0x0206,
+
+    /**
+     * The operation could not be performed because the upstream server does
+     * not appear to exist.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_NOT_FOUND": 0x0207,
+
+    /**
+     * The operation could not be performed because the upstream server is not
+     * available to service the request.
+     *
+     * @type {Number}
+     */
+    "UPSTREAM_UNAVAILABLE": 0x0208,
+
+    /**
+     * The session within the upstream server has ended because it conflicted
+     * with another session.
+     *
+     * @type {Number}
+     */
+    "SESSION_CONFLICT": 0x0209,
+
+    /**
+     * The session within the upstream server has ended because it appeared to
+     * be inactive.
+     *
+     * @type {Number}
+     */
+    "SESSION_TIMEOUT": 0x020A,
+
+    /**
+     * The session within the upstream server has been forcibly terminated.
+     *
+     * @type {Number}
+     */
+    "SESSION_CLOSED": 0x020B,
+
+    /**
+     * The operation could not be performed because bad parameters were given.
+     *
+     * @type {Number}
+     */
+    "CLIENT_BAD_REQUEST": 0x0300,
+
+    /**
+     * Permission was denied to perform the operation, as the user is not yet
+     * authorized (not yet logged in, for example).
+     *
+     * @type {Number}
+     */
+    "CLIENT_UNAUTHORIZED": 0x0301,
+
+    /**
+     * Permission was denied to perform the operation, and this permission will
+     * not be granted even if the user is authorized.
+     *
+     * @type {Number}
+     */
+    "CLIENT_FORBIDDEN": 0x0303,
+
+    /**
+     * The client took too long to respond.
+     *
+     * @type {Number}
+     */
+    "CLIENT_TIMEOUT": 0x0308,
+
+    /**
+     * The client sent too much data.
+     *
+     * @type {Number}
+     */
+    "CLIENT_OVERRUN": 0x030D,
+
+    /**
+     * The client sent data of an unsupported or unexpected type.
+     *
+     * @type {Number}
+     */
+    "CLIENT_BAD_TYPE": 0x030F,
+
+    /**
+     * The operation failed because the current client is already using too
+     * many resources.
+     *
+     * @type {Number}
+     */
+    "CLIENT_TOO_MANY": 0x031D
+
+};
+
+/**
+ * Returns the Guacamole protocol status code which most closely
+ * represents the given HTTP status code.
+ *
+ * @param {Number} status
+ *     The HTTP status code to translate into a Guacamole protocol status
+ *     code.
+ *
+ * @returns {Number}
+ *     The Guacamole protocol status code which most closely represents the
+ *     given HTTP status code.
+ */
+Guacamole.Status.Code.fromHTTPCode = function fromHTTPCode(status) {
+
+    // Translate status codes with known equivalents
+    switch (status) {
+
+        // HTTP 400 - Bad request
+        case 400:
+            return Guacamole.Status.Code.CLIENT_BAD_REQUEST;
+
+        // HTTP 403 - Forbidden
+        case 403:
+            return Guacamole.Status.Code.CLIENT_FORBIDDEN;
+
+        // HTTP 404 - Resource not found
+        case 404:
+            return Guacamole.Status.Code.RESOURCE_NOT_FOUND;
+
+        // HTTP 429 - Too many requests
+        case 429:
+            return Guacamole.Status.Code.CLIENT_TOO_MANY;
+
+        // HTTP 503 - Server unavailable
+        case 503:
+            return Guacamole.Status.Code.SERVER_BUSY;
+
+    }
+
+    // Default all other codes to generic internal error
+    return Guacamole.Status.Code.SERVER_ERROR;
+
+};
+
+/**
+ * Returns the Guacamole protocol status code which most closely
+ * represents the given WebSocket status code.
+ *
+ * @param {Number} code
+ *     The WebSocket status code to translate into a Guacamole protocol
+ *     status code.
+ *
+ * @returns {Number}
+ *     The Guacamole protocol status code which most closely represents the
+ *     given WebSocket status code.
+ */
+Guacamole.Status.Code.fromWebSocketCode = function fromWebSocketCode(code) {
+
+    // Translate status codes with known equivalents
+    switch (code) {
+
+        // Successful disconnect (no error)
+        case 1000: // Normal Closure
+            return Guacamole.Status.Code.SUCCESS;
+
+        // Codes which indicate the server is not reachable
+        case 1006: // Abnormal Closure (also signalled by JavaScript when the connection cannot be opened in the first place)
+        case 1015: // TLS Handshake
+            return Guacamole.Status.Code.UPSTREAM_NOT_FOUND;
+
+        // Codes which indicate the server is reachable but busy/unavailable
+        case 1001: // Going Away
+        case 1012: // Service Restart
+        case 1013: // Try Again Later
+        case 1014: // Bad Gateway
+            return Guacamole.Status.Code.UPSTREAM_UNAVAILABLE;
+
+    }
+
+    // Default all other codes to generic internal error
+    return Guacamole.Status.Code.SERVER_ERROR;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/StringReader.js.html b/doc/1.1.0/guacamole-common-js/StringReader.js.html
new file mode 100644
index 0000000..8fab3da
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/StringReader.js.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: StringReader.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: StringReader.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A reader which automatically handles the given input stream, returning
+ * strictly text data. Note that this object will overwrite any installed event
+ * handlers on the given Guacamole.InputStream.
+ * 
+ * @constructor
+ * @param {Guacamole.InputStream} stream The stream that data will be read
+ *                                       from.
+ */
+Guacamole.StringReader = function(stream) {
+
+    /**
+     * Reference to this Guacamole.InputStream.
+     * @private
+     */
+    var guac_reader = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferReader.
+     * @private
+     * @type {Guacamole.ArrayBufferReader}
+     */
+    var array_reader = new Guacamole.ArrayBufferReader(stream);
+
+    /**
+     * The number of bytes remaining for the current codepoint.
+     *
+     * @private
+     * @type {Number}
+     */
+    var bytes_remaining = 0;
+
+    /**
+     * The current codepoint value, as calculated from bytes read so far.
+     *
+     * @private
+     * @type {Number}
+     */
+    var codepoint = 0;
+
+    /**
+     * Decodes the given UTF-8 data into a Unicode string. The data may end in
+     * the middle of a multibyte character.
+     * 
+     * @private
+     * @param {ArrayBuffer} buffer Arbitrary UTF-8 data.
+     * @return {String} A decoded Unicode string.
+     */
+    function __decode_utf8(buffer) {
+
+        var text = "";
+
+        var bytes = new Uint8Array(buffer);
+        for (var i=0; i&lt;bytes.length; i++) {
+
+            // Get current byte
+            var value = bytes[i];
+
+            // Start new codepoint if nothing yet read
+            if (bytes_remaining === 0) {
+
+                // 1 byte (0xxxxxxx)
+                if ((value | 0x7F) === 0x7F)
+                    text += String.fromCharCode(value);
+
+                // 2 byte (110xxxxx)
+                else if ((value | 0x1F) === 0xDF) {
+                    codepoint = value &amp; 0x1F;
+                    bytes_remaining = 1;
+                }
+
+                // 3 byte (1110xxxx)
+                else if ((value | 0x0F )=== 0xEF) {
+                    codepoint = value &amp; 0x0F;
+                    bytes_remaining = 2;
+                }
+
+                // 4 byte (11110xxx)
+                else if ((value | 0x07) === 0xF7) {
+                    codepoint = value &amp; 0x07;
+                    bytes_remaining = 3;
+                }
+
+                // Invalid byte
+                else
+                    text += "\uFFFD";
+
+            }
+
+            // Continue existing codepoint (10xxxxxx)
+            else if ((value | 0x3F) === 0xBF) {
+
+                codepoint = (codepoint &lt;&lt; 6) | (value &amp; 0x3F);
+                bytes_remaining--;
+
+                // Write codepoint if finished
+                if (bytes_remaining === 0)
+                    text += String.fromCharCode(codepoint);
+
+            }
+
+            // Invalid byte
+            else {
+                bytes_remaining = 0;
+                text += "\uFFFD";
+            }
+
+        }
+
+        return text;
+
+    }
+
+    // Receive blobs as strings
+    array_reader.ondata = function(buffer) {
+
+        // Decode UTF-8
+        var text = __decode_utf8(buffer);
+
+        // Call handler, if present
+        if (guac_reader.ontext)
+            guac_reader.ontext(text);
+
+    };
+
+    // Simply call onend when end received
+    array_reader.onend = function() {
+        if (guac_reader.onend)
+            guac_reader.onend();
+    };
+
+    /**
+     * Fired once for every blob of text data received.
+     * 
+     * @event
+     * @param {String} text The data packet received.
+     */
+    this.ontext = null;
+
+    /**
+     * Fired once this stream is finished and no further data will be written.
+     * @event
+     */
+    this.onend = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/StringWriter.js.html b/doc/1.1.0/guacamole-common-js/StringWriter.js.html
new file mode 100644
index 0000000..293a020
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/StringWriter.js.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: StringWriter.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: StringWriter.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * A writer which automatically writes to the given output stream with text
+ * data.
+ * 
+ * @constructor
+ * @param {Guacamole.OutputStream} stream The stream that data will be written
+ *                                        to.
+ */
+Guacamole.StringWriter = function(stream) {
+
+    /**
+     * Reference to this Guacamole.StringWriter.
+     * @private
+     */
+    var guac_writer = this;
+
+    /**
+     * Wrapped Guacamole.ArrayBufferWriter.
+     * @private
+     * @type {Guacamole.ArrayBufferWriter}
+     */
+    var array_writer = new Guacamole.ArrayBufferWriter(stream);
+
+    /**
+     * Internal buffer for UTF-8 output.
+     * @private
+     */
+    var buffer = new Uint8Array(8192);
+
+    /**
+     * The number of bytes currently in the buffer.
+     * @private
+     */
+    var length = 0;
+
+    // Simply call onack for acknowledgements
+    array_writer.onack = function(status) {
+        if (guac_writer.onack)
+            guac_writer.onack(status);
+    };
+
+    /**
+     * Expands the size of the underlying buffer by the given number of bytes,
+     * updating the length appropriately.
+     * 
+     * @private
+     * @param {Number} bytes The number of bytes to add to the underlying
+     *                       buffer.
+     */
+    function __expand(bytes) {
+
+        // Resize buffer if more space needed
+        if (length+bytes >= buffer.length) {
+            var new_buffer = new Uint8Array((length+bytes)*2);
+            new_buffer.set(buffer);
+            buffer = new_buffer;
+        }
+
+        length += bytes;
+
+    }
+
+    /**
+     * Appends a single Unicode character to the current buffer, resizing the
+     * buffer if necessary. The character will be encoded as UTF-8.
+     * 
+     * @private
+     * @param {Number} codepoint The codepoint of the Unicode character to
+     *                           append.
+     */
+    function __append_utf8(codepoint) {
+
+        var mask;
+        var bytes;
+
+        // 1 byte
+        if (codepoint &lt;= 0x7F) {
+            mask = 0x00;
+            bytes = 1;
+        }
+
+        // 2 byte
+        else if (codepoint &lt;= 0x7FF) {
+            mask = 0xC0;
+            bytes = 2;
+        }
+
+        // 3 byte
+        else if (codepoint &lt;= 0xFFFF) {
+            mask = 0xE0;
+            bytes = 3;
+        }
+
+        // 4 byte
+        else if (codepoint &lt;= 0x1FFFFF) {
+            mask = 0xF0;
+            bytes = 4;
+        }
+
+        // If invalid codepoint, append replacement character
+        else {
+            __append_utf8(0xFFFD);
+            return;
+        }
+
+        // Offset buffer by size
+        __expand(bytes);
+        var offset = length - 1;
+
+        // Add trailing bytes, if any
+        for (var i=1; i&lt;bytes; i++) {
+            buffer[offset--] = 0x80 | (codepoint &amp; 0x3F);
+            codepoint >>= 6;
+        }
+
+        // Set initial byte
+        buffer[offset] = mask | codepoint;
+
+    }
+
+    /**
+     * Encodes the given string as UTF-8, returning an ArrayBuffer containing
+     * the resulting bytes.
+     * 
+     * @private
+     * @param {String} text The string to encode as UTF-8.
+     * @return {Uint8Array} The encoded UTF-8 data.
+     */
+    function __encode_utf8(text) {
+
+        // Fill buffer with UTF-8
+        for (var i=0; i&lt;text.length; i++) {
+            var codepoint = text.charCodeAt(i);
+            __append_utf8(codepoint);
+        }
+
+        // Flush buffer
+        if (length > 0) {
+            var out_buffer = buffer.subarray(0, length);
+            length = 0;
+            return out_buffer;
+        }
+
+    }
+
+    /**
+     * Sends the given text.
+     * 
+     * @param {String} text The text to send.
+     */
+    this.sendText = function(text) {
+        if (text.length)
+            array_writer.sendData(__encode_utf8(text));
+    };
+
+    /**
+     * Signals that no further text will be sent, effectively closing the
+     * stream.
+     */
+    this.sendEnd = function() {
+        array_writer.sendEnd();
+    };
+
+    /**
+     * Fired for received data, if acknowledged by the server.
+     * @event
+     * @param {Guacamole.Status} status The status of the operation.
+     */
+    this.onack = null;
+
+};</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Tunnel.js.html b/doc/1.1.0/guacamole-common-js/Tunnel.js.html
new file mode 100644
index 0000000..9f29d03
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Tunnel.js.html
@@ -0,0 +1,1445 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Tunnel.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Tunnel.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Core object providing abstract communication for Guacamole. This object
+ * is a null implementation whose functions do nothing. Guacamole applications
+ * should use {@link Guacamole.HTTPTunnel} instead, or implement their own tunnel based
+ * on this one.
+ * 
+ * @constructor
+ * @see Guacamole.HTTPTunnel
+ */
+Guacamole.Tunnel = function() {
+
+    /**
+     * Connect to the tunnel with the given optional data. This data is
+     * typically used for authentication. The format of data accepted is
+     * up to the tunnel implementation.
+     * 
+     * @param {String} data The data to send to the tunnel when connecting.
+     */
+    this.connect = function(data) {};
+    
+    /**
+     * Disconnect from the tunnel.
+     */
+    this.disconnect = function() {};
+    
+    /**
+     * Send the given message through the tunnel to the service on the other
+     * side. All messages are guaranteed to be received in the order sent.
+     * 
+     * @param {...*} elements
+     *     The elements of the message to send to the service on the other side
+     *     of the tunnel.
+     */
+    this.sendMessage = function(elements) {};
+
+    /**
+     * Changes the stored numeric state of this tunnel, firing the onstatechange
+     * event if the new state is different and a handler has been defined.
+     *
+     * @private
+     * @param {Number} state
+     *     The new state of this tunnel.
+     */
+    this.setState = function(state) {
+
+        // Notify only if state changes
+        if (state !== this.state) {
+            this.state = state;
+            if (this.onstatechange)
+                this.onstatechange(state);
+        }
+
+    };
+
+    /**
+     * Returns whether this tunnel is currently connected.
+     *
+     * @returns {Boolean}
+     *     true if this tunnel is currently connected, false otherwise.
+     */
+    this.isConnected = function isConnected() {
+        return this.state === Guacamole.Tunnel.State.OPEN
+            || this.state === Guacamole.Tunnel.State.UNSTABLE;
+    };
+
+    /**
+     * The current state of this tunnel.
+     * 
+     * @type {Number}
+     */
+    this.state = Guacamole.Tunnel.State.CONNECTING;
+
+    /**
+     * The maximum amount of time to wait for data to be received, in
+     * milliseconds. If data is not received within this amount of time,
+     * the tunnel is closed with an error. The default value is 15000.
+     *
+     * @type {Number}
+     */
+    this.receiveTimeout = 15000;
+
+    /**
+     * The amount of time to wait for data to be received before considering
+     * the connection to be unstable, in milliseconds. If data is not received
+     * within this amount of time, the tunnel status is updated to warn that
+     * the connection appears unresponsive and may close. The default value is
+     * 1500.
+     * 
+     * @type {Number}
+     */
+    this.unstableThreshold = 1500;
+
+    /**
+     * The UUID uniquely identifying this tunnel. If not yet known, this will
+     * be null.
+     *
+     * @type {String}
+     */
+    this.uuid = null;
+
+    /**
+     * Fired whenever an error is encountered by the tunnel.
+     * 
+     * @event
+     * @param {Guacamole.Status} status A status object which describes the
+     *                                  error.
+     */
+    this.onerror = null;
+
+    /**
+     * Fired whenever the state of the tunnel changes.
+     * 
+     * @event
+     * @param {Number} state The new state of the client.
+     */
+    this.onstatechange = null;
+
+    /**
+     * Fired once for every complete Guacamole instruction received, in order.
+     * 
+     * @event
+     * @param {String} opcode The Guacamole instruction opcode.
+     * @param {Array} parameters The parameters provided for the instruction,
+     *                           if any.
+     */
+    this.oninstruction = null;
+
+};
+
+/**
+ * The Guacamole protocol instruction opcode reserved for arbitrary internal
+ * use by tunnel implementations. The value of this opcode is guaranteed to be
+ * the empty string (""). Tunnel implementations may use this opcode for any
+ * purpose. It is currently used by the HTTP tunnel to mark the end of the HTTP
+ * response, and by the WebSocket tunnel to transmit the tunnel UUID and send
+ * connection stability test pings/responses.
+ *
+ * @constant
+ * @type {String}
+ */
+Guacamole.Tunnel.INTERNAL_DATA_OPCODE = '';
+
+/**
+ * All possible tunnel states.
+ */
+Guacamole.Tunnel.State = {
+
+    /**
+     * A connection is in pending. It is not yet known whether connection was
+     * successful.
+     * 
+     * @type {Number}
+     */
+    "CONNECTING": 0,
+
+    /**
+     * Connection was successful, and data is being received.
+     * 
+     * @type {Number}
+     */
+    "OPEN": 1,
+
+    /**
+     * The connection is closed. Connection may not have been successful, the
+     * tunnel may have been explicitly closed by either side, or an error may
+     * have occurred.
+     * 
+     * @type {Number}
+     */
+    "CLOSED": 2,
+
+    /**
+     * The connection is open, but communication through the tunnel appears to
+     * be disrupted, and the connection may close as a result.
+     *
+     * @type {Number}
+     */
+    "UNSTABLE" : 3
+
+};
+
+/**
+ * Guacamole Tunnel implemented over HTTP via XMLHttpRequest.
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ *
+ * @param {String} tunnelURL
+ *     The URL of the HTTP tunneling service.
+ *
+ * @param {Boolean} [crossDomain=false]
+ *     Whether tunnel requests will be cross-domain, and thus must use CORS
+ *     mechanisms and headers. By default, it is assumed that tunnel requests
+ *     will be made to the same domain.
+ *
+ * @param {Object} [extraTunnelHeaders={}]
+ *     Key value pairs containing the header names and values of any additional
+ *     headers to be sent in tunnel requests. By default, no extra headers will
+ *     be added.
+ */
+Guacamole.HTTPTunnel = function(tunnelURL, crossDomain, extraTunnelHeaders) {
+
+    /**
+     * Reference to this HTTP tunnel.
+     * @private
+     */
+    var tunnel = this;
+
+    var TUNNEL_CONNECT = tunnelURL + "?connect";
+    var TUNNEL_READ    = tunnelURL + "?read:";
+    var TUNNEL_WRITE   = tunnelURL + "?write:";
+
+    var POLLING_ENABLED     = 1;
+    var POLLING_DISABLED    = 0;
+
+    // Default to polling - will be turned off automatically if not needed
+    var pollingMode = POLLING_ENABLED;
+
+    var sendingMessages = false;
+    var outputMessageBuffer = "";
+
+    // If requests are expected to be cross-domain, the cookie that the HTTP
+    // tunnel depends on will only be sent if withCredentials is true
+    var withCredentials = !!crossDomain;
+
+    /**
+     * The current receive timeout ID, if any.
+     * @private
+     */
+    var receive_timeout = null;
+
+    /**
+     * The current connection stability timeout ID, if any.
+     *
+     * @private
+     * @type {Number}
+     */
+    var unstableTimeout = null;
+
+    /**
+     * The current connection stability test ping interval ID, if any. This
+     * will only be set upon successful connection.
+     *
+     * @private
+     * @type {Number}
+     */
+    var pingInterval = null;
+
+    /**
+     * The number of milliseconds to wait between connection stability test
+     * pings.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var PING_FREQUENCY = 500;
+
+    /**
+     * Additional headers to be sent in tunnel requests. This dictionary can be
+     * populated with key/value header pairs to pass information such as authentication
+     * tokens, etc.
+     *
+     * @private
+     */
+    var extraHeaders = extraTunnelHeaders || {};
+
+    /**
+     * Adds the configured additional headers to the given request.
+     *
+     * @param {XMLHttpRequest} request
+     *     The request where the configured extra headers will be added.
+     *
+     * @param {Object} headers
+     *     The headers to be added to the request.
+     *
+     * @private
+     */
+    function addExtraHeaders(request, headers) {
+        for (var name in headers) {
+            request.setRequestHeader(name, headers[name]);
+        }
+    }
+
+    /**
+     * Initiates a timeout which, if data is not received, causes the tunnel
+     * to close with an error.
+     * 
+     * @private
+     */
+    function reset_timeout() {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Clear unstable status
+        if (tunnel.state === Guacamole.Tunnel.State.UNSTABLE)
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+        // Set new timeout for tracking overall connection timeout
+        receive_timeout = window.setTimeout(function () {
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_TIMEOUT, "Server timeout."));
+        }, tunnel.receiveTimeout);
+
+        // Set new timeout for tracking suspected connection instability
+        unstableTimeout = window.setTimeout(function() {
+            tunnel.setState(Guacamole.Tunnel.State.UNSTABLE);
+        }, tunnel.unstableThreshold);
+
+    }
+
+    /**
+     * Closes this tunnel, signaling the given status and corresponding
+     * message, which will be sent to the onerror handler if the status is
+     * an error status.
+     * 
+     * @private
+     * @param {Guacamole.Status} status The status causing the connection to
+     *                                  close;
+     */
+    function close_tunnel(status) {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Cease connection test pings
+        window.clearInterval(pingInterval);
+
+        // Ignore if already closed
+        if (tunnel.state === Guacamole.Tunnel.State.CLOSED)
+            return;
+
+        // If connection closed abnormally, signal error.
+        if (status.code !== Guacamole.Status.Code.SUCCESS &amp;&amp; tunnel.onerror) {
+
+            // Ignore RESOURCE_NOT_FOUND if we've already connected, as that
+            // only signals end-of-stream for the HTTP tunnel.
+            if (tunnel.state === Guacamole.Tunnel.State.CONNECTING
+                    || status.code !== Guacamole.Status.Code.RESOURCE_NOT_FOUND)
+                tunnel.onerror(status);
+
+        }
+
+        // Reset output message buffer
+        sendingMessages = false;
+
+        // Mark as closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+    }
+
+
+    this.sendMessage = function() {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        // Do not attempt to send empty messages
+        if (arguments.length === 0)
+            return;
+
+        /**
+         * Converts the given value to a length/string pair for use as an
+         * element in a Guacamole instruction.
+         * 
+         * @private
+         * @param value The value to convert.
+         * @return {String} The converted value. 
+         */
+        function getElement(value) {
+            var string = new String(value);
+            return string.length + "." + string; 
+        }
+
+        // Initialized message with first element
+        var message = getElement(arguments[0]);
+
+        // Append remaining elements
+        for (var i=1; i&lt;arguments.length; i++)
+            message += "," + getElement(arguments[i]);
+
+        // Final terminator
+        message += ";";
+
+        // Add message to buffer
+        outputMessageBuffer += message;
+
+        // Send if not currently sending
+        if (!sendingMessages)
+            sendPendingMessages();
+
+    };
+
+    function sendPendingMessages() {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        if (outputMessageBuffer.length > 0) {
+
+            sendingMessages = true;
+
+            var message_xmlhttprequest = new XMLHttpRequest();
+            message_xmlhttprequest.open("POST", TUNNEL_WRITE + tunnel.uuid);
+            message_xmlhttprequest.withCredentials = withCredentials;
+            addExtraHeaders(message_xmlhttprequest, extraHeaders);
+            message_xmlhttprequest.setRequestHeader("Content-type", "application/octet-stream");
+
+            // Once response received, send next queued event.
+            message_xmlhttprequest.onreadystatechange = function() {
+                if (message_xmlhttprequest.readyState === 4) {
+
+                    reset_timeout();
+
+                    // If an error occurs during send, handle it
+                    if (message_xmlhttprequest.status !== 200)
+                        handleHTTPTunnelError(message_xmlhttprequest);
+
+                    // Otherwise, continue the send loop
+                    else
+                        sendPendingMessages();
+
+                }
+            };
+
+            message_xmlhttprequest.send(outputMessageBuffer);
+            outputMessageBuffer = ""; // Clear buffer
+
+        }
+        else
+            sendingMessages = false;
+
+    }
+
+    function handleHTTPTunnelError(xmlhttprequest) {
+
+        // Pull status code directly from headers provided by Guacamole
+        var code = parseInt(xmlhttprequest.getResponseHeader("Guacamole-Status-Code"));
+        if (code) {
+            var message = xmlhttprequest.getResponseHeader("Guacamole-Error-Message");
+            close_tunnel(new Guacamole.Status(code, message));
+        }
+
+        // Failing that, derive a Guacamole status code from the HTTP status
+        // code provided by the browser
+        else if (xmlhttprequest.status)
+            close_tunnel(new Guacamole.Status(
+                Guacamole.Status.Code.fromHTTPCode(xmlhttprequest.status),
+                    xmlhttprequest.statusText));
+
+        // Otherwise, assume server is unreachable
+        else
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_NOT_FOUND));
+
+    }
+
+    function handleResponse(xmlhttprequest) {
+
+        var interval = null;
+        var nextRequest = null;
+
+        var dataUpdateEvents = 0;
+
+        // The location of the last element's terminator
+        var elementEnd = -1;
+
+        // Where to start the next length search or the next element
+        var startIndex = 0;
+
+        // Parsed elements
+        var elements = new Array();
+
+        function parseResponse() {
+
+            // Do not handle responses if not connected
+            if (!tunnel.isConnected()) {
+                
+                // Clean up interval if polling
+                if (interval !== null)
+                    clearInterval(interval);
+                
+                return;
+            }
+
+            // Do not parse response yet if not ready
+            if (xmlhttprequest.readyState &lt; 2) return;
+
+            // Attempt to read status
+            var status;
+            try { status = xmlhttprequest.status; }
+
+            // If status could not be read, assume successful.
+            catch (e) { status = 200; }
+
+            // Start next request as soon as possible IF request was successful
+            if (!nextRequest &amp;&amp; status === 200)
+                nextRequest = makeRequest();
+
+            // Parse stream when data is received and when complete.
+            if (xmlhttprequest.readyState === 3 ||
+                xmlhttprequest.readyState === 4) {
+
+                reset_timeout();
+
+                // Also poll every 30ms (some browsers don't repeatedly call onreadystatechange for new data)
+                if (pollingMode === POLLING_ENABLED) {
+                    if (xmlhttprequest.readyState === 3 &amp;&amp; !interval)
+                        interval = setInterval(parseResponse, 30);
+                    else if (xmlhttprequest.readyState === 4 &amp;&amp; interval)
+                        clearInterval(interval);
+                }
+
+                // If canceled, stop transfer
+                if (xmlhttprequest.status === 0) {
+                    tunnel.disconnect();
+                    return;
+                }
+
+                // Halt on error during request
+                else if (xmlhttprequest.status !== 200) {
+                    handleHTTPTunnelError(xmlhttprequest);
+                    return;
+                }
+
+                // Attempt to read in-progress data
+                var current;
+                try { current = xmlhttprequest.responseText; }
+
+                // Do not attempt to parse if data could not be read
+                catch (e) { return; }
+
+                // While search is within currently received data
+                while (elementEnd &lt; current.length) {
+
+                    // If we are waiting for element data
+                    if (elementEnd >= startIndex) {
+
+                        // We now have enough data for the element. Parse.
+                        var element = current.substring(startIndex, elementEnd);
+                        var terminator = current.substring(elementEnd, elementEnd+1);
+
+                        // Add element to array
+                        elements.push(element);
+
+                        // If last element, handle instruction
+                        if (terminator === ";") {
+
+                            // Get opcode
+                            var opcode = elements.shift();
+
+                            // Call instruction handler.
+                            if (tunnel.oninstruction)
+                                tunnel.oninstruction(opcode, elements);
+
+                            // Clear elements
+                            elements.length = 0;
+
+                        }
+
+                        // Start searching for length at character after
+                        // element terminator
+                        startIndex = elementEnd + 1;
+
+                    }
+
+                    // Search for end of length
+                    var lengthEnd = current.indexOf(".", startIndex);
+                    if (lengthEnd !== -1) {
+
+                        // Parse length
+                        var length = parseInt(current.substring(elementEnd+1, lengthEnd));
+
+                        // If we're done parsing, handle the next response.
+                        if (length === 0) {
+
+                            // Clean up interval if polling
+                            if (interval)
+                                clearInterval(interval);
+                           
+                            // Clean up object
+                            xmlhttprequest.onreadystatechange = null;
+                            xmlhttprequest.abort();
+
+                            // Start handling next request
+                            if (nextRequest)
+                                handleResponse(nextRequest);
+
+                            // Done parsing
+                            break;
+
+                        }
+
+                        // Calculate start of element
+                        startIndex = lengthEnd + 1;
+
+                        // Calculate location of element terminator
+                        elementEnd = startIndex + length;
+
+                    }
+                    
+                    // If no period yet, continue search when more data
+                    // is received
+                    else {
+                        startIndex = current.length;
+                        break;
+                    }
+
+                } // end parse loop
+
+            }
+
+        }
+
+        // If response polling enabled, attempt to detect if still
+        // necessary (via wrapping parseResponse())
+        if (pollingMode === POLLING_ENABLED) {
+            xmlhttprequest.onreadystatechange = function() {
+
+                // If we receive two or more readyState==3 events,
+                // there is no need to poll.
+                if (xmlhttprequest.readyState === 3) {
+                    dataUpdateEvents++;
+                    if (dataUpdateEvents >= 2) {
+                        pollingMode = POLLING_DISABLED;
+                        xmlhttprequest.onreadystatechange = parseResponse;
+                    }
+                }
+
+                parseResponse();
+            };
+        }
+
+        // Otherwise, just parse
+        else
+            xmlhttprequest.onreadystatechange = parseResponse;
+
+        parseResponse();
+
+    }
+
+    /**
+     * Arbitrary integer, unique for each tunnel read request.
+     * @private
+     */
+    var request_id = 0;
+
+    function makeRequest() {
+
+        // Make request, increment request ID
+        var xmlhttprequest = new XMLHttpRequest();
+        xmlhttprequest.open("GET", TUNNEL_READ + tunnel.uuid + ":" + (request_id++));
+        xmlhttprequest.withCredentials = withCredentials;
+        addExtraHeaders(xmlhttprequest, extraHeaders);
+        xmlhttprequest.send(null);
+
+        return xmlhttprequest;
+
+    }
+
+    this.connect = function(data) {
+
+        // Start waiting for connect
+        reset_timeout();
+
+        // Mark the tunnel as connecting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Start tunnel and connect
+        var connect_xmlhttprequest = new XMLHttpRequest();
+        connect_xmlhttprequest.onreadystatechange = function() {
+
+            if (connect_xmlhttprequest.readyState !== 4)
+                return;
+
+            // If failure, throw error
+            if (connect_xmlhttprequest.status !== 200) {
+                handleHTTPTunnelError(connect_xmlhttprequest);
+                return;
+            }
+
+            reset_timeout();
+
+            // Get UUID from response
+            tunnel.uuid = connect_xmlhttprequest.responseText;
+
+            // Mark as open
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+            // Ping tunnel endpoint regularly to test connection stability
+            pingInterval = setInterval(function sendPing() {
+                tunnel.sendMessage("nop");
+            }, PING_FREQUENCY);
+
+            // Start reading data
+            handleResponse(makeRequest());
+
+        };
+
+        connect_xmlhttprequest.open("POST", TUNNEL_CONNECT, true);
+        connect_xmlhttprequest.withCredentials = withCredentials;
+        addExtraHeaders(connect_xmlhttprequest, extraHeaders);
+        connect_xmlhttprequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
+        connect_xmlhttprequest.send(data);
+
+    };
+
+    this.disconnect = function() {
+        close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SUCCESS, "Manually closed."));
+    };
+
+};
+
+Guacamole.HTTPTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel implemented over WebSocket via XMLHttpRequest.
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {String} tunnelURL The URL of the WebSocket tunneling service.
+ */
+Guacamole.WebSocketTunnel = function(tunnelURL) {
+
+    /**
+     * Reference to this WebSocket tunnel.
+     * @private
+     */
+    var tunnel = this;
+
+    /**
+     * The WebSocket used by this tunnel.
+     * @private
+     */
+    var socket = null;
+
+    /**
+     * The current receive timeout ID, if any.
+     * @private
+     */
+    var receive_timeout = null;
+
+    /**
+     * The current connection stability timeout ID, if any.
+     *
+     * @private
+     * @type {Number}
+     */
+    var unstableTimeout = null;
+
+    /**
+     * The current connection stability test ping interval ID, if any. This
+     * will only be set upon successful connection.
+     *
+     * @private
+     * @type {Number}
+     */
+    var pingInterval = null;
+
+    /**
+     * The WebSocket protocol corresponding to the protocol used for the current
+     * location.
+     * @private
+     */
+    var ws_protocol = {
+        "http:":  "ws:",
+        "https:": "wss:"
+    };
+
+    /**
+     * The number of milliseconds to wait between connection stability test
+     * pings.
+     *
+     * @private
+     * @constant
+     * @type {Number}
+     */
+    var PING_FREQUENCY = 500;
+
+    // Transform current URL to WebSocket URL
+
+    // If not already a websocket URL
+    if (   tunnelURL.substring(0, 3) !== "ws:"
+        &amp;&amp; tunnelURL.substring(0, 4) !== "wss:") {
+
+        var protocol = ws_protocol[window.location.protocol];
+
+        // If absolute URL, convert to absolute WS URL
+        if (tunnelURL.substring(0, 1) === "/")
+            tunnelURL =
+                protocol
+                + "//" + window.location.host
+                + tunnelURL;
+
+        // Otherwise, construct absolute from relative URL
+        else {
+
+            // Get path from pathname
+            var slash = window.location.pathname.lastIndexOf("/");
+            var path  = window.location.pathname.substring(0, slash + 1);
+
+            // Construct absolute URL
+            tunnelURL =
+                protocol
+                + "//" + window.location.host
+                + path
+                + tunnelURL;
+
+        }
+
+    }
+
+    /**
+     * Initiates a timeout which, if data is not received, causes the tunnel
+     * to close with an error.
+     * 
+     * @private
+     */
+    function reset_timeout() {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Clear unstable status
+        if (tunnel.state === Guacamole.Tunnel.State.UNSTABLE)
+            tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+        // Set new timeout for tracking overall connection timeout
+        receive_timeout = window.setTimeout(function () {
+            close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_TIMEOUT, "Server timeout."));
+        }, tunnel.receiveTimeout);
+
+        // Set new timeout for tracking suspected connection instability
+        unstableTimeout = window.setTimeout(function() {
+            tunnel.setState(Guacamole.Tunnel.State.UNSTABLE);
+        }, tunnel.unstableThreshold);
+
+    }
+
+    /**
+     * Closes this tunnel, signaling the given status and corresponding
+     * message, which will be sent to the onerror handler if the status is
+     * an error status.
+     * 
+     * @private
+     * @param {Guacamole.Status} status The status causing the connection to
+     *                                  close;
+     */
+    function close_tunnel(status) {
+
+        // Get rid of old timeouts (if any)
+        window.clearTimeout(receive_timeout);
+        window.clearTimeout(unstableTimeout);
+
+        // Cease connection test pings
+        window.clearInterval(pingInterval);
+
+        // Ignore if already closed
+        if (tunnel.state === Guacamole.Tunnel.State.CLOSED)
+            return;
+
+        // If connection closed abnormally, signal error.
+        if (status.code !== Guacamole.Status.Code.SUCCESS &amp;&amp; tunnel.onerror)
+            tunnel.onerror(status);
+
+        // Mark as closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+        socket.close();
+
+    }
+
+    this.sendMessage = function(elements) {
+
+        // Do not attempt to send messages if not connected
+        if (!tunnel.isConnected())
+            return;
+
+        // Do not attempt to send empty messages
+        if (arguments.length === 0)
+            return;
+
+        /**
+         * Converts the given value to a length/string pair for use as an
+         * element in a Guacamole instruction.
+         * 
+         * @private
+         * @param value The value to convert.
+         * @return {String} The converted value. 
+         */
+        function getElement(value) {
+            var string = new String(value);
+            return string.length + "." + string; 
+        }
+
+        // Initialized message with first element
+        var message = getElement(arguments[0]);
+
+        // Append remaining elements
+        for (var i=1; i&lt;arguments.length; i++)
+            message += "," + getElement(arguments[i]);
+
+        // Final terminator
+        message += ";";
+
+        socket.send(message);
+
+    };
+
+    this.connect = function(data) {
+
+        reset_timeout();
+
+        // Mark the tunnel as connecting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Connect socket
+        socket = new WebSocket(tunnelURL + "?" + data, "guacamole");
+
+        socket.onopen = function(event) {
+            reset_timeout();
+
+            // Ping tunnel endpoint regularly to test connection stability
+            pingInterval = setInterval(function sendPing() {
+                tunnel.sendMessage(Guacamole.Tunnel.INTERNAL_DATA_OPCODE,
+                    "ping", new Date().getTime());
+            }, PING_FREQUENCY);
+
+        };
+
+        socket.onclose = function(event) {
+
+            // Pull status code directly from closure reason provided by Guacamole
+            if (event.reason)
+                close_tunnel(new Guacamole.Status(parseInt(event.reason), event.reason));
+
+            // Failing that, derive a Guacamole status code from the WebSocket
+            // status code provided by the browser
+            else if (event.code)
+                close_tunnel(new Guacamole.Status(Guacamole.Status.Code.fromWebSocketCode(event.code)));
+
+            // Otherwise, assume server is unreachable
+            else
+                close_tunnel(new Guacamole.Status(Guacamole.Status.Code.UPSTREAM_NOT_FOUND));
+
+        };
+        
+        socket.onmessage = function(event) {
+
+            reset_timeout();
+
+            var message = event.data;
+            var startIndex = 0;
+            var elementEnd;
+
+            var elements = [];
+
+            do {
+
+                // Search for end of length
+                var lengthEnd = message.indexOf(".", startIndex);
+                if (lengthEnd !== -1) {
+
+                    // Parse length
+                    var length = parseInt(message.substring(elementEnd+1, lengthEnd));
+
+                    // Calculate start of element
+                    startIndex = lengthEnd + 1;
+
+                    // Calculate location of element terminator
+                    elementEnd = startIndex + length;
+
+                }
+                
+                // If no period, incomplete instruction.
+                else
+                    close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SERVER_ERROR, "Incomplete instruction."));
+
+                // We now have enough data for the element. Parse.
+                var element = message.substring(startIndex, elementEnd);
+                var terminator = message.substring(elementEnd, elementEnd+1);
+
+                // Add element to array
+                elements.push(element);
+
+                // If last element, handle instruction
+                if (terminator === ";") {
+
+                    // Get opcode
+                    var opcode = elements.shift();
+
+                    // Update state and UUID when first instruction received
+                    if (tunnel.state === Guacamole.Tunnel.State.CONNECTING) {
+
+                        // Associate tunnel UUID if received
+                        if (opcode === Guacamole.Tunnel.INTERNAL_DATA_OPCODE)
+                            tunnel.uuid = elements[0];
+
+                        // Tunnel is now open and UUID is available
+                        tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+                    }
+
+                    // Call instruction handler.
+                    if (opcode !== Guacamole.Tunnel.INTERNAL_DATA_OPCODE &amp;&amp; tunnel.oninstruction)
+                        tunnel.oninstruction(opcode, elements);
+
+                    // Clear elements
+                    elements.length = 0;
+
+                }
+
+                // Start searching for length at character after
+                // element terminator
+                startIndex = elementEnd + 1;
+
+            } while (startIndex &lt; message.length);
+
+        };
+
+    };
+
+    this.disconnect = function() {
+        close_tunnel(new Guacamole.Status(Guacamole.Status.Code.SUCCESS, "Manually closed."));
+    };
+
+};
+
+Guacamole.WebSocketTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel which cycles between all specified tunnels until
+ * no tunnels are left. Another tunnel is used if an error occurs but
+ * no instructions have been received. If an instruction has been
+ * received, or no tunnels remain, the error is passed directly out
+ * through the onerror handler (if defined).
+ * 
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {...*} tunnelChain
+ *     The tunnels to use, in order of priority.
+ */
+Guacamole.ChainedTunnel = function(tunnelChain) {
+
+    /**
+     * Reference to this chained tunnel.
+     * @private
+     */
+    var chained_tunnel = this;
+
+    /**
+     * Data passed in via connect(), to be used for
+     * wrapped calls to other tunnels' connect() functions.
+     * @private
+     */
+    var connect_data;
+
+    /**
+     * Array of all tunnels passed to this ChainedTunnel through the
+     * constructor arguments.
+     * @private
+     */
+    var tunnels = [];
+
+    /**
+     * The tunnel committed via commit_tunnel(), if any, or null if no tunnel
+     * has yet been committed.
+     *
+     * @private
+     * @type {Guacamole.Tunnel}
+     */
+    var committedTunnel = null;
+
+    // Load all tunnels into array
+    for (var i=0; i&lt;arguments.length; i++)
+        tunnels.push(arguments[i]);
+
+    /**
+     * Sets the current tunnel.
+     * 
+     * @private
+     * @param {Guacamole.Tunnel} tunnel The tunnel to set as the current tunnel.
+     */
+    function attach(tunnel) {
+
+        // Set own functions to tunnel's functions
+        chained_tunnel.disconnect  = tunnel.disconnect;
+        chained_tunnel.sendMessage = tunnel.sendMessage;
+
+        /**
+         * Fails the currently-attached tunnel, attaching a new tunnel if
+         * possible.
+         *
+         * @private
+         * @param {Guacamole.Status} [status]
+         *     An object representing the failure that occured in the
+         *     currently-attached tunnel, if known.
+         *
+         * @return {Guacamole.Tunnel}
+         *     The next tunnel, or null if there are no more tunnels to try or
+         *     if no more tunnels should be tried.
+         */
+        var failTunnel = function failTunnel(status) {
+
+            // Do not attempt to continue using next tunnel on server timeout
+            if (status &amp;&amp; status.code === Guacamole.Status.Code.UPSTREAM_TIMEOUT) {
+                tunnels = [];
+                return null;
+            }
+
+            // Get next tunnel
+            var next_tunnel = tunnels.shift();
+
+            // If there IS a next tunnel, try using it.
+            if (next_tunnel) {
+                tunnel.onerror = null;
+                tunnel.oninstruction = null;
+                tunnel.onstatechange = null;
+                attach(next_tunnel);
+            }
+
+            return next_tunnel;
+
+        };
+
+        /**
+         * Use the current tunnel from this point forward. Do not try any more
+         * tunnels, even if the current tunnel fails.
+         * 
+         * @private
+         */
+        function commit_tunnel() {
+            tunnel.onstatechange = chained_tunnel.onstatechange;
+            tunnel.oninstruction = chained_tunnel.oninstruction;
+            tunnel.onerror = chained_tunnel.onerror;
+            chained_tunnel.uuid = tunnel.uuid;
+            committedTunnel = tunnel;
+        }
+
+        // Wrap own onstatechange within current tunnel
+        tunnel.onstatechange = function(state) {
+
+            switch (state) {
+
+                // If open, use this tunnel from this point forward.
+                case Guacamole.Tunnel.State.OPEN:
+                    commit_tunnel();
+                    if (chained_tunnel.onstatechange)
+                        chained_tunnel.onstatechange(state);
+                    break;
+
+                // If closed, mark failure, attempt next tunnel
+                case Guacamole.Tunnel.State.CLOSED:
+                    if (!failTunnel() &amp;&amp; chained_tunnel.onstatechange)
+                        chained_tunnel.onstatechange(state);
+                    break;
+                
+            }
+
+        };
+
+        // Wrap own oninstruction within current tunnel
+        tunnel.oninstruction = function(opcode, elements) {
+
+            // Accept current tunnel
+            commit_tunnel();
+
+            // Invoke handler
+            if (chained_tunnel.oninstruction)
+                chained_tunnel.oninstruction(opcode, elements);
+
+        };
+
+        // Attach next tunnel on error
+        tunnel.onerror = function(status) {
+
+            // Mark failure, attempt next tunnel
+            if (!failTunnel(status) &amp;&amp; chained_tunnel.onerror)
+                chained_tunnel.onerror(status);
+
+        };
+
+        // Attempt connection
+        tunnel.connect(connect_data);
+        
+    }
+
+    this.connect = function(data) {
+       
+        // Remember connect data
+        connect_data = data;
+
+        // Get committed tunnel if exists or the first tunnel on the list
+        var next_tunnel = committedTunnel ? committedTunnel : tunnels.shift();
+
+        // Attach first tunnel
+        if (next_tunnel)
+            attach(next_tunnel);
+
+        // If there IS no first tunnel, error
+        else if (chained_tunnel.onerror)
+            chained_tunnel.onerror(Guacamole.Status.Code.SERVER_ERROR, "No tunnels to try.");
+
+    };
+    
+};
+
+Guacamole.ChainedTunnel.prototype = new Guacamole.Tunnel();
+
+/**
+ * Guacamole Tunnel which replays a Guacamole protocol dump from a static file
+ * received via HTTP. Instructions within the file are parsed and handled as
+ * quickly as possible, while the file is being downloaded.
+ *
+ * @constructor
+ * @augments Guacamole.Tunnel
+ * @param {String} url
+ *     The URL of a Guacamole protocol dump.
+ *
+ * @param {Boolean} [crossDomain=false]
+ *     Whether tunnel requests will be cross-domain, and thus must use CORS
+ *     mechanisms and headers. By default, it is assumed that tunnel requests
+ *     will be made to the same domain.
+ *
+ * @param {Object} [extraTunnelHeaders={}]
+ *     Key value pairs containing the header names and values of any additional
+ *     headers to be sent in tunnel requests. By default, no extra headers will
+ *     be added.
+ */
+Guacamole.StaticHTTPTunnel = function StaticHTTPTunnel(url, crossDomain, extraTunnelHeaders) {
+
+    /**
+     * Reference to this Guacamole.StaticHTTPTunnel.
+     *
+     * @private
+     */
+    var tunnel = this;
+
+    /**
+     * The current, in-progress HTTP request. If no request is currently in
+     * progress, this will be null.
+     *
+     * @private
+     * @type {XMLHttpRequest}
+     */
+    var xhr = null;
+
+    /**
+     * Additional headers to be sent in tunnel requests. This dictionary can be
+     * populated with key/value header pairs to pass information such as authentication
+     * tokens, etc.
+     *
+     * @private
+     */
+    var extraHeaders = extraTunnelHeaders || {};
+
+    /**
+     * Adds the configured additional headers to the given request.
+     *
+     * @param {XMLHttpRequest} request
+     *     The request where the configured extra headers will be added.
+     *
+     * @param {Object} headers
+     *     The headers to be added to the request.
+     *
+     * @private
+     */
+    function addExtraHeaders(request, headers) {
+        for (var name in headers) {
+            request.setRequestHeader(name, headers[name]);
+        }
+    }
+
+    this.sendMessage = function sendMessage(elements) {
+        // Do nothing
+    };
+
+    this.connect = function connect(data) {
+
+        // Ensure any existing connection is killed
+        tunnel.disconnect();
+
+        // Connection is now starting
+        tunnel.setState(Guacamole.Tunnel.State.CONNECTING);
+
+        // Start a new connection
+        xhr = new XMLHttpRequest();
+        xhr.open('GET', url);
+        xhr.withCredentials = !!crossDomain;
+        addExtraHeaders(xhr, extraHeaders);
+        xhr.responseType = 'text';
+        xhr.send(null);
+
+        var offset = 0;
+
+        // Create Guacamole protocol parser specifically for this connection
+        var parser = new Guacamole.Parser();
+
+        // Invoke tunnel's oninstruction handler for each parsed instruction
+        parser.oninstruction = function instructionReceived(opcode, args) {
+            if (tunnel.oninstruction)
+                tunnel.oninstruction(opcode, args);
+        };
+
+        // Continuously parse received data
+        xhr.onreadystatechange = function readyStateChanged() {
+
+            // Parse while data is being received
+            if (xhr.readyState === 3 || xhr.readyState === 4) {
+
+                // Connection is open
+                tunnel.setState(Guacamole.Tunnel.State.OPEN);
+
+                var buffer = xhr.responseText;
+                var length = buffer.length;
+
+                // Parse only the portion of data which is newly received
+                if (offset &lt; length) {
+                    parser.receive(buffer.substring(offset));
+                    offset = length;
+                }
+
+            }
+
+            // Clean up and close when done
+            if (xhr.readyState === 4)
+                tunnel.disconnect();
+
+        };
+
+        // Reset state and close upon error
+        xhr.onerror = function httpError() {
+
+            // Fail if file could not be downloaded via HTTP
+            if (tunnel.onerror)
+                tunnel.onerror(new Guacamole.Status(
+                    Guacamole.Status.Code.fromHTTPCode(xhr.status), xhr.statusText));
+
+            tunnel.disconnect();
+        };
+
+    };
+
+    this.disconnect = function disconnect() {
+
+        // Abort and dispose of XHR if a request is in progress
+        if (xhr) {
+            xhr.abort();
+            xhr = null;
+        }
+
+        // Connection is now closed
+        tunnel.setState(Guacamole.Tunnel.State.CLOSED);
+
+    };
+
+};
+
+Guacamole.StaticHTTPTunnel.prototype = new Guacamole.Tunnel();
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/Version.js.html b/doc/1.1.0/guacamole-common-js/Version.js.html
new file mode 100644
index 0000000..69742d1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/Version.js.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: Version.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: Version.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * The unique ID of this version of the Guacamole JavaScript API. This ID will
+ * be the version string of the guacamole-common-js Maven project, and can be
+ * used in downstream applications as a sanity check that the proper version
+ * of the APIs is being used (in case an older version is cached, for example).
+ *
+ * @type {String}
+ */
+Guacamole.API_VERSION = "1.1.0";
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/VideoPlayer.js.html b/doc/1.1.0/guacamole-common-js/VideoPlayer.js.html
new file mode 100644
index 0000000..f340af3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/VideoPlayer.js.html
@@ -0,0 +1,169 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Source: VideoPlayer.js</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Source: VideoPlayer.js</h1>
+
+    
+
+
+
+    
+    <section>
+        <article>
+            <pre class="prettyprint source linenums"><code>/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+var Guacamole = Guacamole || {};
+
+/**
+ * Abstract video player which accepts, queues and plays back arbitrary video
+ * data. It is up to implementations of this class to provide some means of
+ * handling a provided Guacamole.InputStream and rendering the received data to
+ * the provided Guacamole.Display.VisibleLayer. Data received along the
+ * provided stream is to be played back immediately.
+ *
+ * @constructor
+ */
+Guacamole.VideoPlayer = function VideoPlayer() {
+
+    /**
+     * Notifies this Guacamole.VideoPlayer that all video up to the current
+     * point in time has been given via the underlying stream, and that any
+     * difference in time between queued video data and the current time can be
+     * considered latency.
+     */
+    this.sync = function sync() {
+        // Default implementation - do nothing
+    };
+
+};
+
+/**
+ * Determines whether the given mimetype is supported by any built-in
+ * implementation of Guacamole.VideoPlayer, and thus will be properly handled
+ * by Guacamole.VideoPlayer.getInstance().
+ *
+ * @param {String} mimetype
+ *     The mimetype to check.
+ *
+ * @returns {Boolean}
+ *     true if the given mimetype is supported by any built-in
+ *     Guacamole.VideoPlayer, false otherwise.
+ */
+Guacamole.VideoPlayer.isSupportedType = function isSupportedType(mimetype) {
+
+    // There are currently no built-in video players (and therefore no
+    // supported types)
+    return false;
+
+};
+
+/**
+ * Returns a list of all mimetypes supported by any built-in
+ * Guacamole.VideoPlayer, in rough order of priority. Beware that only the core
+ * mimetypes themselves will be listed. Any mimetype parameters, even required
+ * ones, will not be included in the list.
+ *
+ * @returns {String[]}
+ *     A list of all mimetypes supported by any built-in Guacamole.VideoPlayer,
+ *     excluding any parameters.
+ */
+Guacamole.VideoPlayer.getSupportedTypes = function getSupportedTypes() {
+
+    // There are currently no built-in video players (and therefore no
+    // supported types)
+    return [];
+
+};
+
+/**
+ * Returns an instance of Guacamole.VideoPlayer providing support for the given
+ * video format. If support for the given video format is not available, null
+ * is returned.
+ *
+ * @param {Guacamole.InputStream} stream
+ *     The Guacamole.InputStream to read video data from.
+ *
+ * @param {Guacamole.Display.VisibleLayer} layer
+ *     The destination layer in which this Guacamole.VideoPlayer should play
+ *     the received video data.
+ *
+ * @param {String} mimetype
+ *     The mimetype of the video data in the provided stream.
+ *
+ * @return {Guacamole.VideoPlayer}
+ *     A Guacamole.VideoPlayer instance supporting the given mimetype and
+ *     reading from the given stream, or null if support for the given mimetype
+ *     is absent.
+ */
+Guacamole.VideoPlayer.getInstance = function getInstance(stream, layer, mimetype) {
+
+    // There are currently no built-in video players
+    return null;
+
+};
+</code></pre>
+        </article>
+    </section>
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot
new file mode 100644
index 0000000..5d20d91
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg
new file mode 100644
index 0000000..3ed7be4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM940 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM1258 0h-305v1118 h305v-1118z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1417" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1258 0h-305v1556h305v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1730 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM2048 0h-305v1118h305v-1118z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2208" d="M41 0zM778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM1571 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224 q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229zM2048 0h-305v1556h305v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M416 485h-244l-51 977h346zM117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="967" d="M412 1462l-41 -528h-197l-41 528h279zM834 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M999 844l-47 -232h258v-206h-297l-77 -406h-220l78 406h-194l-76 -406h-215l74 406h-238v206h277l47 232h-252v209h289l77 407h219l-77 -407h198l78 407h215l-78 -407h240v-209h-279zM539 612h196l47 232h-196z" />
+<glyph unicode="$" d="M1092 457q0 -159 -115 -255.5t-322 -115.5v-205h-137v201q-244 5 -428 86v264q87 -43 209.5 -76t218.5 -39v310l-67 26q-198 78 -280.5 169.5t-82.5 226.5q0 145 113.5 238.5t316.5 113.5v153h137v-149q229 -10 414 -92l-94 -234q-156 64 -320 78v-295 q195 -75 277.5 -130t121 -121t38.5 -154zM791 442q0 42 -34 71t-102 60v-249q136 23 136 118zM389 1049q0 -44 30.5 -72.5t98.5 -58.5v235q-129 -19 -129 -104z" />
+<glyph unicode="%" horiz-adv-x="1845" d="M315 1024q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM758 1026q0 -230 -89 -345.5t-261 -115.5q-165 0 -255 118.5t-90 342.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5zM1446 1462l-811 -1462h-240l811 1462h240z M1339 440q0 -127 22.5 -189.5t72.5 -62.5q96 0 96 252q0 250 -96 250q-50 0 -72.5 -61.5t-22.5 -188.5zM1782 442q0 -229 -89 -344.5t-261 -115.5q-165 0 -255 118.5t-90 341.5q0 457 345 457q169 0 259.5 -118.5t90.5 -338.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1536" d="M1536 0h-377l-115 113q-191 -133 -432 -133q-244 0 -387 112t-143 303q0 137 60.5 233.5t207.5 180.5q-75 86 -109 164.5t-34 171.5q0 152 116.5 245t311.5 93q186 0 297.5 -86.5t111.5 -231.5q0 -119 -69 -217.5t-223 -187.5l284 -277q71 117 123 301h318 q-36 -135 -99 -263.5t-143 -227.5zM403 424q0 -86 64.5 -137t165.5 -51q126 0 227 61l-332 330q-58 -44 -91.5 -92t-33.5 -111zM762 1133q0 53 -36 83.5t-93 30.5q-67 0 -105.5 -32t-38.5 -91q0 -88 95 -194q86 48 132 94.5t46 108.5z" />
+<glyph unicode="'" horiz-adv-x="545" d="M412 1462l-41 -528h-197l-41 528h279z" />
+<glyph unicode="(" horiz-adv-x="694" d="M82 561q0 265 77.5 496t223.5 405h250q-141 -193 -213 -424t-72 -475q0 -245 73.5 -473.5t209.5 -413.5h-248q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="694" d="M612 561q0 -263 -77.5 -490t-223.5 -395h-248q135 184 209 412.5t74 474.5q0 244 -72 475t-213 424h250q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M688 1556l-41 -368l373 104l33 -252l-340 -24l223 -297l-227 -121l-156 313l-137 -311l-236 119l221 297l-338 26l39 250l365 -104l-41 368h262z" />
+<glyph unicode="+" d="M475 612h-387v219h387v390h219v-390h387v-219h-387v-385h-219v385z" />
+<glyph unicode="," horiz-adv-x="594" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="-" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="." horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="/" horiz-adv-x="846" d="M836 1462l-545 -1462h-277l545 1462h277z" />
+<glyph unicode="0" d="M1096 731q0 -383 -125.5 -567t-386.5 -184q-253 0 -381.5 190t-128.5 561q0 387 125 570.5t385 183.5q253 0 382.5 -192t129.5 -562zM381 731q0 -269 46.5 -385.5t156.5 -116.5q108 0 156 118t48 384q0 269 -48.5 386.5t-155.5 117.5q-109 0 -156 -117.5t-47 -386.5z" />
+<glyph unicode="1" d="M846 0h-309v846l3 139l5 152q-77 -77 -107 -101l-168 -135l-149 186l471 375h254v-1462z" />
+<glyph unicode="2" d="M1104 0h-1022v215l367 371q163 167 213 231.5t72 119.5t22 114q0 88 -48.5 131t-129.5 43q-85 0 -165 -39t-167 -111l-168 199q108 92 179 130t155 58.5t188 20.5q137 0 242 -50t163 -140t58 -206q0 -101 -35.5 -189.5t-110 -181.5t-262.5 -265l-188 -177v-14h637v-260z " />
+<glyph unicode="3" d="M1047 1135q0 -137 -83 -233t-233 -132v-6q177 -22 268 -107.5t91 -230.5q0 -211 -153 -328.5t-437 -117.5q-238 0 -422 79v263q85 -43 187 -70t202 -27q153 0 226 52t73 167q0 103 -84 146t-268 43h-111v237h113q170 0 248.5 44.5t78.5 152.5q0 166 -208 166 q-72 0 -146.5 -24t-165.5 -83l-143 213q200 144 477 144q227 0 358.5 -92t131.5 -256z" />
+<glyph unicode="4" d="M1137 303h-176v-303h-302v303h-624v215l641 944h285v-919h176v-240zM659 543v248q0 62 5 180t8 137h-8q-37 -82 -89 -160l-268 -405h352z" />
+<glyph unicode="5" d="M614 934q212 0 337.5 -119t125.5 -326q0 -245 -151 -377t-432 -132q-244 0 -394 79v267q79 -42 184 -68.5t199 -26.5q283 0 283 232q0 221 -293 221q-53 0 -117 -10.5t-104 -22.5l-123 66l55 745h793v-262h-522l-27 -287l35 7q61 14 151 14z" />
+<glyph unicode="6" d="M72 621q0 434 183.5 646t549.5 212q125 0 196 -15v-247q-89 20 -176 20q-159 0 -259.5 -48t-150.5 -142t-59 -267h13q99 170 317 170q196 0 307 -123t111 -340q0 -234 -132 -370.5t-366 -136.5q-162 0 -282.5 75t-186 219t-65.5 347zM600 227q99 0 152 66.5t53 189.5 q0 107 -49.5 168.5t-149.5 61.5q-94 0 -160.5 -61t-66.5 -142q0 -119 62.5 -201t158.5 -82z" />
+<glyph unicode="7" d="M227 0l549 1200h-721v260h1049v-194l-553 -1266h-324z" />
+<glyph unicode="8" d="M586 1481q210 0 338.5 -95.5t128.5 -257.5q0 -112 -62 -199.5t-200 -156.5q164 -88 235.5 -183.5t71.5 -209.5q0 -180 -141 -289.5t-371 -109.5q-240 0 -377 102t-137 289q0 125 66.5 222t213.5 171q-125 79 -180 169t-55 197q0 157 130 254t339 97zM358 389 q0 -86 60 -134t164 -48q115 0 172 49.5t57 130.5q0 67 -56.5 125.5t-183.5 124.5q-213 -98 -213 -248zM584 1255q-79 0 -127.5 -40.5t-48.5 -108.5q0 -60 38.5 -107.5t139.5 -97.5q98 46 137 94t39 111q0 69 -50 109t-128 40z" />
+<glyph unicode="9" d="M1098 838q0 -432 -182 -645t-551 -213q-130 0 -197 14v248q84 -21 176 -21q155 0 255 45.5t153 143t61 268.5h-12q-58 -94 -134 -132t-190 -38q-191 0 -301 122.5t-110 340.5q0 235 133.5 371.5t363.5 136.5q162 0 283.5 -76t186.5 -220.5t65 -344.5zM569 1231 q-96 0 -150 -66t-54 -190q0 -106 49 -168t149 -62q94 0 161 61.5t67 141.5q0 119 -62.5 201t-159.5 82z" />
+<glyph unicode=":" horiz-adv-x="584" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode=";" horiz-adv-x="594" d="M444 238l15 -23q-52 -202 -176 -479h-220q65 266 101 502h280zM117 969q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#x3c;" d="M1081 203l-993 438v143l993 496v-240l-684 -317l684 -281v-239z" />
+<glyph unicode="=" d="M88 805v219h993v-219h-993zM88 418v219h993v-219h-993z" />
+<glyph unicode="&#x3e;" d="M88 442l684 281l-684 317v240l993 -496v-143l-993 -438v239z" />
+<glyph unicode="?" horiz-adv-x="977" d="M276 485v74q0 96 41 167t150 151q105 75 138.5 122t33.5 105q0 65 -48 99t-134 34q-150 0 -342 -98l-109 219q223 125 473 125q206 0 327.5 -99t121.5 -264q0 -110 -50 -190t-190 -180q-96 -71 -121.5 -108t-25.5 -97v-60h-265zM244 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="@" horiz-adv-x="1837" d="M1735 752q0 -144 -46 -263.5t-130 -187.5t-195 -68q-74 0 -131 35.5t-82 93.5h-16q-108 -129 -275 -129q-177 0 -279 106.5t-102 291.5q0 211 134 340t350 129q86 0 189.5 -16.5t170.5 -39.5l-23 -489q0 -139 76 -139q64 0 102 93.5t38 244.5q0 161 -67 284.5 t-188.5 188.5t-277.5 65q-202 0 -351 -83t-228.5 -239.5t-79.5 -361.5q0 -276 147.5 -423.5t427.5 -147.5q106 0 233 23.5t250 68.5v-192q-214 -91 -475 -91q-380 0 -592.5 200t-212.5 556q0 247 108.5 448.5t309 316t461.5 114.5q220 0 393 -90t267 -256t94 -383zM711 627 q0 -211 172 -211q90 0 137 63.5t57 206.5l13 221q-51 11 -115 11q-125 0 -194.5 -78t-69.5 -213z" />
+<glyph unicode="A" horiz-adv-x="1413" d="M1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381z" />
+<glyph unicode="B" horiz-adv-x="1376" d="M184 1462h455q311 0 451.5 -88.5t140.5 -281.5q0 -131 -61.5 -215t-163.5 -101v-10q139 -31 200.5 -116t61.5 -226q0 -200 -144.5 -312t-392.5 -112h-547v1462zM494 883h180q126 0 182.5 39t56.5 129q0 84 -61.5 120.5t-194.5 36.5h-163v-325zM494 637v-381h202 q128 0 189 49t61 150q0 182 -260 182h-192z" />
+<glyph unicode="C" horiz-adv-x="1305" d="M805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29z" />
+<glyph unicode="D" horiz-adv-x="1516" d="M1397 745q0 -361 -205.5 -553t-593.5 -192h-414v1462h459q358 0 556 -189t198 -528zM1075 737q0 471 -416 471h-165v-952h133q448 0 448 481z" />
+<glyph unicode="E" horiz-adv-x="1147" d="M1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256z" />
+<glyph unicode="F" horiz-adv-x="1124" d="M489 0h-305v1462h838v-254h-533v-377h496v-253h-496v-578z" />
+<glyph unicode="G" horiz-adv-x="1483" d="M739 821h580v-758q-141 -46 -265.5 -64.5t-254.5 -18.5q-331 0 -505.5 194.5t-174.5 558.5q0 354 202.5 552t561.5 198q225 0 434 -90l-103 -248q-160 80 -333 80q-201 0 -322 -135t-121 -363q0 -238 97.5 -363.5t283.5 -125.5q97 0 197 20v305h-277v258z" />
+<glyph unicode="H" horiz-adv-x="1567" d="M1382 0h-309v631h-579v-631h-310v1462h310v-573h579v573h309v-1462z" />
+<glyph unicode="I" horiz-adv-x="678" d="M184 0v1462h310v-1462h-310z" />
+<glyph unicode="J" horiz-adv-x="678" d="M31 -430q-105 0 -183 22v258q80 -20 146 -20q102 0 146 63.5t44 198.5v1370h310v-1368q0 -256 -117 -390t-346 -134z" />
+<glyph unicode="K" horiz-adv-x="1360" d="M1360 0h-352l-383 616l-131 -94v-522h-310v1462h310v-669l122 172l396 497h344l-510 -647z" />
+<glyph unicode="L" horiz-adv-x="1157" d="M184 0v1462h310v-1206h593v-256h-903z" />
+<glyph unicode="M" horiz-adv-x="1931" d="M803 0l-352 1147h-9q19 -350 19 -467v-680h-277v1462h422l346 -1118h6l367 1118h422v-1462h-289v692q0 49 1.5 113t13.5 340h-9l-377 -1145h-284z" />
+<glyph unicode="N" horiz-adv-x="1665" d="M1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462z" />
+<glyph unicode="O" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="P" horiz-adv-x="1286" d="M494 774h102q143 0 214 56.5t71 164.5q0 109 -59.5 161t-186.5 52h-141v-434zM1194 1006q0 -236 -147.5 -361t-419.5 -125h-133v-520h-310v1462h467q266 0 404.5 -114.5t138.5 -341.5z" />
+<glyph unicode="Q" horiz-adv-x="1630" d="M1511 733q0 -258 -91.5 -432.5t-268.5 -255.5l352 -393h-397l-268 328h-23q-336 0 -516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5z" />
+<glyph unicode="R" horiz-adv-x="1352" d="M494 813h100q147 0 217 49t70 154q0 104 -71.5 148t-221.5 44h-94v-395zM494 561v-561h-310v1462h426q298 0 441 -108.5t143 -329.5q0 -129 -71 -229.5t-201 -157.5q330 -493 430 -637h-344l-349 561h-165z" />
+<glyph unicode="S" horiz-adv-x="1128" d="M1047 406q0 -198 -142.5 -312t-396.5 -114q-234 0 -414 88v288q148 -66 250.5 -93t187.5 -27q102 0 156.5 39t54.5 116q0 43 -24 76.5t-70.5 64.5t-189.5 99q-134 63 -201 121t-107 135t-40 180q0 194 131.5 305t363.5 111q114 0 217.5 -27t216.5 -76l-100 -241 q-117 48 -193.5 67t-150.5 19q-88 0 -135 -41t-47 -107q0 -41 19 -71.5t60.5 -59t196.5 -102.5q205 -98 281 -196.5t76 -241.5z" />
+<glyph unicode="T" horiz-adv-x="1186" d="M748 0h-310v1204h-397v258h1104v-258h-397v-1204z" />
+<glyph unicode="U" horiz-adv-x="1548" d="M1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309z" />
+<glyph unicode="V" horiz-adv-x="1331" d="M1018 1462h313l-497 -1462h-338l-496 1462h313l275 -870q23 -77 47.5 -179.5t30.5 -142.5q11 92 75 322z" />
+<glyph unicode="W" horiz-adv-x="1980" d="M1608 0h-353l-198 768q-11 41 -37.5 169.5t-30.5 172.5q-6 -54 -30 -173.5t-37 -170.5l-197 -766h-352l-373 1462h305l187 -798q49 -221 71 -383q6 57 27.5 176.5t40.5 185.5l213 819h293l213 -819q14 -55 35 -168t32 -194q10 78 32 194.5t40 188.5l186 798h305z" />
+<glyph unicode="X" horiz-adv-x="1366" d="M1366 0h-354l-340 553l-340 -553h-332l485 754l-454 708h342l315 -526l309 526h334l-459 -725z" />
+<glyph unicode="Y" horiz-adv-x="1278" d="M639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336z" />
+<glyph unicode="Z" horiz-adv-x="1186" d="M1137 0h-1088v201l701 1005h-682v256h1050v-200l-700 -1006h719v-256z" />
+<glyph unicode="[" horiz-adv-x="678" d="M627 -324h-484v1786h484v-211h-224v-1364h224v-211z" />
+<glyph unicode="\" horiz-adv-x="846" d="M289 1462l545 -1462h-277l-545 1462h277z" />
+<glyph unicode="]" horiz-adv-x="678" d="M51 -113h223v1364h-223v211h484v-1786h-484v211z" />
+<glyph unicode="^" horiz-adv-x="1090" d="M8 520l438 950h144l495 -950h-239l-322 643l-280 -643h-236z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -324h-850v140h850v-140z" />
+<glyph unicode="`" horiz-adv-x="1243" d="M707 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="a" horiz-adv-x="1237" d="M870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48t-65 -134 q0 -129 148 -129q106 0 169.5 61t63.5 162v92z" />
+<glyph unicode="b" horiz-adv-x="1296" d="M782 1139q198 0 310 -154.5t112 -423.5q0 -277 -115.5 -429t-314.5 -152q-197 0 -309 143h-21l-51 -123h-233v1556h305v-362q0 -69 -12 -221h12q107 166 317 166zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q94 0 149.5 86.5t55.5 251.5 t-56 247.5t-153 82.5z" />
+<glyph unicode="c" horiz-adv-x="1053" d="M614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18z" />
+<glyph unicode="d" horiz-adv-x="1296" d="M514 -20q-197 0 -309.5 153t-112.5 424q0 275 114.5 428.5t315.5 153.5q211 0 322 -164h10q-23 125 -23 223v358h306v-1556h-234l-59 145h-13q-104 -165 -317 -165zM621 223q117 0 171.5 68t59.5 231v33q0 180 -55.5 258t-180.5 78q-102 0 -158.5 -86.5t-56.5 -251.5 t57 -247.5t163 -82.5z" />
+<glyph unicode="e" horiz-adv-x="1210" d="M623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z" />
+<glyph unicode="f" horiz-adv-x="793" d="M778 889h-264v-889h-305v889h-168v147l168 82v82q0 191 94 279t301 88q158 0 281 -47l-78 -224q-92 29 -170 29q-65 0 -94 -38.5t-29 -98.5v-70h264v-229z" />
+<glyph unicode="g" horiz-adv-x="1157" d="M1133 1118v-155l-175 -45q48 -75 48 -168q0 -180 -125.5 -280.5t-348.5 -100.5l-55 3l-45 5q-47 -36 -47 -80q0 -66 168 -66h190q184 0 280.5 -79t96.5 -232q0 -196 -163.5 -304t-469.5 -108q-234 0 -357.5 81.5t-123.5 228.5q0 101 63 169t185 97q-47 20 -82 65.5 t-35 96.5q0 64 37 106.5t107 83.5q-88 38 -139.5 122t-51.5 198q0 183 119 283t340 100q47 0 111.5 -8.5t82.5 -12.5h390zM270 -158q0 -63 60.5 -99t169.5 -36q164 0 257 45t93 123q0 63 -55 87t-170 24h-158q-84 0 -140.5 -39.5t-56.5 -104.5zM381 752q0 -91 41.5 -144 t126.5 -53q86 0 126 53t40 144q0 202 -166 202q-168 0 -168 -202z" />
+<glyph unicode="h" horiz-adv-x="1346" d="M1192 0h-305v653q0 242 -180 242q-128 0 -185 -87t-57 -282v-526h-305v1556h305v-317q0 -37 -7 -174l-7 -90h16q102 164 324 164q197 0 299 -106t102 -304v-729z" />
+<glyph unicode="i" horiz-adv-x="625" d="M147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150zM465 0h-305v1118h305v-1118z" />
+<glyph unicode="j" horiz-adv-x="625" d="M70 -492q-117 0 -201 25v240q70 -19 143 -19q77 0 112.5 43t35.5 127v1194h305v-1239q0 -178 -103 -274.5t-292 -96.5zM147 1407q0 149 166 149t166 -149q0 -71 -41.5 -110.5t-124.5 -39.5q-166 0 -166 150z" />
+<glyph unicode="k" horiz-adv-x="1270" d="M453 608l133 170l313 340h344l-444 -485l471 -633h-352l-322 453l-131 -105v-348h-305v1556h305v-694l-16 -254h4z" />
+<glyph unicode="l" horiz-adv-x="625" d="M465 0h-305v1556h305v-1556z" />
+<glyph unicode="m" horiz-adv-x="2011" d="M1161 0h-305v653q0 121 -40.5 181.5t-127.5 60.5q-117 0 -170 -86t-53 -283v-526h-305v1118h233l41 -143h17q45 77 130 120.5t195 43.5q251 0 340 -164h27q45 78 132.5 121t197.5 43q190 0 287.5 -97.5t97.5 -312.5v-729h-306v653q0 121 -40.5 181.5t-127.5 60.5 q-112 0 -167.5 -80t-55.5 -254v-561z" />
+<glyph unicode="n" horiz-adv-x="1346" d="M1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729z" />
+<glyph unicode="o" horiz-adv-x="1268" d="M403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z" />
+<glyph unicode="p" horiz-adv-x="1296" d="M774 -20q-197 0 -309 143h-16q16 -140 16 -162v-453h-305v1610h248l43 -145h14q107 166 317 166q198 0 310 -153t112 -425q0 -179 -52.5 -311t-149.5 -201t-228 -69zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="q" horiz-adv-x="1296" d="M623 219q116 0 170 66.5t59 232.5v37q0 180 -55.5 258t-178.5 78q-215 0 -215 -338q0 -168 53.5 -251t166.5 -83zM514 -20q-198 0 -310 152.5t-112 424.5q0 274 114.5 428t313.5 154q106 0 185 -40t139 -124h8l27 143h258v-1610h-306v469q0 61 13 168h-13 q-49 -81 -130 -123t-187 -42z" />
+<glyph unicode="r" horiz-adv-x="930" d="M784 1139q62 0 103 -9l-23 -286q-37 10 -90 10q-146 0 -227.5 -75t-81.5 -210v-569h-305v1118h231l45 -188h15q52 94 140.5 151.5t192.5 57.5z" />
+<glyph unicode="s" horiz-adv-x="1018" d="M940 332q0 -172 -119.5 -262t-357.5 -90q-122 0 -208 16.5t-161 48.5v252q85 -40 191.5 -67t187.5 -27q166 0 166 96q0 36 -22 58.5t-76 51t-144 66.5q-129 54 -189.5 100t-88 105.5t-27.5 146.5q0 149 115.5 230.5t327.5 81.5q202 0 393 -88l-92 -220q-84 36 -157 59 t-149 23q-135 0 -135 -73q0 -41 43.5 -71t190.5 -89q131 -53 192 -99t90 -106t29 -143z" />
+<glyph unicode="t" horiz-adv-x="889" d="M631 223q80 0 192 35v-227q-114 -51 -280 -51q-183 0 -266.5 92.5t-83.5 277.5v539h-146v129l168 102l88 236h195v-238h313v-229h-313v-539q0 -65 36.5 -96t96.5 -31z" />
+<glyph unicode="u" horiz-adv-x="1346" d="M952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234z" />
+<glyph unicode="v" horiz-adv-x="1165" d="M426 0l-426 1118h319l216 -637q36 -121 45 -229h6q5 96 45 229l215 637h319l-426 -1118h-313z" />
+<glyph unicode="w" horiz-adv-x="1753" d="M1079 0l-86 391l-116 494h-7l-204 -885h-328l-318 1118h304l129 -495q31 -133 63 -367h6q4 76 35 241l16 85l138 536h336l131 -536q4 -22 12.5 -65t16.5 -91.5t14.5 -95t7.5 -74.5h6q9 72 32 197.5t33 169.5l134 495h299l-322 -1118h-332z" />
+<glyph unicode="x" horiz-adv-x="1184" d="M389 571l-360 547h346l217 -356l219 356h346l-364 -547l381 -571h-347l-235 383l-236 -383h-346z" />
+<glyph unicode="y" horiz-adv-x="1165" d="M0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55z" />
+<glyph unicode="z" horiz-adv-x="999" d="M938 0h-883v180l518 705h-487v233h834v-198l-504 -687h522v-233z" />
+<glyph unicode="{" horiz-adv-x="807" d="M287 270q0 87 -65.5 133t-190.5 46v239q126 0 191 44t65 126v8v318q0 153 97 215.5t341 62.5v-225q-99 -3 -136.5 -38t-37.5 -103v-299q-6 -188 -234 -222v-12q234 -35 234 -212v-9v-299q0 -68 37 -103t137 -38v-226q-244 0 -341 62.5t-97 216.5v315z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="807" d="M520 -45q0 -112 -41 -169t-135.5 -83.5t-261.5 -26.5v226q99 2 136.5 36t37.5 105v299v11q0 86 59 139.5t174 70.5v12q-227 34 -233 222v299q0 70 -37 104t-137 37v225q167 0 262 -26.5t135.5 -84t40.5 -167.5v-318v-10q0 -84 61.5 -126t194.5 -42v-239 q-125 0 -190.5 -41t-65.5 -138v-315z" />
+<glyph unicode="~" d="M322 672q-55 0 -117.5 -33.5t-116.5 -87.5v231q103 109 256 109q73 0 137.5 -16t139.5 -48q129 -55 227 -55q53 0 116 32t117 89v-231q-101 -109 -256 -109q-66 0 -126 13t-150 50q-131 56 -227 56z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M168 606h244l51 -975h-346zM467 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xa2;" d="M563 176q-420 59 -420 565q0 261 104.5 403t315.5 173v166h178v-158q166 -9 299 -74l-90 -235q-72 29 -134 47t-124 18q-121 0 -179 -83.5t-58 -254.5q0 -327 237 -327q82 0 148 15.5t166 60.5v-254q-127 -61 -265 -70v-188h-178v196z" />
+<glyph unicode="&#xa3;" d="M700 1483q195 0 390 -82l-93 -230q-157 64 -272 64q-78 0 -120 -44.5t-42 -127.5v-193h375v-219h-375v-143q0 -170 -151 -248h718v-260h-1048v248q103 44 141.5 101t38.5 157v145h-178v219h178v195q0 201 114.5 309.5t323.5 108.5z" />
+<glyph unicode="&#xa4;" d="M188 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM395 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M584 860l264 602h313l-383 -747h195v-178h-246v-138h246v-178h-246v-221h-287v221h-247v178h247v138h-247v178h190l-377 747h316z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M121 805q0 79 36 144.5t97 105.5q-133 84 -133 233q0 131 111.5 210t293.5 79q170 0 363 -84l-82 -190q-68 32 -138.5 57.5t-148.5 25.5q-81 0 -118 -23t-37 -71q0 -49 49.5 -86t163.5 -82q163 -64 240 -148.5t77 -193.5q0 -177 -125 -260q62 -40 93.5 -92.5t31.5 -126.5 q0 -148 -119.5 -235.5t-320.5 -87.5q-203 0 -349 79v207q81 -41 180 -69.5t169 -28.5q194 0 194 117q0 39 -18.5 63t-63.5 49.5t-125 59.5q-183 74 -252 152.5t-69 195.5zM344 827q0 -67 65 -119t181 -98q78 57 78 146q0 68 -50.5 115t-183.5 96q-37 -14 -63.5 -53.5 t-26.5 -86.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1243" d="M279 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM682 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M895 1010q-97 0 -150 -74t-53 -205q0 -280 203 -280q57 0 123 15t123 44v-191q-120 -57 -252 -57q-204 0 -316 125t-112 346q0 220 110.5 342.5t309.5 122.5q149 0 305 -78l-74 -168q-113 58 -217 58zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="784" d="M561 764l-31 110q-43 -58 -105 -90t-136 -32q-117 0 -179.5 58.5t-62.5 164.5q0 109 82.5 163.5t267.5 63.5l99 4q0 117 -127 117q-81 0 -217 -61l-66 135q66 32 145.5 57t178.5 25q137 0 211.5 -71t74.5 -202v-442h-135zM252 977q0 -38 23 -56t55 -18q77 0 121.5 41.5 t44.5 106.5v36l-99 -6q-145 -10 -145 -104z" />
+<glyph unicode="&#xab;" horiz-adv-x="1260" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26zM588 573l370 455l220 -119l-279 -348l279 -348l-220 -119l-370 453v26z" />
+<glyph unicode="&#xac;" d="M1081 248h-219v364h-774v219h993v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M61 424zM61 424v250h537v-250h-537z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1157 905q0 -170 -143 -233l237 -400h-254l-178 338h-47v-338h-229v916h264q181 0 265.5 -70t84.5 -213zM772 778h31q66 0 94.5 28.5t28.5 94.5q0 65 -28 92t-97 27h-29v-242zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370 t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM242 731q0 -164 82 -305.5t224 -223t304 -81.5q164 0 305.5 82t223 224t81.5 304q0 164 -82 305.5t-224 223t-304 81.5q-164 0 -305.5 -82t-223 -224t-81.5 -304z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v201h1036v-201z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M92 1137q0 92 46 172t126 127t174 47q92 0 172.5 -46t127 -127t46.5 -173q0 -93 -46.5 -173.5t-126.5 -125.5t-173 -45q-145 0 -245.5 99.5t-100.5 244.5zM283 1137q0 -64 44.5 -109t110.5 -45t111 46t45 108q0 63 -45.5 110t-110.5 47q-64 0 -109.5 -46t-45.5 -111z" />
+<glyph unicode="&#xb1;" d="M475 674h-387v219h387v389h219v-389h387v-219h-387v-385h-219v385zM88 0v219h993v-219h-993z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M702 586h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M666 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1243" d="M332 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1352" d="M465 465q0 -121 44 -181.5t138 -60.5q126 0 183 86.5t57 282.5v526h305v-1118h-231l-43 150h-15q-42 -85 -102 -127.5t-148 -42.5q-62 0 -114 23t-84 67l5 -85l5 -157v-320h-305v1610h305v-653z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1167 -260h-161v1616h-166v-1616h-162v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M117 723q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -81 -46.5 -125.5t-127.5 -44.5q-84 0 -130 44t-46 126z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M418 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M584 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876z" />
+<glyph unicode="&#xba;" horiz-adv-x="795" d="M737 1116q0 -171 -91.5 -267.5t-250.5 -96.5q-153 0 -245.5 98.5t-92.5 265.5q0 169 89.5 266t252.5 97q152 0 245 -98.5t93 -264.5zM260 1116q0 -100 32.5 -150.5t104.5 -50.5t103.5 50.5t31.5 150.5t-31.5 149.5t-103.5 49.5t-104.5 -49.5t-32.5 -149.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1260" d="M1178 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26zM672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1682 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1319 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191 h198z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M46 0zM538 586h-238v446l3 112l5 95q-27 -36 -75 -78l-78 -61l-109 127l301 235h191v-876zM1370 1462l-811 -1462h-239l811 1462h239zM1716 1h-647v168l224 219q102 100 130.5 144.5t28.5 94.5q0 38 -24 58t-64 20q-81 0 -180 -88l-123 152q147 129 336 129 q137 0 216 -66.5t79 -183.5q0 -85 -47 -160t-176 -192l-105 -95h352v-200z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M90 0zM697 1249q0 -143 -170 -198v-13q94 -20 146 -75t52 -134q0 -121 -88 -190.5t-274 -69.5q-143 0 -273 70v190q148 -90 271 -90q143 0 143 107q0 53 -44 79.5t-122 26.5h-112v160h92q83 0 123.5 26t40.5 83q0 38 -25 63t-76 25q-47 0 -89 -19t-99 -59l-101 141 q62 47 137.5 78t178.5 31q127 0 208 -64t81 -168zM1441 1462l-811 -1462h-239l811 1462h239zM1712 152h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM1349 320v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#xbf;" horiz-adv-x="977" d="M713 606v-74q0 -98 -44.5 -169t-152.5 -148q-109 -78 -137.5 -122t-28.5 -107q0 -57 43.5 -94t132.5 -37q79 0 169 29t186 71l102 -221q-98 -56 -221.5 -90.5t-229.5 -34.5q-220 0 -345.5 96.5t-125.5 265.5q0 108 48.5 187t191.5 184q95 70 121.5 107t26.5 98v59h264z M745 948q0 -84 -45 -127t-131 -43q-83 0 -128.5 44t-45.5 126q0 81 46.5 125.5t127.5 44.5q84 0 130 -44t46 -126z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM713 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM541 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM938 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM543 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16 q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM365 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM768 1743 q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1413" d="M0 0zM1079 0l-106 348h-533l-106 -348h-334l516 1468h379l518 -1468h-334zM899 608q-147 473 -165.5 535t-26.5 98q-33 -128 -189 -633h381zM959 1567q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM801 1565 q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1950" d="M1829 0h-873v348h-491l-150 -348h-315l655 1462h1174v-254h-563v-321h526v-254h-526v-377h563v-256zM578 608h378v590h-127z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1305" d="M119 0zM805 1225q-175 0 -271 -131.5t-96 -366.5q0 -489 367 -489q154 0 373 77v-260q-180 -75 -402 -75q-319 0 -488 193.5t-169 555.5q0 228 83 399.5t238.5 263t364.5 91.5q213 0 428 -103l-100 -252q-82 39 -165 68t-163 29zM959 -250q0 -128 -75.5 -185t-233.5 -57 q-78 0 -146 21v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM634 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM424 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xca;" horiz-adv-x="1147" d="M175 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM841 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1147" d="M184 0zM1026 0h-842v1462h842v-254h-532v-321h495v-254h-495v-377h532v-256zM272 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM675 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99 q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM317 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xcd;" horiz-adv-x="678" d="M167 0zM184 0v1462h310v-1462h-310zM167 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xce;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM570 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xcf;" horiz-adv-x="678" d="M0 0zM184 0v1462h310v-1462h-310zM-3 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM400 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1516" d="M47 850h137v612h459q358 0 556 -189t198 -528q0 -361 -205.5 -553t-593.5 -192h-414v596h-137v254zM1075 737q0 232 -104 351.5t-314 119.5h-163v-358h237v-254h-237v-340h131q450 0 450 481z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1665" d="M184 0zM1481 0h-394l-636 1106h-9q19 -293 19 -418v-688h-277v1462h391l635 -1095h7q-15 285 -15 403v692h279v-1462zM668 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149 q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM824 1579q-63 44 -185 142.5t-190 164.5v21h342 q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM658 1579v27q172 200 235 301h342v-21 q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM1047 1579q-157 93 -234 176q-78 -81 -229 -176h-203 v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM652 1684q-31 0 -59.5 -26.5t-41.5 -80.5h-149 q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1630" d="M119 0zM1511 733q0 -363 -180 -558t-516 -195t-516 195t-180 560t180.5 557.5t517.5 192.5t515.5 -194t178.5 -558zM444 733q0 -245 93 -369t278 -124q371 0 371 493q0 494 -369 494q-185 0 -279 -124.5t-94 -369.5zM474 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37 t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM877 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1630" d="M1511 733q0 -363 -180 -558t-516 -195q-197 0 -336 65l-90 -135l-162 108l90 136q-198 194 -198 581q0 365 180.5 557.5t517.5 192.5q198 0 344 -70l84 125l160 -104l-88 -131q194 -194 194 -572zM444 733q0 -191 56 -307l506 756q-84 45 -189 45q-185 0 -279 -124.5 t-94 -369.5zM1186 733q0 180 -51 297l-500 -751q76 -39 180 -39q371 0 371 493z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM750 1579q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xda;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM602 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM1006 1579q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1548" d="M174 0zM1374 1462v-946q0 -162 -72.5 -284t-209.5 -187t-324 -65q-282 0 -438 144.5t-156 395.5v942h309v-895q0 -169 68 -248t225 -79q152 0 220.5 79.5t68.5 249.5v893h309zM433 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5 q-64 0 -101.5 35t-37.5 98zM836 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM461 1579v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xde;" horiz-adv-x="1286" d="M1194 770q0 -229 -142.5 -353t-404.5 -124h-153v-293h-310v1462h310v-229h178q254 0 388 -119t134 -344zM494 543h100q145 0 216 52.5t71 174.5q0 107 -63.5 159t-199.5 52h-124v-438z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1456" d="M1249 1241q0 -64 -21 -112.5t-53 -86.5t-69 -67t-69 -53t-53 -45t-21 -43q0 -27 26.5 -53t92.5 -66q146 -91 198.5 -140t78 -110t25.5 -139q0 -172 -116.5 -259t-343.5 -87q-99 0 -171 14.5t-132 48.5v242q53 -36 135.5 -61t146.5 -25q168 0 168 123q0 41 -16 66.5 t-57 55.5t-115 72q-126 72 -175 131.5t-49 140.5q0 64 35 117t105 102q77 55 108 95t31 86q0 60 -63.5 100.5t-163.5 40.5q-116 0 -181 -52.5t-65 -148.5v-1128h-305v1139q0 201 146.5 314.5t404.5 113.5q244 0 391 -88.5t147 -237.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM614 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM441 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM843 1240q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM467 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36 t-73 16.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM285 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM688 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36 q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1237" d="M86 0zM870 0l-59 152h-8q-77 -97 -158.5 -134.5t-212.5 -37.5q-161 0 -253.5 92t-92.5 262q0 178 124.5 262.5t375.5 93.5l194 6v49q0 170 -174 170q-134 0 -315 -81l-101 206q193 101 428 101q225 0 345 -98t120 -298v-745h-213zM780 518l-118 -4q-133 -4 -198 -48 t-65 -134q0 -129 148 -129q106 0 169.5 61t63.5 162v92zM883 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM725 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1878" d="M1329 -20q-137 0 -249.5 50.5t-184.5 155.5q-98 -117 -196.5 -161.5t-256.5 -44.5q-161 0 -258.5 94.5t-97.5 259.5q0 178 121 262.5t362 93.5l191 6v84q0 69 -44.5 102t-121.5 33q-140 0 -305 -77l-99 202q189 101 422 101q227 0 342 -131q66 64 152.5 96.5t206.5 32.5 q221 0 349 -137.5t128 -370.5v-148h-723q5 -130 77 -203t202 -73q196 0 380 88v-236q-79 -39 -171 -59t-226 -20zM760 518l-113 -4q-124 -4 -186 -47.5t-62 -134.5q0 -129 140 -129q101 0 161 61t60 162v92zM1307 922q-217 0 -234 -236h430q-2 112 -55 174t-141 62z" />
+<glyph unicode="&#xe7;" horiz-adv-x="1053" d="M92 0zM614 -20q-522 0 -522 573q0 285 142 435.5t407 150.5q194 0 348 -76l-90 -236q-72 29 -134 47.5t-124 18.5q-238 0 -238 -338q0 -328 238 -328q88 0 163 23.5t150 73.5v-261q-74 -47 -149.5 -65t-190.5 -18zM805 -250q0 -128 -75.5 -185t-233.5 -57q-78 0 -146 21 v168q27 -7 72.5 -14t70.5 -7q72 0 72 62q0 83 -166 108l78 154h193l-27 -61q74 -24 118 -74.5t44 -114.5z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M447 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xea;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M860 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1210" d="M92 0zM623 922q-97 0 -152 -61.5t-63 -174.5h428q-2 113 -59 174.5t-154 61.5zM666 -20q-270 0 -422 149t-152 422q0 281 140.5 434.5t388.5 153.5q237 0 369 -135t132 -373v-148h-721q5 -130 77 -203t202 -73q101 0 191 21t188 67v-236q-80 -40 -171 -59.5t-222 -19.5z M297 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM274 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xed;" horiz-adv-x="625" d="M145 0zM465 0h-305v1118h305v-1118zM145 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xee;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM544 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xef;" horiz-adv-x="625" d="M0 0zM465 0h-305v1118h305v-1118zM-29 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM374 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5 t-40.5 100.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1268" d="M510 1303q-80 53 -152 92l101 176q144 -65 258 -141l225 139l100 -154l-170 -104q156 -143 230 -324.5t74 -413.5q0 -280 -145 -436.5t-400 -156.5q-245 0 -392 137t-147 372q0 233 130 369.5t351 136.5q205 0 275 -98l8 4q-67 162 -192 281l-230 -142l-100 156zM864 532 q0 108 -61 173t-168 65q-121 0 -176.5 -68.5t-55.5 -214.5q0 -140 60 -211t172 -71q123 0 176 82t53 245z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1346" d="M160 0zM1192 0h-305v653q0 121 -43 181.5t-137 60.5q-128 0 -185 -85.5t-57 -283.5v-526h-305v1118h233l41 -143h17q51 81 140.5 122.5t203.5 41.5q195 0 296 -105.5t101 -304.5v-729zM508 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82 q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M612 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M467 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M864 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M469 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1268" d="M92 0zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1176 561q0 -273 -144 -427t-401 -154q-161 0 -284 70.5t-189 202.5t-66 308q0 274 143 426t402 152q161 0 284 -70t189 -201t66 -307z M291 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM694 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xf7;" d="M88 612v219h993v-219h-993zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1268" d="M1176 561q0 -273 -144 -427t-401 -154q-126 0 -234 45l-67 -101l-154 105l68 100q-152 156 -152 432q0 274 143 426t402 152q132 0 248 -52l55 82l152 -108l-58 -84q142 -155 142 -416zM403 561q0 -94 19 -166l317 475q-43 23 -106 23q-122 0 -176 -82.5t-54 -249.5z M864 561q0 81 -12 141l-309 -462q38 -15 92 -15q122 0 175.5 84.5t53.5 251.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM620 1241q-63 44 -185 142.5t-190 164.5v21h342q63 -101 235 -301v-27h-202z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM498 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5h-203z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM901 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357 q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1346" d="M154 0zM952 0l-41 143h-16q-49 -78 -139 -120.5t-205 -42.5q-197 0 -297 105.5t-100 303.5v729h305v-653q0 -121 43 -181.5t137 -60.5q128 0 185 85.5t57 283.5v526h305v-1118h-234zM326 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM729 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM393 1241v27q172 200 235 301h342v-21q-52 -52 -177.5 -154.5t-196.5 -152.5 h-203z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1296" d="M465 973q50 81 131 123.5t186 42.5q198 0 310 -154.5t112 -423.5q0 -273 -111.5 -427t-310.5 -154q-213 0 -317 137h-14l7 -62l7 -94v-453h-305v2048h305v-391l-7 -120l-7 -72h14zM684 895q-113 0 -165 -69.5t-54 -229.5v-33q0 -180 53.5 -258t169.5 -78q205 0 205 338 q0 165 -50.5 247.5t-158.5 82.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1165" d="M0 0zM0 1118h334l211 -629q27 -82 37 -194h6q11 103 43 194l207 629h327l-473 -1261q-65 -175 -185.5 -262t-281.5 -87q-79 0 -155 17v242q55 -13 120 -13q81 0 141.5 49.5t94.5 149.5l18 55zM243 1405q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5 t-103 -36.5q-64 0 -101.5 35t-37.5 98zM646 1405q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="625" d="M465 0h-305v1118h305v-1118z" />
+<glyph unicode="&#x152;" horiz-adv-x="1993" d="M1872 0h-873q-38 -9 -109 -14.5t-116 -5.5q-319 0 -487 197t-168 558q0 363 169.5 556.5t487.5 193.5q61 0 127 -7t101 -16h868v-254h-563v-321h526v-254h-526v-377h563v-256zM776 1227q-166 0 -252 -125.5t-86 -368.5q0 -244 86 -368.5t250 -124.5q65 0 126 10.5 t99 28.5v907q-35 19 -101.5 30t-121.5 11z" />
+<glyph unicode="&#x153;" horiz-adv-x="2003" d="M1446 -20q-271 0 -420 155q-141 -155 -391 -155q-162 0 -286 70t-190.5 202t-66.5 309q0 277 141.5 427.5t399.5 150.5q112 0 212 -39.5t171 -116.5q144 156 383 156q244 0 380 -135t136 -373v-148h-746v-8q7 -127 81.5 -197.5t207.5 -70.5q107 0 200 21t193 67v-236 q-81 -39 -175.5 -59t-229.5 -20zM403 561q0 -166 54.5 -251t177.5 -85q122 0 175.5 84.5t53.5 251.5q0 166 -54 249t-177 83q-122 0 -176 -82.5t-54 -249.5zM1405 922q-94 0 -156 -57.5t-71 -178.5h450q-2 111 -60.5 173.5t-162.5 62.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1278" d="M0 0zM639 860l305 602h334l-485 -893v-569h-308v559l-485 903h336zM297 1743q0 65 37.5 100t101.5 35q66 0 103.5 -37t37.5 -98q0 -60 -38 -96.5t-103 -36.5q-64 0 -101.5 35t-37.5 98zM700 1743q0 70 40.5 102.5t100.5 32.5q65 0 103.5 -36t38.5 -99q0 -61 -39 -97 t-103 -36q-60 0 -100.5 32.5t-40.5 100.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1243" d="M852 1241q-157 93 -234 176q-78 -81 -229 -176h-203v27q189 189 256 301h357q31 -52 107.5 -141.5t148.5 -159.5v-27h-203z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M842 1479q0 -108 -71 -174t-183 -66t-180 64t-68 174q0 108 67.5 172.5t180.5 64.5q110 0 182 -66t72 -169zM684 1477q0 45 -27 70.5t-69 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69 26t27 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1243" d="M457 1346q-31 0 -59.5 -26.5t-41.5 -80.5h-149q11 145 82.5 227t189.5 82q41 0 80.5 -16.5t78 -36t75.5 -35.5t73 -16q31 0 59.5 26t41.5 80h149q-11 -145 -83.5 -227t-188.5 -82q-41 0 -80.5 16.5t-78 36t-75.5 36t-73 16.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M61 424v250h537v-250h-537z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 436v230h860v-230h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 436v230h1884v-230h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="444" d="M39 961l-14 22q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x2019;" horiz-adv-x="444" d="M406 1462l14 -22q-50 -197 -176 -479h-219q69 296 100 501h281z" />
+<glyph unicode="&#x201a;" horiz-adv-x="596" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x201c;" horiz-adv-x="911" d="M492 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280zM25 983q22 91 72.5 228.5t103.5 250.5h219q-66 -267 -101 -501h-280z" />
+<glyph unicode="&#x201d;" horiz-adv-x="911" d="M420 1440q-50 -197 -176 -479h-219q69 296 100 501h281zM887 1440q-50 -197 -176 -479h-219q69 296 100 501h280z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1061" d="M459 215q-52 -202 -176 -479h-220q65 266 101 502h280zM926 215q-52 -202 -176 -479h-220q65 266 101 502h280z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M98 748q0 154 74 235.5t213 81.5q137 0 212 -82t75 -235q0 -152 -75.5 -235t-211.5 -83q-138 0 -212.5 83t-74.5 235z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1751" d="M117 143q0 84 45 127t131 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5zM700 143q0 84 45 127t132 43q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-85 0 -131 44.5t-46 125.5zM1284 143q0 84 45 127t131 43 q83 0 128.5 -44t45.5 -126q0 -79 -46 -124.5t-128 -45.5q-84 0 -130 44.5t-46 125.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="754" d="M82 573l371 455l219 -119l-279 -348l279 -348l-219 -119l-371 453v26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="754" d="M672 547l-371 -453l-219 119l278 348l-278 348l219 119l371 -455v-26z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M657 1462l-811 -1462h-239l811 1462h239z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M758 737h-125v-151h-238v151h-383v154l385 577h236v-563h125v-168zM395 905v164q0 86 6 184q-9 -26 -35.5 -80t-41.5 -77l-127 -191h198z" />
+<glyph unicode="&#x20ac;" d="M803 1225q-122 0 -201 -70.5t-102 -204.5h403v-176h-418l-2 -35v-47l2 -33h355v-178h-338q51 -243 321 -243q143 0 275 57v-256q-116 -59 -293 -59q-245 0 -403 133t-199 368h-137v178h118q-4 23 -4 62l2 53h-116v176h133q37 242 199 382.5t405 140.5q188 0 352 -82 l-98 -232q-69 31 -129 48.5t-125 17.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M381 741h-168v572h-197v149h564v-149h-199v-572zM956 741l-165 529h-7l4 -111v-418h-163v721h247l160 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-142z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1296" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff
new file mode 100644
index 0000000..1205787
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Bold-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot
new file mode 100644
index 0000000..1f639a1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg
new file mode 100644
index 0000000..6a2607b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansbold_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1065 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM1081 0h-301l237 1118h301z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1352" d="M0 0zM-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z M1081 0h-301l330 1556h301z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l237 1118h301zM1761 1380q0 87 48 131.5 t135 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-152 0 -152 123z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="2048" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h395l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49 l-79 -224q-69 31 -134 31q-57 0 -91.5 -40t-47.5 -105l-12 -62h219l-49 -229h-219l-215 -1010q-77 -371 -404 -371q-104 0 -174 25v242q61 -21 115 -21q136 0 172 170l205 965h-396l-215 -1010q-77 -371 -403 -371zM1778 0h-301l329 1556h301z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="586" d="M391 485h-241l157 977h340zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="928" d="M549 1462l-152 -528h-196l71 528h277zM954 1462l-151 -528h-199l74 528h276z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 846l-69 -232h258l-19 -206h-297l-116 -408h-220l117 408h-194l-115 -408h-215l113 408h-238l18 206h277l70 232h-252l18 209h289l119 407h217l-117 -407h199l116 407h215l-116 -407h239l-18 -209h-279zM553 614h197l69 232h-196z" />
+<glyph unicode="$" d="M1034 496q0 -184 -125.5 -291.5t-367.5 -124.5l-39 -199h-140l44 201q-209 12 -355 86v266q198 -107 404 -117l71 322q-163 61 -241 151t-78 214q0 173 127 279.5t350 121.5l35 151h139l-33 -151q166 -22 295 -90l-106 -232q-132 65 -242 74l-63 -299q131 -51 195 -99.5 t97 -113t33 -149.5zM594 322q63 9 102 45t39 98q0 46 -24.5 75.5t-59.5 43.5zM633 1157q-62 -7 -96.5 -41t-34.5 -94q0 -79 80 -111z" />
+<glyph unicode="%" horiz-adv-x="1753" d="M518 1274q-63 0 -110.5 -128.5t-47.5 -277.5q0 -96 56 -96q65 0 112 131t47 275q0 96 -57 96zM821 1165q0 -166 -56 -310t-151 -217t-217 -73q-139 0 -210.5 83.5t-71.5 236.5q0 169 55.5 311.5t148.5 214.5t216 72q137 0 211.5 -80t74.5 -238zM1554 1462l-1083 -1462 h-240l1088 1462h235zM1376 690q-39 0 -75 -56t-59 -154t-23 -195t55 -97q41 0 77 55t59.5 154.5t23.5 196.5q0 96 -58 96zM1679 590q0 -167 -54 -313.5t-148 -220.5t-215 -74q-144 0 -216.5 78.5t-72.5 222.5q0 177 53 322.5t148 219.5t219 74q137 0 211.5 -78.5 t74.5 -230.5z" />
+<glyph unicode="&#x26;" horiz-adv-x="1450" d="M1325 0h-350l-72 98q-175 -118 -403 -118q-209 0 -320.5 97.5t-111.5 280.5q0 145 78.5 248.5t273.5 200.5q-76 130 -76 258q0 195 117.5 307.5t316.5 112.5q169 0 266 -82.5t97 -224.5q0 -280 -365 -426l195 -263q44 57 80.5 121.5t78.5 173.5h300q-133 -313 -310 -497z M541 623q-88 -51 -123 -104.5t-35 -131.5q0 -65 45.5 -108t116.5 -43q115 0 221 59zM662 920q113 59 155.5 111t42.5 112q0 57 -30 82.5t-70 25.5q-66 0 -102.5 -46.5t-36.5 -119.5q0 -46 12 -92t29 -73z" />
+<glyph unicode="'" horiz-adv-x="522" d="M549 1462l-152 -528h-196l71 528h277z" />
+<glyph unicode="(" horiz-adv-x="694" d="M74 281q0 339 122.5 626.5t381.5 554.5h262q-255 -278 -377.5 -573.5t-122.5 -618.5q0 -308 117 -594h-234q-149 266 -149 605z" />
+<glyph unicode=")" horiz-adv-x="694" d="M618 858q0 -342 -124 -630.5t-379 -551.5h-262q499 545 499 1192q0 307 -116 594h233q149 -264 149 -604z" />
+<glyph unicode="*" horiz-adv-x="1116" d="M885 1522l-113 -353l387 29l-18 -254l-338 43l160 -336l-246 -73l-90 337l-197 -278l-207 164l275 248l-326 92l86 237l338 -174l33 369z" />
+<glyph unicode="+" d="M475 612h-366v219h366v369h219v-369h367v-219h-367v-364h-219v364z" />
+<glyph unicode="," horiz-adv-x="569" d="M377 238l8 -23q-118 -255 -262 -479h-225q74 167 194 502h285z" />
+<glyph unicode="-" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="." horiz-adv-x="584" d="M25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="/" horiz-adv-x="862" d="M1014 1462l-809 -1462h-295l809 1462h295z" />
+<glyph unicode="0" d="M1110 1012q0 -470 -168.5 -751t-472.5 -281q-198 0 -300.5 122t-102.5 365q0 297 84 537t228 360.5t333 120.5q399 0 399 -473zM684 1235q-80 0 -149.5 -104t-117.5 -302t-48 -368q0 -115 27.5 -173.5t97.5 -58.5q81 0 150.5 106t116 301t46.5 386q0 111 -30.5 162 t-92.5 51z" />
+<glyph unicode="1" d="M688 0h-305l180 829q35 152 76 287q-9 -8 -61.5 -47t-262.5 -170l-133 215l566 348h249z" />
+<glyph unicode="2" d="M913 0h-962l43 213l477 424q180 159 248.5 254.5t68.5 179.5q0 75 -41 114.5t-110 39.5q-66 0 -135.5 -33.5t-171.5 -118.5l-146 203q132 112 252 159.5t250 47.5q190 0 301 -98t111 -259q0 -107 -41 -201t-122.5 -188t-266.5 -245l-269 -222v-10h568z" />
+<glyph unicode="3" d="M1104 1149q0 -156 -94.5 -262t-261.5 -135v-4q131 -26 198.5 -106.5t67.5 -201.5q0 -133 -74 -238t-212 -163.5t-327 -58.5q-239 0 -387 79v267q84 -50 182 -75.5t191 -25.5q158 0 243 63.5t85 176.5q0 172 -258 172h-138l46 221h73q167 0 263 62t96 172q0 67 -43 104 t-121 37q-134 0 -287 -100l-127 204q124 81 232.5 113.5t246.5 32.5q190 0 298 -90.5t108 -243.5z" />
+<glyph unicode="4" d="M1028 303h-170l-63 -303h-293l63 303h-590l48 234l770 925h311l-195 -919h170zM616 543l58 248q12 58 40 164t42 141h-6q-35 -63 -132 -181l-313 -372h311z" />
+<glyph unicode="5" d="M623 922q183 0 289 -103t106 -287q0 -167 -71.5 -292t-208.5 -192.5t-330 -67.5q-117 0 -218.5 23t-162.5 58v269q174 -99 352 -99q154 0 241 71t87 194q0 94 -57.5 141t-166.5 47q-102 0 -213 -33l-104 78l207 733h755l-55 -262h-489l-88 -293q72 15 127 15z" />
+<glyph unicode="6" d="M88 469q0 202 61 395.5t167.5 335t256.5 213.5t357 72q125 0 223 -27l-51 -246q-84 25 -191 25q-194 0 -313.5 -108t-185.5 -345h4q115 166 311 166q157 0 242.5 -97t85.5 -273q0 -169 -71 -313.5t-190.5 -215.5t-277.5 -71q-212 0 -320 127t-108 362zM530 227 q99 0 161.5 94t62.5 236q0 71 -33.5 113.5t-102.5 42.5q-60 0 -114.5 -35.5t-87.5 -95.5t-33 -160q0 -91 40 -143t107 -52z" />
+<glyph unicode="7" d="M78 0l737 1202h-629l56 260h975l-41 -194l-752 -1268h-346z" />
+<glyph unicode="8" d="M721 1485q123 0 215.5 -42t141 -118t48.5 -174q0 -134 -80.5 -233.5t-230.5 -151.5q217 -141 217 -365q0 -122 -63.5 -218.5t-181 -149.5t-273.5 -53q-214 0 -336.5 100t-122.5 270q0 298 348 426q-165 132 -165 299q0 119 58 212.5t168 145.5t257 52zM582 643 q-116 -45 -173 -107t-57 -153q0 -81 50 -128.5t135 -47.5q93 0 147.5 53.5t54.5 138.5q0 73 -36.5 131.5t-120.5 112.5zM694 1260q-76 0 -121 -46.5t-45 -119.5q0 -132 123 -201q185 72 185 221q0 68 -39.5 107t-102.5 39z" />
+<glyph unicode="9" d="M1092 1001q0 -280 -99 -533t-264 -370.5t-403 -117.5q-128 0 -240 32v256q111 -41 227 -41q121 0 207.5 49t144 138.5t99.5 257.5h-4q-111 -158 -295 -158q-163 0 -252.5 103.5t-89.5 285.5q0 166 73 305.5t196 208t286 68.5q203 0 308.5 -123t105.5 -361zM645 1237 q-65 0 -115.5 -42t-78 -114t-27.5 -153q0 -87 37.5 -131.5t105.5 -44.5q60 0 111.5 36.5t82 100t30.5 158.5q0 84 -35.5 137t-110.5 53z" />
+<glyph unicode=":" horiz-adv-x="584" d="M207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode=";" horiz-adv-x="584" d="M385 215q-118 -255 -262 -479h-225q74 167 194 502h285zM207 940q0 92 55.5 145.5t149.5 53.5q68 0 108.5 -38.5t40.5 -107.5q0 -86 -54.5 -140t-144.5 -54q-72 0 -113.5 36.5t-41.5 104.5z" />
+<glyph unicode="&#x3c;" d="M1061 203l-952 438v143l952 496v-240l-643 -317l643 -281v-239z" />
+<glyph unicode="=" d="M109 807v217h952v-217h-952zM109 418v219h952v-219h-952z" />
+<glyph unicode="&#x3e;" d="M109 442l643 281l-643 317v240l952 -496v-143l-952 -438v239z" />
+<glyph unicode="?" horiz-adv-x="940" d="M260 485l14 78q19 103 73.5 177t172.5 155q124 84 157.5 127t33.5 96q0 119 -133 119q-50 0 -106.5 -16t-201.5 -84l-92 221q230 125 445 125q177 0 280 -87.5t103 -244.5q0 -83 -28.5 -149.5t-82.5 -123t-190 -147.5q-64 -43 -96.5 -73t-52.5 -64.5t-38 -108.5h-258z M166 115q0 91 55 144.5t150 53.5q68 0 108.5 -38t40.5 -107q0 -87 -55 -141t-143 -54q-74 0 -115 38t-41 104z" />
+<glyph unicode="@" horiz-adv-x="1753" d="M1733 840q0 -173 -64 -321t-177.5 -231t-254.5 -83q-88 0 -144.5 38.5t-72.5 108.5h-6q-50 -77 -113 -112t-147 -35q-127 0 -198 79.5t-71 229.5q0 147 67.5 276.5t187.5 205t268 75.5q185 0 327 -55l-106 -420q-11 -44 -19 -76.5t-8 -64.5q0 -68 58 -68q66 0 124 64 t92.5 171t34.5 214q0 213 -123.5 325.5t-359.5 112.5q-203 0 -366.5 -94t-255 -266t-91.5 -392q0 -243 134 -380.5t376 -137.5q117 0 219.5 20t221.5 66v-186q-230 -90 -465 -90q-217 0 -378 85.5t-246 241.5t-85 359q0 279 120.5 497t343 341.5t497.5 123.5 q318 0 499 -163.5t181 -458.5zM995 889q-82 0 -145.5 -51.5t-100 -137t-36.5 -174.5q0 -65 24.5 -102t69.5 -37q141 0 213 270l57 222q-36 10 -82 10z" />
+<glyph unicode="A" horiz-adv-x="1286" d="M842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333z" />
+<glyph unicode="B" horiz-adv-x="1270" d="M788 1462q229 0 346 -81.5t117 -243.5q0 -150 -83 -247.5t-236 -129.5v-6q100 -26 159.5 -96.5t59.5 -180.5q0 -229 -153 -353t-423 -124h-522l309 1462h426zM545 883h149q121 0 181.5 48.5t60.5 139.5q0 137 -170 137h-152zM412 256h180q117 0 183.5 58t66.5 161 q0 162 -183 162h-165z" />
+<glyph unicode="C" horiz-adv-x="1253" d="M905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z" />
+<glyph unicode="D" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l309 1462h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-202 -952h106z" />
+<glyph unicode="E" horiz-adv-x="1110" d="M870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512z" />
+<glyph unicode="F" horiz-adv-x="1087" d="M358 0h-305l309 1462h814l-54 -254h-508l-79 -377h473l-56 -253h-473z" />
+<glyph unicode="G" horiz-adv-x="1413" d="M754 821h563l-162 -762q-134 -46 -248.5 -62.5t-242.5 -16.5q-259 0 -400 147t-141 422q0 268 107 484.5t301 334t448 117.5q218 0 410 -99l-115 -251q-74 40 -148 64t-161 24q-153 0 -273.5 -83t-189 -236.5t-68.5 -330.5q0 -172 72.5 -252.5t222.5 -80.5q76 0 170 24 l66 299h-267z" />
+<glyph unicode="H" horiz-adv-x="1434" d="M1135 0h-306l134 631h-471l-134 -631h-305l309 1462h306l-121 -573h471l121 573h305z" />
+<glyph unicode="I" horiz-adv-x="659" d="M53 0l312 1462h305l-312 -1462h-305z" />
+<glyph unicode="J" horiz-adv-x="678" d="M-135 -430q-94 0 -187 27v253q88 -20 164 -20q99 0 160.5 60.5t89.5 191.5l293 1380h305l-303 -1423q-52 -245 -175.5 -357t-346.5 -112z" />
+<glyph unicode="K" horiz-adv-x="1255" d="M1141 0h-338l-211 592l-125 -70l-109 -522h-305l309 1462h306l-152 -702l158 205l409 497h361l-594 -700z" />
+<glyph unicode="L" horiz-adv-x="1061" d="M53 0l309 1462h306l-256 -1206h512l-54 -256h-817z" />
+<glyph unicode="M" horiz-adv-x="1802" d="M838 369l551 1093h423l-309 -1462h-280l145 692q53 247 105 441h-5l-569 -1133h-281l-61 1133h-4q-11 -88 -38 -231t-187 -902h-275l309 1462h404l68 -1093h4z" />
+<glyph unicode="N" horiz-adv-x="1546" d="M1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274z" />
+<glyph unicode="O" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246t56 357 q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="P" horiz-adv-x="1188" d="M522 774h56q142 0 223.5 69t81.5 185q0 180 -195 180h-74zM1190 1036q0 -241 -169.5 -378.5t-467.5 -137.5h-86l-109 -520h-305l309 1462h338q242 0 366 -106.5t124 -319.5z" />
+<glyph unicode="Q" horiz-adv-x="1495" d="M1432 938q0 -316 -122.5 -555.5t-334.5 -337.5l254 -393h-359l-178 328h-26q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87 t155.5 246t56 357q0 142 -65 219.5t-183 77.5z" />
+<glyph unicode="R" horiz-adv-x="1247" d="M530 813h78q131 0 204 57t73 174q0 82 -47.5 123t-149.5 41h-74zM477 561l-119 -561h-305l309 1462h359q237 0 356 -102t119 -299q0 -158 -83 -271.5t-239 -168.5l261 -621h-332l-207 561h-119z" />
+<glyph unicode="S" horiz-adv-x="1085" d="M946 432q0 -209 -148 -330.5t-401 -121.5q-221 0 -356 90v274q193 -108 358 -108q112 0 175 42.5t63 116.5q0 43 -13.5 75.5t-38.5 60.5t-124 102q-138 99 -194 196t-56 209q0 129 62 230.5t176.5 158t263.5 56.5q217 0 397 -99l-109 -233q-156 74 -288 74 q-83 0 -136 -45t-53 -119q0 -61 33 -106.5t148 -120.5q121 -80 181 -176.5t60 -225.5z" />
+<glyph unicode="T" horiz-adv-x="1087" d="M571 0h-305l254 1204h-352l55 258h1010l-55 -258h-353z" />
+<glyph unicode="U" horiz-adv-x="1415" d="M1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306z" />
+<glyph unicode="V" horiz-adv-x="1208" d="M535 299q78 221 110 283l432 880h316l-748 -1462h-334l-127 1462h295l51 -880q4 -45 4 -133q-2 -103 -6 -150h7z" />
+<glyph unicode="W" horiz-adv-x="1831" d="M1006 1018q-46 -146 -115 -299l-324 -719h-338l-45 1462h287l6 -798q0 -52 -4 -173t-10 -174h6q22 64 67 180.5t60 145.5l369 819h270l21 -873q0 -146 -9 -272h6q43 129 131 349l330 796h309l-647 -1462h-346l-22 721l-2 139q0 88 4 158h-4z" />
+<glyph unicode="X" horiz-adv-x="1241" d="M1124 0h-331l-172 543l-396 -543h-342l576 764l-238 698h320l153 -518l363 518h344l-545 -725z" />
+<glyph unicode="Y" horiz-adv-x="1155" d="M627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312z" />
+<glyph unicode="Z" horiz-adv-x="1098" d="M920 0h-981l38 201l777 1005h-543l53 256h936l-41 -202l-782 -1004h596z" />
+<glyph unicode="[" horiz-adv-x="678" d="M436 -324h-473l381 1786h473l-45 -211h-215l-291 -1364h215z" />
+<glyph unicode="\" horiz-adv-x="862" d="M481 1462l224 -1462h-267l-217 1462h260z" />
+<glyph unicode="]" horiz-adv-x="678" d="M-92 -113h213l291 1364h-215l45 211h473l-381 -1786h-471z" />
+<glyph unicode="^" horiz-adv-x="1081" d="M20 520l619 950h147l277 -950h-223l-174 633l-402 -633h-244z" />
+<glyph unicode="_" horiz-adv-x="819" d="M635 -324h-821l30 140h822z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M934 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -108t84.5 -298t-68 -367.5t-187 -281.5t-263 -104q-194 0 -276 163h-8l-58 -143h-231l330 1556h301l-62 -288q-41 -182 -84 -299h8q78 98 142.5 134t140.5 36zM692 895q-68 0 -130 -65t-102 -180.5t-40 -250.5q0 -80 37 -128t102 -48q67 0 128 69 t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="c" horiz-adv-x="989" d="M506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z" />
+<glyph unicode="d" horiz-adv-x="1217" d="M406 -20q-147 0 -231.5 107t-84.5 300q0 196 71.5 374.5t188.5 278t258 99.5q82 0 141.5 -37t112.5 -127h8l2 28q6 110 25 195l76 358h301l-330 -1556h-229l14 145h-4q-71 -87 -148.5 -126t-170.5 -39zM532 223q66 0 128.5 68.5t100.5 182.5t38 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -176 137 -176z" />
+<glyph unicode="e" horiz-adv-x="1141" d="M696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5t147.5 -52.5 q87 0 158 19t172 67v-227q-172 -86 -390 -86z" />
+<glyph unicode="f" horiz-adv-x="764" d="M-45 -492q-104 0 -174 25v242q61 -21 115 -21q61 0 107 40t65 130l204 965h-163l30 145l183 84l18 84q41 190 138.5 277.5t273.5 87.5q131 0 235 -49l-80 -224q-69 31 -133 31q-57 0 -92 -40t-47 -105l-12 -62h219l-49 -229h-220l-215 -1010q-77 -371 -403 -371z" />
+<glyph unicode="g" horiz-adv-x="1108" d="M1186 1116l-35 -166l-174 -41q16 -52 16 -118q0 -195 -121 -308.5t-329 -113.5q-59 0 -99 10q-84 -27 -84 -78q0 -34 30 -49t89 -23l137 -18q163 -21 237.5 -84.5t74.5 -183.5q0 -211 -156 -323t-446 -112q-208 0 -324.5 75.5t-116.5 207.5q0 102 68.5 175.5t214.5 121.5 q-74 47 -74 133q0 71 44.5 122.5t146.5 98.5q-65 49 -96 112t-31 153q0 199 125.5 315.5t341.5 116.5q83 0 166 -23h395zM365 -6q-106 -14 -160.5 -57t-54.5 -109q0 -115 194 -115q151 0 228 45t77 127q0 39 -32.5 60t-137.5 35zM614 948q-77 0 -124.5 -76.5t-47.5 -191.5 q0 -119 103 -119q75 0 121.5 76.5t46.5 193.5t-99 117z" />
+<glyph unicode="h" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l330 1556h301q-39 -181 -60 -278t-86 -309h8q62 77 138 123.5t176 46.5q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="i" horiz-adv-x="608" d="M322 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123zM338 0h-301l237 1118h301z" />
+<glyph unicode="j" horiz-adv-x="608" d="M-90 -492q-104 0 -174 25v242q61 -21 114 -21q137 0 173 170l253 1194h302l-265 -1239q-77 -371 -403 -371zM324 1380q0 87 47.5 131.5t134.5 44.5q73 0 111 -31t38 -89q0 -80 -44 -129.5t-136 -49.5q-151 0 -151 123z" />
+<glyph unicode="k" horiz-adv-x="1163" d="M920 1118h344l-498 -504l285 -614h-336l-183 420l-120 -72l-74 -348h-301l330 1556h301l-148 -694q-8 -41 -29 -117l-28 -102h4z" />
+<glyph unicode="l" horiz-adv-x="608" d="M338 0h-301l330 1556h301z" />
+<glyph unicode="m" horiz-adv-x="1853" d="M844 1139q219 0 262 -228h6q68 110 160.5 169t197.5 59q136 0 207.5 -85t71.5 -237q0 -76 -23 -180l-133 -637h-301l138 653q16 68 16 119q0 123 -98 123q-92 0 -166.5 -112t-118.5 -318l-96 -465h-301l137 653q16 68 16 119q0 123 -98 123q-92 0 -167 -114t-118 -318 l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228z" />
+<glyph unicode="n" horiz-adv-x="1237" d="M977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180z" />
+<glyph unicode="o" horiz-adv-x="1198" d="M805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5q196 0 310 -118 t114 -325z" />
+<glyph unicode="p" horiz-adv-x="1219" d="M813 1139q146 0 230.5 -107.5t84.5 -300.5q0 -191 -68.5 -367.5t-187.5 -280t-262 -103.5q-83 0 -143 37t-111 126h-8q-12 -159 -43 -295l-72 -340h-301l342 1610h230l-17 -170h9q138 191 317 191zM692 895q-68 0 -131.5 -67.5t-102 -180t-38.5 -248.5q0 -80 37 -128 t102 -48q67 0 128 69t98.5 189.5t37.5 237.5q0 176 -131 176z" />
+<glyph unicode="q" horiz-adv-x="1217" d="M391 -20q-88 0 -156 47.5t-106.5 138.5t-38.5 219q0 198 72 377.5t189 278t257 98.5q86 0 152.5 -37.5t124.5 -126.5h8l57 143h232l-342 -1610h-301q47 218 73 337.5t84 304.5h-8q-72 -94 -143 -132t-154 -38zM535 223q64 0 127.5 70t100 181t36.5 245q0 80 -37.5 128 t-102.5 48q-68 0 -129.5 -72t-98 -190t-36.5 -234q0 -88 36.5 -132t103.5 -44z" />
+<glyph unicode="r" horiz-adv-x="862" d="M842 1139q59 0 96 -11l-66 -290q-45 16 -100 16q-116 0 -203.5 -91.5t-124.5 -262.5l-106 -500h-301l237 1118h230l-21 -207h6q147 228 353 228z" />
+<glyph unicode="s" horiz-adv-x="969" d="M829 369q0 -188 -124.5 -288.5t-346.5 -100.5q-107 0 -186.5 15t-148.5 50v248q157 -90 319 -90q80 0 131 32.5t51 88.5q0 43 -37 77t-131 86q-121 68 -169 135.5t-48 159.5q0 170 110.5 263.5t315.5 93.5q201 0 363 -95l-99 -215q-140 84 -258 84q-57 0 -92 -25.5 t-35 -68.5q0 -39 32 -68.5t120 -74.5q123 -63 178 -137t55 -170z" />
+<glyph unicode="t" horiz-adv-x="840" d="M514 223q65 0 162 35v-225q-111 -53 -266 -53q-150 0 -220.5 63t-70.5 195q0 50 12 112l115 539h-152l29 147l196 84l132 236h194l-49 -238h283l-50 -229h-282l-115 -539q-6 -30 -6 -53q0 -74 88 -74z" />
+<glyph unicode="u" horiz-adv-x="1237" d="M262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213z" />
+<glyph unicode="v" horiz-adv-x="1049" d="M455 301q55 153 92 223l297 594h323l-604 -1118h-323l-138 1118h295l45 -586q7 -133 7 -231h6z" />
+<glyph unicode="w" horiz-adv-x="1614" d="M856 860q-62 -178 -123 -319l-233 -541h-324l-51 1118h281l4 -495l-4 -167l-7 -171h4q6 20 14 41.5t51 136.5t46 119l231 536h328v-536q0 -142 -10 -297h6l28 80q73 208 95 258l219 495h307l-530 -1118h-330l-6 520q0 155 10 340h-6z" />
+<glyph unicode="x" horiz-adv-x="1087" d="M379 573l-225 545h321l115 -334l244 334h354l-467 -561l244 -557h-326l-125 342l-264 -342h-350z" />
+<glyph unicode="y" horiz-adv-x="1063" d="M102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49z" />
+<glyph unicode="z" horiz-adv-x="932" d="M748 0h-795l35 180l575 705h-397l51 233h750l-43 -200l-566 -685h439z" />
+<glyph unicode="{" horiz-adv-x="727" d="M201 319q0 140 -209 140l45 229q122 0 192.5 41.5t92.5 138.5l61 285q38 170 131 239.5t270 69.5h84l-49 -225q-90 -2 -130.5 -34.5t-55.5 -106.5l-66 -297q-45 -207 -276 -236v-8q85 -26 126.5 -82.5t41.5 -134.5q0 -44 -15 -113l-36 -178q-7 -28 -7 -51q0 -54 33.5 -74 t91.5 -20v-226h-53q-167 0 -253.5 63.5t-86.5 184.5q0 57 14 125l39 184q15 69 15 86z" />
+<glyph unicode="|" d="M455 1550h219v-2015h-219v2015z" />
+<glyph unicode="}" horiz-adv-x="727" d="M256 1462q340 0 340 -248q0 -56 -14 -124l-39 -185q-15 -69 -15 -86q0 -139 209 -139l-45 -229q-122 0 -192.5 -42t-91.5 -139l-62 -284q-37 -170 -130.5 -240t-270.5 -70h-45v226q93 3 137 35.5t59 105.5l66 297q25 111 95 166t181 69v9q-168 51 -168 217q0 43 15 112 l37 179q6 30 6 51q0 54 -36.5 74t-109.5 20l41 225h33z" />
+<glyph unicode="~" d="M342 672q-54 0 -116.5 -33t-116.5 -88v231q101 109 256 109q64 0 117 -14t139 -50q64 -27 111 -41t95 -14q51 0 112 30.5t122 90.5v-231q-103 -109 -256 -109q-59 0 -109 11.5t-147 51.5q-89 38 -127 47t-80 9z" />
+<glyph unicode="&#xa1;" horiz-adv-x="586" d="M182 606h242l-158 -977h-340zM549 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 85 54 139.5t144 54.5q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xa2;" d="M575 -20h-188l49 210q-134 36 -203 136t-69 258q0 193 62.5 355t178 262.5t267.5 123.5l33 158h188l-35 -158q118 -14 225 -65l-92 -230q-53 23 -105 40t-118 17q-133 0 -216 -143t-83 -336q0 -96 45 -144t127 -48q75 0 140 23.5t134 58.5v-246q-136 -71 -299 -80z" />
+<glyph unicode="&#xa3;" d="M872 1485q195 0 369 -86l-113 -232q-141 68 -237 68q-75 0 -123 -39.5t-68 -132.5l-47 -229h299l-45 -220h-299l-18 -84q-42 -195 -209 -270h655l-55 -260h-993l49 246q196 48 244 264l22 104h-192l45 220h192l49 247q41 197 162 300.5t313 103.5z" />
+<glyph unicode="&#xa4;" d="M190 723q0 102 54 197l-129 127l147 147l127 -127q91 53 197 53q105 0 196 -55l127 129l150 -143l-129 -129q53 -89 53 -199q0 -107 -53 -199l125 -125l-146 -145l-127 125q-95 -51 -196 -51q-115 0 -199 51l-125 -123l-145 145l127 125q-54 93 -54 197zM397 723 q0 -77 54.5 -132.5t134.5 -55.5q81 0 136.5 55t55.5 133q0 80 -56.5 135t-135.5 55q-78 0 -133.5 -56t-55.5 -134z" />
+<glyph unicode="&#xa5;" d="M608 872l371 590h311l-506 -747h203l-39 -178h-252l-28 -138h252l-37 -178h-252l-47 -221h-291l47 221h-252l37 178h252l29 138h-252l39 178h196l-192 747h297z" />
+<glyph unicode="&#xa6;" d="M455 1550h219v-815h-219v815zM455 350h219v-815h-219v815z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M150 760q0 89 47.5 163t154.5 142q-42 34 -70 84.5t-28 107.5q0 149 117 234.5t313 85.5q172 0 344 -88l-82 -193q-147 84 -282 84q-144 0 -144 -106q0 -43 40.5 -76t127.5 -72q242 -106 242 -303q0 -188 -193 -303q38 -35 64 -85.5t26 -108.5q0 -161 -126 -253.5 t-345 -92.5q-204 0 -336 75v224q172 -105 345 -105q99 0 144.5 35t45.5 92q0 39 -33 72.5t-127 79.5q-117 57 -181 131t-64 176zM506 967q-51 -25 -82 -70.5t-31 -99.5t43.5 -96.5t143.5 -88.5q49 31 75.5 78.5t26.5 95.5q0 109 -176 181z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M932 1010q-111 0 -163 -73t-52 -214q0 -134 55.5 -203t159.5 -69q43 0 108.5 15.5t124.5 43.5v-191q-131 -57 -262 -57q-196 0 -307 122.5t-111 336.5q0 225 117.5 351t325.5 126q142 0 284 -72l-75 -174q-114 58 -205 58zM125 731q0 200 100 375t275 276t377 101 q199 0 373.5 -99t276 -275.5t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83 q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z" />
+<glyph unicode="&#xaa;" horiz-adv-x="772" d="M369 752q-103 0 -160 70t-57 198q0 117 46 228t123 171t177 60q120 0 180 -103h6l39 90h154l-158 -702h-154l8 92h-2q-80 -104 -202 -104zM442 903q45 0 84 41.5t65.5 120t26.5 154.5q0 106 -88 106q-73 0 -123.5 -96t-50.5 -215q0 -111 86 -111z" />
+<glyph unicode="&#xab;" horiz-adv-x="1151" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18zM559 569l402 463l190 -155l-279 -334l136 -350l-246 -103l-203 461v18z" />
+<glyph unicode="&#xac;" d="M1061 248h-219v364h-733v219h952v-583z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M41 424zM41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M1237 899q0 -86 -44 -149.5t-130 -96.5l197 -360h-254l-138 297h-67v-297h-230v874h308q173 0 265.5 -67.5t92.5 -200.5zM801 758h51q72 0 113 31t41 92q0 59 -35.5 88.5t-116.5 29.5h-53v-241zM125 731q0 200 100 375t275 276t377 101q199 0 373.5 -99t276 -275.5 t101.5 -377.5q0 -199 -98.5 -373t-272.5 -276t-380 -102q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM266 731q0 -164 81.5 -305t224 -223t305.5 -82q167 0 308 83t221.5 223.5t80.5 303.5t-80.5 303.5t-222 223.5t-307.5 83q-164 0 -306.5 -82.5t-223.5 -223.5t-81 -304z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036l45 201h1036z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M164 1137q0 93 46.5 173.5t127.5 126.5t172 46q93 0 173.5 -47t126.5 -127t46 -172q0 -93 -46 -173t-126 -125.5t-174 -45.5q-93 0 -173 45t-126.5 125t-46.5 174zM354 1137q0 -63 45.5 -108.5t110.5 -45.5q66 0 111 46t45 108q0 63 -45.5 110t-110.5 47t-110.5 -47.5 t-45.5 -109.5z" />
+<glyph unicode="&#xb1;" d="M475 674h-366v219h366v369h219v-369h367v-219h-367v-365h-219v365zM109 0v219h952v-219h-952z" />
+<glyph unicode="&#xb2;" horiz-adv-x="776" d="M707 586h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347z" />
+<glyph unicode="&#xb3;" horiz-adv-x="776" d="M813 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66 l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M483 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1249" d="M424 348q0 -60 31.5 -92.5t79.5 -32.5q90 0 162.5 106.5t117.5 319.5l98 469h301l-237 -1118h-229l18 176h-6q-117 -196 -266 -196q-51 0 -89.5 19.5t-58.5 47.5h-6q-8 -66 -21.5 -139t-82.5 -400h-304l342 1610h301l-135 -645q-16 -70 -16 -125z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1202 -260h-162v1616h-166v-1616h-161v819q-62 -18 -146 -18q-216 0 -318 125t-102 376q0 256 107.5 385t343.5 129h604v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="584" d="M131 553zM131 695q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M262 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xb9;" horiz-adv-x="776" d="M528 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165z" />
+<glyph unicode="&#xba;" horiz-adv-x="754" d="M809 1194q0 -128 -48.5 -232.5t-132.5 -157t-196 -52.5q-134 0 -202 75t-68 211q0 197 104 319t277 122q129 0 197.5 -73.5t68.5 -211.5zM522 1315q-64 0 -107.5 -89.5t-43.5 -199.5q0 -111 80 -111q63 0 105 85.5t42 207.5q0 107 -76 107z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1151" d="M1079 535l-401 -463l-191 155l279 334l-135 350l246 103l202 -461v-18zM592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1804" d="M97 0zM1500 1462l-1084 -1462h-239l1087 1462h236zM496 1462h207l-186 -876h-246l84 397q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1573 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1252 320l58 231l22 74q-13 -20 -43 -58 t-211 -247h174z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1804" d="M97 0zM1588 1h-648l35 166l273 219q111 91 141 122t44.5 59t14.5 56q0 42 -25.5 62t-60.5 20q-86 0 -188 -82l-100 158q74 57 156 87t192 30q123 0 196.5 -63t73.5 -160q0 -70 -22 -123t-70 -103.5t-189 -152.5l-129 -95h347zM496 1462h207l-186 -876h-246l84 397 q24 109 55 207q-16 -15 -80 -60l-131 -81l-102 165zM1500 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1804" d="M133 0zM1633 1462l-1084 -1462h-239l1087 1462h236zM1634 152h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM1313 320l58 231l22 74q-13 -20 -43 -58t-211 -247h174zM854 1270q0 -87 -51 -145.5t-166 -88.5v-4q154 -33 154 -176q0 -131 -107 -209 t-285 -78q-75 0 -145.5 15.5t-120.5 40.5v192q125 -72 254 -72q76 0 125 30.5t49 88.5q0 37 -26 62.5t-88 25.5h-127l34 160h90q84 0 132.5 28t48.5 85q0 40 -26 60t-71 20q-86 0 -188 -66l-82 150q142 92 313 92q130 0 206.5 -55.5t76.5 -155.5z" />
+<glyph unicode="&#xbf;" horiz-adv-x="940" d="M678 606l-14 -78q-19 -105 -76.5 -180t-169.5 -151q-122 -83 -156.5 -126t-34.5 -98q0 -118 133 -118q50 0 106.5 16t201.5 84l92 -221q-221 -125 -445 -125q-177 0 -280 87.5t-103 244.5q0 82 28.5 148.5t83.5 124t189 146.5q93 62 128 106.5t51 106.5l8 33h258z M772 977q0 -92 -55.5 -145.5t-149.5 -53.5q-68 0 -108.5 38t-40.5 108q0 86 54.5 140t143.5 54q73 0 114.5 -37t41.5 -104z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM965 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM735 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1235 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z " />
+<glyph unicode="&#xc3;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM999 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5 t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM516 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM918 1720q0 78 42 118t120 40 q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1286" d="M0 0zM842 348h-473l-172 -348h-320l766 1468h373l147 -1468h-297zM827 608l-26 350q-10 131 -10 253v36q-44 -120 -109 -254l-188 -385h333zM1087 1567q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170z M930 1565q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1833" d="M1593 0h-817l74 348h-426l-219 -348h-328l922 1462h1104l-54 -254h-512l-67 -321h477l-55 -254h-478l-79 -377h512zM905 608l127 600h-80l-364 -600h317z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1253" d="M123 0zM905 1227q-132 0 -237.5 -81t-169.5 -238.5t-64 -338.5q0 -167 68.5 -248t218.5 -81q146 0 338 77v-260q-199 -77 -400 -77q-254 0 -395 149.5t-141 423.5q0 262 104 482.5t278 335t400 114.5q125 0 222 -22.5t208 -82.5l-118 -250q-106 59 -175 78t-137 19z M825 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM906 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM608 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM1177 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1110" d="M53 0zM870 0h-817l309 1462h818l-54 -254h-512l-67 -321h477l-55 -254h-477l-80 -377h512zM438 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM840 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5 t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xcc;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM667 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM414 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM937 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xcf;" horiz-adv-x="659" d="M53 0zM53 0l312 1462h305l-312 -1462h-305zM222 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM624 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1386" d="M1323 909q0 -280 -98 -486.5t-283.5 -314.5t-437.5 -108h-451l125 596h-141l55 254h139l131 612h396q270 0 417.5 -143t147.5 -410zM518 256q148 0 258 76t172 223.5t62 337.5q0 154 -72.5 234.5t-208.5 80.5h-115l-75 -358h237l-55 -254h-238l-71 -340h106z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1546" d="M53 0zM1247 0h-342l-356 1106h-6l-4 -32q-32 -216 -66 -386l-145 -688h-275l309 1462h357l340 -1077h4q12 76 39 217t180 860h274zM1114 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36 t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1053 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM753 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1308 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM1071 1579q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1495" d="M123 0zM1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q255 0 395 -144t140 -403zM872 1227q-121 0 -222 -91.5t-158.5 -251.5t-57.5 -347q0 -147 66.5 -222t187.5 -75t220.5 87t155.5 246 t56 357q0 142 -65 219.5t-183 77.5zM585 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM987 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xd7;" d="M428 723l-299 301l152 154l301 -299l305 299l153 -150l-305 -305l301 -303l-149 -152l-305 301l-301 -299l-150 152z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1495" d="M1432 938q0 -283 -99 -506.5t-271 -337.5t-396 -114q-180 0 -304 71l-108 -137l-154 115l121 151q-98 138 -98 357q0 265 99 487.5t273 341.5t402 119q182 0 305 -76l105 131l151 -117l-117 -145q91 -134 91 -340zM870 1233q-126 0 -229 -91.5t-160 -252.5t-57 -352 q0 -32 8 -101l596 754q-69 43 -158 43zM1133 930l-5 80l-589 -740q59 -37 153 -37q124 0 226 89t158.5 247.5t56.5 360.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1002 1579h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM757 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5 t-194 -158.5h-209v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM1284 1579h-198q-63 53 -162 168q-105 -88 -232 -168h-217 v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1415" d="M141 0zM1434 1462l-201 -946q-57 -266 -218 -401t-419 -135q-212 0 -333.5 113.5t-121.5 307.5q0 72 15 138l196 923h305l-194 -919q-17 -74 -17 -125q0 -178 189 -178q123 0 195 76.5t104 228.5l194 917h306zM565 1720q0 78 42.5 118t119.5 40q133 0 133 -108 q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM967 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM606 1604q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1188" d="M1143 807q0 -243 -170.5 -378.5t-466.5 -135.5h-86l-62 -293h-305l309 1462h306l-50 -229h35q242 0 366 -106.5t124 -319.5zM475 547h55q139 0 222.5 66.5t83.5 185.5q0 180 -195 180h-74z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1350" d="M846 1567q208 0 331 -90t123 -240q0 -114 -49 -192t-178 -152q-73 -42 -96 -68.5t-23 -54.5q0 -23 22 -49.5t79 -69.5q107 -83 144.5 -150.5t37.5 -150.5q0 -170 -123.5 -270t-337.5 -100q-187 0 -297 61v240q128 -78 258 -78q101 0 148 33t47 86q0 40 -26.5 75 t-108.5 97q-94 72 -129 130t-35 126q0 84 45 145t162 127q66 37 104.5 76t38.5 96q0 62 -39.5 98.5t-124.5 36.5q-96 0 -156 -51.5t-85 -171.5l-254 -1219q-43 -198 -147 -288.5t-277 -90.5q-90 0 -160 25v242q61 -21 115 -21q133 0 170 178l254 1207q47 224 182 326 t385 102z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM869 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM598 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1120 1240h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM884 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM397 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM799 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1217" d="M90 0zM406 -20q-147 0 -231.5 106.5t-84.5 298.5q0 198 72 377.5t189 278t257 98.5q97 0 167.5 -42t109.5 -122h8l57 143h232l-238 -1118h-229l14 145h-4q-134 -165 -319 -165zM524 223q69 0 133 67t103 181.5t39 259.5q0 71 -38.5 117.5t-101.5 46.5q-68 0 -129.5 -72 t-98 -190t-36.5 -234q0 -88 33.5 -132t95.5 -44zM1023 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM866 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z " />
+<glyph unicode="&#xe6;" horiz-adv-x="1786" d="M1206 -20q-109 0 -179.5 27t-117.5 87l-16 -94h-188l14 145h-6q-71 -88 -146.5 -126.5t-167.5 -38.5q-146 0 -227.5 109t-81.5 296q0 200 68.5 375.5t185 277t258.5 101.5q96 0 160.5 -38.5t114.5 -125.5h6l57 143h188l-18 -90q44 49 120.5 80t168.5 31 q157 0 246.5 -83.5t89.5 -221.5q0 -187 -167 -288.5t-476 -101.5h-52l-2 -19v-19q0 -96 55.5 -147.5t159.5 -51.5q66 0 152 23t162 63v-227q-179 -86 -361 -86zM518 223q72 0 134 68t99 184.5t37 243.5q0 80 -33 128t-102 48q-68 0 -128 -69t-95 -185.5t-35 -241.5 q0 -84 32.5 -130t90.5 -46zM1341 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95z" />
+<glyph unicode="&#xe7;" horiz-adv-x="989" d="M90 0zM506 -20q-201 0 -308.5 107.5t-107.5 303.5q0 212 74.5 385.5t209.5 268t308 94.5q182 0 328 -72l-92 -229q-54 23 -106 40t-118 17q-85 0 -153.5 -64t-107 -175.5t-38.5 -239.5q0 -96 45.5 -144.5t126.5 -48.5q76 0 141 23.5t134 58.5v-246q-152 -79 -336 -79z M653 -250q0 -116 -83 -179t-234 -63q-86 0 -152 23v168q63 -23 125 -23q102 0 102 82q0 34 -31 56.5t-110 31.5l96 154h185l-39 -72q141 -49 141 -178z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM849 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM528 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM1101 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1141" d="M90 0zM696 922q-88 0 -166 -80t-102 -195h45q155 0 241.5 48.5t86.5 131.5q0 95 -105 95zM532 -20q-210 0 -326 113t-116 319q0 207 82.5 377.5t223.5 260t319 89.5q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-477 -101.5h-51l-2 -21v-20q0 -91 51.5 -143.5 t147.5 -52.5q87 0 158 19t172 67v-227q-172 -86 -390 -86zM365 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM767 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xec;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM579 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM291 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="608" d="M36 0zM338 0h-301l237 1118h301zM845 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xef;" horiz-adv-x="608" d="M37 0zM338 0h-301l237 1118h301zM126 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM528 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1182" d="M618 1309q-34 34 -124 80l118 186q134 -61 232 -139l237 131l76 -152l-192 -106q81 -107 113 -235t32 -279q0 -249 -69.5 -432.5t-203.5 -283t-323 -99.5q-216 0 -329 110t-113 316q0 165 64.5 301t180.5 212t265 76q83 0 151.5 -31t114.5 -94h6q-20 213 -117 310 l-231 -131l-88 147zM528 205q66 0 122.5 55.5t89 148.5t32.5 193q0 77 -38.5 122.5t-108.5 45.5q-73 0 -130 -53t-88.5 -143t-31.5 -197q0 -81 39 -126.5t114 -45.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1237" d="M37 0zM977 0h-301l137 653q16 68 16 119q0 123 -108 123q-92 0 -167 -114t-118 -318l-98 -463h-301l237 1118h230l-21 -207h6q146 228 355 228q138 0 213.5 -83.5t75.5 -238.5q0 -73 -23 -180zM909 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28 t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311q36 -148 115 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM571 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM1109 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM865 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1198" d="M90 0zM805 696q0 197 -143 197q-75 0 -134.5 -61t-97 -179t-37.5 -243q0 -185 150 -185q75 0 135 61.5t93.5 171t33.5 238.5zM1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-195 0 -311.5 117.5t-116.5 312.5q0 213 71.5 379.5t206.5 258t316 91.5 q196 0 310 -118t114 -325zM386 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM788 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xf7;" d="M109 612v219h952v-219h-952zM444 373q0 76 37 113.5t103 37.5t102.5 -39t36.5 -112q0 -70 -37 -111t-102 -41t-102.5 39t-37.5 113zM444 1071q0 75 37 113.5t103 38.5q67 0 103 -40.5t36 -111.5q0 -70 -37 -110.5t-102 -40.5t-102.5 39t-37.5 112z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1198" d="M1108 696q0 -211 -70.5 -374t-203.5 -252.5t-316 -89.5q-123 0 -225 53l-109 -135l-141 108l119 148q-72 107 -72 256q0 213 71.5 379.5t206.5 258t316 91.5q131 0 227 -56l70 88l145 -110l-84 -105q66 -107 66 -260zM662 903q-81 0 -144.5 -62.5t-98 -169.5t-34.5 -233 v-12l365 453q-35 24 -88 24zM543 215q114 0 193 133t79 318v16l-358 -444q11 -8 35.5 -15.5t50.5 -7.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM845 1241h-184q-71 69 -138.5 153.5t-103.5 153.5v21h311 q36 -148 115 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM610 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209 v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM1143 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25 q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1237" d="M111 0zM262 1118h301l-137 -653q-16 -68 -16 -119q0 -123 108 -123q92 0 167 114t118 318l98 463h301l-237 -1118h-230l21 207h-6q-145 -227 -355 -227q-138 0 -211 82.5t-73 238.5q0 93 24 213zM411 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5 t-121 -43.5q-135 0 -135 110zM813 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM497 1266q79 88 222 303h335v-17q-46 -56 -154 -152.5t-194 -158.5h-209v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M813 1139q150 0 232.5 -106.5t82.5 -301.5q0 -199 -69 -381t-182 -276t-250 -94q-178 0 -271 163h-8q-12 -159 -43 -295l-72 -340h-301l435 2048h301l-66 -307q-29 -131 -80 -280h8q131 170 283 170zM682 895q-71 0 -130 -65t-95.5 -184.5t-36.5 -246.5q0 -80 33.5 -128 t105.5 -48q69 0 129 65t97.5 183.5t37.5 247.5q0 88 -37.5 132t-103.5 44z" />
+<glyph unicode="&#xff;" horiz-adv-x="1063" d="M0 0zM102 1118h295l56 -518q14 -122 14 -293h6q20 51 44 119.5t65 153.5l260 538h327l-680 -1278q-177 -332 -483 -332q-90 0 -147 19v240q68 -13 116 -13q84 0 147.5 48t117.5 149l26 49zM310 1382q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5 q-135 0 -135 110zM712 1382q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5q-135 0 -135 110z" />
+<glyph unicode="&#x131;" horiz-adv-x="608" d="M338 0h-301l237 1118h301z" />
+<glyph unicode="&#x152;" horiz-adv-x="1845" d="M1606 0h-760q-93 -20 -180 -20q-256 0 -399.5 147.5t-143.5 409.5q0 265 99 487.5t273 341.5t402 119q140 0 209 -23h809l-53 -254h-512l-68 -321h477l-55 -254h-477l-80 -377h512zM688 240q88 0 158 32l194 916q-62 39 -168 39q-121 0 -222 -91.5t-158.5 -251.5 t-57.5 -347q0 -147 66.5 -222t187.5 -75z" />
+<glyph unicode="&#x153;" horiz-adv-x="1806" d="M1198 -20q-116 0 -208 38.5t-138 106.5q-63 -68 -147 -106.5t-207 -38.5q-187 0 -297.5 117t-110.5 317q0 216 69 380.5t200 254.5t309 90q209 0 313 -160q154 160 399 160q177 0 276 -81.5t99 -223.5q0 -187 -167 -288.5t-476 -101.5h-51l-2 -21v-20q0 -91 51 -143.5 t147 -52.5q87 0 158 19t172 67v-227q-93 -46 -185.5 -66t-203.5 -20zM645 893q-71 0 -127 -60.5t-90.5 -176.5t-34.5 -242q0 -91 36.5 -140t109.5 -49q109 0 179 134.5t70 336.5q0 96 -37 146.5t-106 50.5zM1362 922q-88 0 -165.5 -78.5t-102.5 -196.5h45q155 0 241 48.5 t86 131.5q0 95 -104 95z" />
+<glyph unicode="&#x178;" horiz-adv-x="1155" d="M186 0zM627 870l374 592h342l-618 -903l-119 -559h-303l119 559l-236 903h312zM432 1720q0 78 42.5 118t119.5 40q133 0 133 -108q0 -73 -39 -116.5t-121 -43.5q-135 0 -135 110zM834 1720q0 78 42 118t120 40q65 0 99 -28t34 -80q0 -73 -39.5 -116.5t-120.5 -43.5 q-135 0 -135 110z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1120 1241h-198q-63 53 -162 168q-105 -88 -232 -168h-217v25q63 57 153 147t142 156h338q22 -54 74 -142.5t102 -160.5v-25z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M1034 1479q0 -107 -70 -173.5t-184 -66.5q-110 0 -179 63.5t-69 174.5q0 109 68.5 173t179.5 64q110 0 182 -65t72 -170zM877 1477q0 45 -27.5 70.5t-69.5 25.5t-69 -25.5t-27 -70.5t24 -71t72 -26q42 0 69.5 26t27.5 71z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M866 1241q-49 0 -86.5 16.5t-69.5 36t-61.5 36t-62.5 16.5q-31 0 -55.5 -28t-38.5 -79h-177q59 309 281 309q49 0 87.5 -16.5t71.5 -36t62 -35.5t60 -16q34 0 58 25.5t46 80.5h172q-66 -309 -287 -309z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M41 424l53 250h524l-53 -250h-524z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M41 436l49 230h852l-49 -230h-852z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M41 436l49 230h1835l-49 -230h-1835z" />
+<glyph unicode="&#x2018;" horiz-adv-x="440" d="M123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x2019;" horiz-adv-x="440" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285z" />
+<glyph unicode="&#x201a;" horiz-adv-x="569" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285z" />
+<glyph unicode="&#x201c;" horiz-adv-x="887" d="M569 961l-8 22q103 227 262 479h226q-97 -227 -195 -501h-285zM123 961l-8 22q103 227 262 479h225q-91 -213 -194 -501h-285z" />
+<glyph unicode="&#x201d;" horiz-adv-x="887" d="M586 1462l8 -22q-103 -227 -262 -479h-226q89 206 195 501h285zM1032 1462l8 -22q-103 -227 -262 -479h-225q23 53 46.5 111t148.5 390h284z" />
+<glyph unicode="&#x201e;" horiz-adv-x="1018" d="M377 238l8 -23q-103 -227 -262 -479h-225q88 207 194 502h285zM825 238l9 -23q-100 -221 -263 -479h-225q24 57 49 118.5t146 383.5h284z" />
+<glyph unicode="&#x2022;" horiz-adv-x="739" d="M104 686q0 106 42.5 194t120 136.5t182.5 48.5q120 0 182.5 -67t62.5 -191q0 -177 -91.5 -277t-248.5 -100q-117 0 -183.5 67t-66.5 189z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1706" d="M25 0zM25 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM586 115q0 90 53.5 144t150.5 54q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5zM1147 115q0 90 53.5 144t150.5 54 q68 0 109 -38t41 -107q0 -87 -55 -141t-144 -54q-73 0 -114 37.5t-41 104.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="664" d="M72 569l401 463l191 -155l-279 -334l135 -350l-246 -103l-202 461v18z" />
+<glyph unicode="&#x203a;" horiz-adv-x="664" d="M592 535l-402 -463l-190 155l279 334l-136 350l246 103l203 -461v-18z" />
+<glyph unicode="&#x2044;" horiz-adv-x="256" d="M791 1462l-1084 -1462h-239l1087 1462h236z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="776" d="M776 737h-119l-32 -151h-238l33 151h-373l31 174l475 557h260l-121 -563h119zM455 905l58 231l22 74q-13 -20 -43 -58t-211 -247h174z" />
+<glyph unicode="&#x20ac;" d="M899 1237q-97 0 -176 -74.5t-135 -212.5h348l-39 -176h-360q-11 -34 -25 -115h299l-37 -178h-280q0 -120 44.5 -181.5t147.5 -61.5q133 0 283 63v-258q-126 -63 -330 -63q-446 0 -446 501h-152l37 178h127q9 67 22 115h-125l39 176h135q87 252 250.5 393.5t374.5 141.5 q100 0 179 -23t165 -80l-125 -223q-87 49 -131 63.5t-90 14.5z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M471 741h-168v572h-197v149h564v-149h-199v-572zM1047 741l-166 529h-7l5 -111v-418h-164v721h248l159 -510l170 510h240v-721h-168v408l4 121h-6l-174 -529h-141z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 1120h1120v-1120h-1120v1120z" />
+<glyph horiz-adv-x="1217" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff
new file mode 100644
index 0000000..ed760c0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-BoldItalic-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot
new file mode 100644
index 0000000..0c8a0ae
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg
new file mode 100644
index 0000000..e1075dc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.svg
@@ -0,0 +1,1830 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansitalic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM870 0h-168l234 1096h168zM983 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1165" d="M0 0zM-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87zM868 0h-168l332 1556h168z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1815" d="M545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5 t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098q-43 -195 -123.5 -279t-210.5 -84z M1522 0h-168l233 1096h168zM1634 1376q0 54 32 90.5t83 36.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -65 24.5t-27 69.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1815" d="M1520 0h-168l331 1556h168zM545 -492q-71 0 -125 21v141q61 -22 115 -22q68 0 111 57.5t69 181.5l227 1082h-481l-232 -1098q-39 -189 -120 -276t-213 -87q-69 0 -125 21v141q64 -22 112 -22q70 0 114 58t69 181l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5 t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h482l24 108q45 197 126 280t243 83q41 0 97.5 -11t92.5 -26l-45 -129q-76 29 -137 29q-89 0 -135 -51t-74 -175l-24 -108h239l-26 -127h-238l-231 -1098 q-43 -195 -123.5 -279t-210.5 -84z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="530" d="M555 1462l-274 -1059h-109q49 307 176 1059h207zM43 78q0 76 39.5 120t107.5 44q45 0 73 -27.5t28 -81.5q0 -68 -39 -115t-105 -47q-49 0 -76.5 28t-27.5 79z" />
+<glyph unicode="&#x22;" horiz-adv-x="791" d="M485 1462l-153 -528h-107l72 528h188zM834 1462l-154 -528h-107l72 528h189z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M1036 899l-98 -340h285l-13 -129h-309l-125 -430h-139l129 430h-303l-127 -430h-133l121 430h-261l13 129h284l101 340h-277l13 127h301l123 436h139l-125 -436h305l127 436h133l-125 -436h264l-12 -127h-291zM500 559h303l96 340h-303z" />
+<glyph unicode="$" d="M942 492q0 -162 -112.5 -263t-309.5 -123l-49 -225h-133l49 223q-195 14 -315 72v154q82 -41 175.5 -63.5t166.5 -22.5l98 452q-139 49 -201.5 123.5t-62.5 188.5q0 159 108 255t299 113l39 176h133l-39 -178q159 -12 283 -76l-63 -135q-121 63 -248 72l-94 -440 q149 -55 212.5 -125t63.5 -178zM549 250q107 13 170 75t63 154q0 54 -33 96t-114 74zM627 1235q-108 -11 -167 -69t-59 -156q0 -53 34.5 -97.5t107.5 -70.5z" />
+<glyph unicode="%" horiz-adv-x="1624" d="M1468 1462l-1085 -1462h-152l1086 1462h151zM1284 772q-67 0 -119.5 -64.5t-84 -188.5t-31.5 -240q0 -173 106 -173q65 0 117 65t86.5 198.5t34.5 236.5q0 166 -109 166zM1532 621q0 -107 -31.5 -236t-82 -217.5t-121 -138t-156.5 -49.5q-110 0 -171 74.5t-61 219.5 q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -71.5t60 -204.5zM543 1358q-66 0 -119 -63t-85 -187.5t-32 -243.5q0 -172 107 -172q52 0 94 39.5t73.5 114t50.5 175t19 171.5q0 166 -108 166zM791 1206q0 -108 -32 -237.5t-82.5 -217.5t-120.5 -137t-157 -49 q-109 0 -170 75t-61 220q0 166 50.5 318.5t136.5 228.5t200 76q116 0 176 -72t60 -205z" />
+<glyph unicode="&#x26;" horiz-adv-x="1372" d="M737 1348q-105 0 -163 -60t-58 -170q0 -120 82 -235q139 71 191 110t83 85t31 104q0 77 -42.5 121.5t-123.5 44.5zM471 119q87 0 168 33t195 124l-306 433q-128 -67 -184 -116t-85.5 -107.5t-29.5 -131.5q0 -106 66.5 -170.5t175.5 -64.5zM66 342q0 148 90 257.5 t303 211.5q-103 165 -103 309q0 164 106 264.5t281 100.5q149 0 236.5 -79t87.5 -212q0 -78 -32.5 -137t-87.5 -108t-127.5 -90t-153.5 -83l278 -389q127 110 199 295h168q-101 -236 -283 -412l203 -270h-201l-117 166q-120 -100 -230 -143t-247 -43q-168 0 -269 96 t-101 266z" />
+<glyph unicode="'" horiz-adv-x="444" d="M485 1462l-153 -528h-107l72 528h188z" />
+<glyph unicode="(" horiz-adv-x="584" d="M82 272q0 339 120 627t384 563h157q-246 -270 -371.5 -570t-125.5 -618q0 -339 114 -598h-131q-147 266 -147 596z" />
+<glyph unicode=")" horiz-adv-x="584" d="M500 864q0 -341 -121.5 -629.5t-382.5 -558.5h-156q496 551 496 1188q0 341 -113 598h131q146 -269 146 -598z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M854 1528l-123 -383l422 18l-8 -157l-393 47l180 -383l-166 -52l-113 406l-258 -344l-116 121l309 284l-373 109l55 154l371 -185l41 400z" />
+<glyph unicode="+" d="M516 651h-389v142h389v391h141v-391h390v-142h-390v-387h-141v387z" />
+<glyph unicode="," horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="-" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="." horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="/" horiz-adv-x="717" d="M893 1462l-813 -1462h-174l813 1462h174z" />
+<glyph unicode="0" d="M1092 1014q0 -295 -78.5 -539t-214 -369.5t-314.5 -125.5q-176 0 -270 127.5t-94 369.5q0 270 82 514.5t216.5 369t307.5 124.5q365 0 365 -471zM717 1341q-113 0 -209 -115.5t-155.5 -323t-59.5 -423.5q0 -172 50 -264t161 -92q115 0 209 114t150.5 328t56.5 453 q0 323 -203 323z" />
+<glyph unicode="1" d="M588 0h-172l196 913q59 261 88 359q-50 -53 -139 -111l-178 -110l-80 127l449 284h149z" />
+<glyph unicode="2" d="M911 0h-899l31 147l465 420q102 93 176.5 163.5t123 133t72 124t23.5 136.5q0 99 -60 157t-163 58q-77 0 -150.5 -28.5t-162.5 -96.5l-82 115q191 154 413 154q176 0 278.5 -88.5t102.5 -243.5q0 -111 -39.5 -204t-131 -197t-294.5 -281l-352 -307v-8h678z" />
+<glyph unicode="3" d="M1073 1159q0 -156 -101 -264.5t-280 -140.5v-9q124 -23 195 -106.5t71 -208.5q0 -133 -62 -234.5t-181 -158.5t-283 -57q-210 0 -385 79v164q94 -49 199 -75.5t190 -26.5q162 0 252 79.5t90 217.5q0 131 -79 198.5t-220 67.5h-131l31 143h139q165 0 274 87t109 227 q0 92 -58 146t-157 54q-80 0 -157 -27t-175 -93l-80 118q195 144 424 144q179 0 277 -87t98 -237z" />
+<glyph unicode="4" d="M1067 334h-233l-72 -334h-164l74 334h-656l29 158l834 978h196l-207 -983h232zM705 487q46 220 78 373t116 445h-8q-17 -29 -66.5 -96.5t-72.5 -96.5l-533 -625h486z" />
+<glyph unicode="5" d="M598 893q182 0 289.5 -104.5t107.5 -282.5q0 -161 -73 -283t-204 -182.5t-308 -60.5q-193 0 -330 79v164q164 -102 334 -102q191 0 298 96t107 268q0 126 -73.5 199.5t-204.5 73.5q-48 0 -97 -6.5t-139 -30.5l-74 57l197 684h668l-33 -153h-522l-127 -439q87 23 184 23z " />
+<glyph unicode="6" d="M133 424q0 209 60.5 415t163.5 351.5t246 219t327 73.5q111 0 184 -23l-35 -145q-68 22 -170 22q-212 0 -356.5 -149t-212.5 -443h8q59 79 146.5 126t193.5 47q154 0 244 -98.5t90 -270.5q0 -161 -66.5 -294.5t-180.5 -204t-261 -70.5q-182 0 -281.5 115t-99.5 329z M532 121q94 0 167.5 54t114 149t40.5 208q0 248 -221 248q-66 0 -128 -28.5t-110 -76t-72 -104.5t-24 -155q0 -137 60.5 -216t172.5 -79z" />
+<glyph unicode="7" d="M174 0l768 1313h-719l31 149h891l-27 -139l-764 -1323h-180z" />
+<glyph unicode="8" d="M741 1485q174 0 271.5 -86.5t97.5 -235.5q0 -129 -78 -225t-266 -176q127 -78 180 -165t53 -202q0 -122 -60 -217.5t-172.5 -146.5t-264.5 -51q-190 0 -298 98.5t-108 267.5q0 148 95 256t296 184q-95 69 -135.5 144.5t-40.5 171.5q0 111 54.5 198.5t153.5 136t222 48.5z M608 700q-185 -60 -261.5 -143.5t-76.5 -202.5q0 -107 69 -170t181 -63q139 0 222 74t83 196q0 99 -52 174t-165 135zM729 1341q-114 0 -182 -65.5t-68 -175.5q0 -82 39 -144t127 -116q161 60 228 131.5t67 173.5q0 90 -57.5 143t-153.5 53z" />
+<glyph unicode="9" d="M1067 1034q0 -194 -56 -406.5t-147.5 -360t-221.5 -217.5t-302 -70q-136 0 -242 34v158q134 -47 246 -47q202 0 327 141t189 441h-10q-51 -75 -132.5 -118.5t-180.5 -43.5q-169 0 -261 98.5t-92 288.5q0 153 64.5 280.5t180 199t259.5 71.5q180 0 279.5 -114.5 t99.5 -334.5zM682 1341q-150 0 -241 -113t-91 -290q0 -124 54.5 -190t162.5 -66q76 0 140 28.5t108.5 81.5t65 114t20.5 151q0 131 -59 207.5t-160 76.5z" />
+<glyph unicode=":" horiz-adv-x="518" d="M43 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode=";" horiz-adv-x="518" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM203 956q0 77 40 122.5t111 45.5q97 0 97 -104q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26.5t-27 75.5z" />
+<glyph unicode="&#x3c;" d="M1040 242l-919 422v98l919 479v-149l-747 -371l747 -328v-151z" />
+<glyph unicode="=" d="M127 858v139h920v-139h-920zM127 444v142h920v-142h-920z" />
+<glyph unicode="&#x3e;" d="M121 393l745 328l-745 371v149l919 -479v-98l-919 -422v151z" />
+<glyph unicode="?" horiz-adv-x="874" d="M260 403q22 130 72.5 213.5t165.5 174.5q128 100 168 144t63 94t23 112q0 93 -51.5 143.5t-147.5 50.5q-81 0 -155 -25.5t-140 -56.5l-61 129q92 51 192 76t182 25q167 0 259 -84t92 -238q0 -123 -65.5 -226.5t-225.5 -223.5q-125 -91 -169 -147.5t-67 -160.5h-135z M158 74q0 77 40 122.5t111 45.5q44 0 70.5 -26t26.5 -79q0 -73 -41.5 -119.5t-106.5 -46.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="@" horiz-adv-x="1735" d="M1679 852q0 -179 -55 -324t-155 -227t-222 -82q-197 0 -213 184h-8q-111 -184 -291 -184q-115 0 -180.5 75.5t-65.5 209.5q0 157 68 284t188.5 199t260.5 72q65 0 127.5 -12t150.5 -48q-64 -242 -98 -368t-31 -172q0 -117 102 -117q78 0 141.5 67t100.5 183.5t37 243.5 q0 239 -128 367t-370 128q-228 0 -406.5 -107t-277 -295.5t-98.5 -416.5q0 -270 143.5 -418.5t409.5 -148.5q197 0 420 86v-127q-219 -90 -443 -90q-314 0 -494.5 184.5t-180.5 505.5q0 261 126.5 485.5t343.5 347.5t486 123q191 0 329 -75.5t210.5 -213.5t72.5 -319z M985 938q-94 0 -174 -55t-126 -153t-46 -212q0 -93 33 -134.5t98 -41.5q187 0 272 315l70 258q-63 23 -127 23z" />
+<glyph unicode="A" horiz-adv-x="1137" d="M813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394z" />
+<glyph unicode="B" horiz-adv-x="1225" d="M770 1462q432 0 432 -336q0 -141 -87 -238t-245 -126v-10q115 -32 176.5 -110.5t61.5 -188.5q0 -212 -152 -332.5t-407 -120.5h-463l309 1462h375zM434 836h248q156 0 249 73t93 199q0 104 -66.5 155.5t-209.5 51.5h-211zM287 145h266q181 0 278 80.5t97 227.5 q0 116 -74.5 177.5t-214.5 61.5h-236z" />
+<glyph unicode="C" horiz-adv-x="1198" d="M942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69z" />
+<glyph unicode="D" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l309 1462h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-250 -1168h162z" />
+<glyph unicode="E" horiz-adv-x="1047" d="M821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565z" />
+<glyph unicode="F" horiz-adv-x="967" d="M258 0h-172l309 1462h735l-30 -153h-568l-110 -533h528l-32 -153h-529z" />
+<glyph unicode="G" horiz-adv-x="1386" d="M821 766h459l-154 -711q-216 -75 -419 -75q-264 0 -410.5 144.5t-146.5 403.5q0 269 101.5 489.5t281.5 343t399 122.5q117 0 219.5 -20t206.5 -64l-66 -152q-77 34 -165.5 59t-194.5 25q-169 0 -307.5 -101.5t-215.5 -283.5t-77 -407q0 -190 102.5 -299t286.5 -109 q154 0 260 39l96 444h-289z" />
+<glyph unicode="H" horiz-adv-x="1389" d="M1085 0h-167l143 688h-660l-145 -688h-170l309 1462h170l-131 -622h660l133 622h168z" />
+<glyph unicode="I" horiz-adv-x="559" d="M86 0l311 1462h168l-311 -1462h-168z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-166 -385q-105 0 -153 25l6 147q69 -20 145 -20q100 0 165.5 62.5t90.5 182.5l307 1450h170l-309 -1468q-79 -379 -422 -379z" />
+<glyph unicode="K" horiz-adv-x="1141" d="M1034 0h-186q-72 181 -146.5 359.5t-146.5 361.5l-174 -131l-125 -590h-170l309 1462h170l-151 -710l700 710h209l-639 -637z" />
+<glyph unicode="L" horiz-adv-x="971" d="M86 0l309 1462h170l-276 -1308h565l-33 -154h-735z" />
+<glyph unicode="M" horiz-adv-x="1714" d="M676 0l-166 1296h-8q-7 -72 -28.5 -197.5t-37.5 -199.5l-190 -899h-162l309 1462h244l149 -1204h9l659 1204h266l-303 -1462h-174q126 590 193 905.5t94 392.5h-6l-717 -1298h-131z" />
+<glyph unicode="N" horiz-adv-x="1438" d="M1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164z" />
+<glyph unicode="O" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5t70 403 q0 199 -94 310.5t-261 111.5z" />
+<glyph unicode="P" horiz-adv-x="1159" d="M1159 1085q0 -248 -164 -379t-481 -131h-135l-123 -575h-170l309 1462h330q214 0 324 -94.5t110 -282.5zM410 721h133q216 0 328 91t112 267q0 125 -69.5 180.5t-213.5 55.5h-163z" />
+<glyph unicode="Q" horiz-adv-x="1475" d="M874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q158 0 279 100t187.5 280.5t66.5 399.5q0 199 -94 310.5t-261 111.5zM725 -18l-17 -2h-16q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424 q0 -333 -139 -576t-375 -321l274 -358h-219z" />
+<glyph unicode="R" horiz-adv-x="1165" d="M385 608l-129 -608h-170l309 1462h320q446 0 446 -366q0 -348 -368 -449l239 -647h-186l-209 608h-252zM532 1313q-102 -494 -116 -559h168q193 0 297 85t104 244q0 121 -67.5 175.5t-219.5 54.5h-166z" />
+<glyph unicode="S" horiz-adv-x="1028" d="M913 424q0 -211 -140.5 -327.5t-395.5 -116.5q-106 0 -186.5 14.5t-151.5 48.5v170q162 -84 340 -84q162 0 257 75.5t95 207.5q0 78 -52.5 137.5t-195.5 140.5q-151 85 -209.5 170t-58.5 201q0 187 132 304.5t347 117.5q99 0 184.5 -19t180.5 -65l-66 -150 q-66 38 -148 60t-151 22q-134 0 -215.5 -69.5t-81.5 -188.5q0 -54 17 -92.5t54 -72.5t142 -95q147 -88 198.5 -138t78 -110.5t26.5 -140.5z" />
+<glyph unicode="T" horiz-adv-x="1020" d="M487 0h-172l277 1311h-406l33 151h985l-30 -151h-408z" />
+<glyph unicode="U" horiz-adv-x="1384" d="M1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170z" />
+<glyph unicode="V" horiz-adv-x="1122" d="M479 197q61 144 162 338l479 927h191l-781 -1462h-180l-162 1462h170l97 -930q20 -196 20 -335h4z" />
+<glyph unicode="W" horiz-adv-x="1745" d="M1257 0h-170l-49 965q-8 136 -8 282h-6q-25 -72 -61 -154.5t-504 -1092.5h-174l-62 1462h170l31 -901l2 -88q0 -98 -10 -258h6q89 243 156 383l405 864h178l43 -860q9 -153 9 -304l-1 -83h9q75 224 131 354l387 893h182z" />
+<glyph unicode="X" horiz-adv-x="1063" d="M956 0h-180l-213 641l-481 -641h-186l596 776l-263 686h172l203 -563l443 563h186l-555 -694z" />
+<glyph unicode="Y" horiz-adv-x="1030" d="M537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170z" />
+<glyph unicode="Z" horiz-adv-x="1087" d="M885 0h-901l28 137l924 1170h-655l32 155h858l-26 -139l-924 -1169h697z" />
+<glyph unicode="[" horiz-adv-x="586" d="M371 -324h-387l381 1786h387l-31 -141h-227l-318 -1503h227z" />
+<glyph unicode="\" horiz-adv-x="717" d="M375 1462l217 -1462h-154l-217 1462h154z" />
+<glyph unicode="]" horiz-adv-x="586" d="M-119 -182h225l320 1503h-227l30 141h389l-380 -1786h-388z" />
+<glyph unicode="^" horiz-adv-x="1059" d="M53 553l598 920h109l266 -920h-145l-201 747l-467 -747h-160z" />
+<glyph unicode="_" horiz-adv-x="807" d="M623 -324h-811l30 140h811z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M903 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1157" d="M639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233t-51 -310 q0 -114 47 -170.5t132 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1182" d="M545 -20q-97 0 -170.5 51t-110.5 139h-10l-70 -170h-125l330 1556h168q-51 -242 -78.5 -370.5t-75.5 -300.5h9q93 118 183.5 173.5t186.5 55.5q141 0 220 -99t79 -272q0 -209 -68.5 -386.5t-191 -277t-276.5 -99.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="c" horiz-adv-x="922" d="M506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63z" />
+<glyph unicode="d" horiz-adv-x="1182" d="M639 1114q194 0 281 -190h10q17 155 45 274l78 358h166l-330 -1556h-139l22 209h-8q-101 -125 -189 -177t-182 -52q-139 0 -217 98t-78 272q0 214 72 392t194.5 275t274.5 97zM449 119q94 0 194 93.5t158.5 239t58.5 296.5q0 111 -54 169t-157 58q-101 0 -187.5 -82.5 t-139 -232t-52.5 -314.5q0 -227 179 -227z" />
+<glyph unicode="e" horiz-adv-x="1010" d="M492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35z" />
+<glyph unicode="f" horiz-adv-x="641" d="M-104 -492q-69 0 -125 21v141q64 -22 112 -22q76 0 117 62t66 177l227 1082h-193l13 67l206 66l23 100q46 200 127.5 282.5t241.5 82.5q40 0 98 -11.5t90 -25.5l-43 -129q-76 29 -137 29q-87 0 -133.5 -48.5t-75.5 -177.5l-25 -108h238l-25 -127h-237l-232 -1098 q-39 -189 -120 -276t-213 -87z" />
+<glyph unicode="g" horiz-adv-x="1026" d="M1100 1096l-25 -107l-211 -24q41 -62 41 -158q0 -191 -116.5 -304.5t-311.5 -113.5q-55 0 -84 8q-139 -53 -139 -131q0 -41 33 -54.5t96 -21.5l117 -14q181 -22 262.5 -88t81.5 -194q0 -184 -146 -285t-411 -101q-194 0 -304 73.5t-110 207.5q0 105 72 182t233 131 q-78 41 -78 121q0 69 51 118.5t142 92.5q-63 32 -103 94.5t-40 145.5q0 194 119.5 318t305.5 124q78 0 154 -20h371zM35 -195q0 -77 65 -122t193 -45q182 0 284.5 63.5t102.5 179.5q0 62 -54 98t-184 50l-159 16q-120 -25 -184 -88t-64 -152zM313 680q0 -85 45 -129.5 t125 -44.5q79 0 138 42t90.5 115.5t31.5 159.5q0 82 -44 125t-126 43q-78 0 -136.5 -40.5t-91 -113t-32.5 -157.5z" />
+<glyph unicode="h" horiz-adv-x="1182" d="M729 0l148 692q18 94 18 135q0 148 -147 148q-89 0 -173.5 -59t-149 -171.5t-97.5 -271.5l-101 -473h-168l330 1556h168q-18 -82 -34.5 -159t-34 -156.5t-38 -166.5t-47.5 -189h11q94 123 185.5 176t191.5 53q131 0 202.5 -72t71.5 -204q0 -62 -23 -166 q-39 -193 -145 -672h-168z" />
+<glyph unicode="i" horiz-adv-x="520" d="M227 0h-168l234 1096h168zM340 1376q0 56 32 91.5t83 35.5q88 0 88 -90q0 -55 -33.5 -93t-77.5 -38q-40 0 -66 24.5t-26 69.5z" />
+<glyph unicode="j" horiz-adv-x="520" d="M-135 -492q-69 0 -123 21v141q61 -22 119 -22q125 0 168 205l264 1243h166l-266 -1258q-36 -171 -114.5 -250.5t-213.5 -79.5zM340 1376q0 56 32 91.5t83 35.5q86 0 86 -90q0 -55 -33.5 -93t-77.5 -38q-38 0 -64 24.5t-26 69.5z" />
+<glyph unicode="k" horiz-adv-x="999" d="M330 559l526 537h201l-469 -467l295 -629h-187l-235 524l-152 -123l-82 -401h-170l330 1556h170l-129 -602t-102 -395h4z" />
+<glyph unicode="l" horiz-adv-x="520" d="M225 0h-168l332 1556h168z" />
+<glyph unicode="m" horiz-adv-x="1786" d="M696 0l148 692q18 94 18 135q0 70 -31 109t-106 39q-84 0 -163.5 -60t-140 -171.5t-93.5 -268.5l-101 -475h-168l234 1096h139l-22 -203h10q87 119 173.5 171t178.5 52q113 0 174 -65t72 -181h8q86 125 183 185.5t196 60.5q127 0 196.5 -68t69.5 -198q0 -68 -22 -178 l-144 -672h-170l148 692q20 104 20 146q0 62 -34.5 99.5t-108.5 37.5q-81 0 -160 -58t-138.5 -164.5t-90.5 -252.5l-107 -500h-168z" />
+<glyph unicode="n" horiz-adv-x="1182" d="M729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170z" />
+<glyph unicode="o" horiz-adv-x="1149" d="M643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5z" />
+<glyph unicode="p" horiz-adv-x="1182" d="M545 -20q-97 0 -170 50t-113 140h-10l-4 -38q-3 -25 -10.5 -70t-114.5 -554h-166l336 1588h139l-26 -209h8q179 227 372 227q137 0 216 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295q0 -110 55.5 -168.5 t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="q" horiz-adv-x="1182" d="M641 1116q94 0 165.5 -50.5t108.5 -141.5h13l67 172h125l-336 -1588h-166l101 480q9 45 57 221h-8q-95 -121 -185 -175t-186 -54q-140 0 -219.5 97.5t-79.5 272.5q0 212 72.5 392t196 277t274.5 97zM449 119q92 0 190 92t158.5 237t60.5 300q0 105 -54.5 166t-152.5 61 q-101 0 -189 -84.5t-140 -233t-52 -311.5q0 -227 179 -227z" />
+<glyph unicode="r" horiz-adv-x="811" d="M752 1116q69 0 120 -14l-36 -150q-53 13 -105 13q-91 0 -170.5 -60t-139 -166.5t-87.5 -236.5l-107 -502h-168l234 1096h139l-22 -203h10q72 95 119 136.5t98.5 64t114.5 22.5z" />
+<glyph unicode="s" horiz-adv-x="877" d="M735 311q0 -156 -110.5 -243.5t-311.5 -87.5q-169 0 -305 69v158q70 -42 151 -65t150 -23q126 0 190 50t64 128q0 57 -35 96t-151 107q-130 73 -184 143t-54 166q0 138 101 222.5t266 84.5q171 0 330 -74l-54 -137l-56 25q-101 43 -220 43q-93 0 -146 -43.5t-53 -112.5 q0 -56 35.5 -96t146.5 -103q107 -60 153.5 -103t69.5 -92.5t23 -111.5z" />
+<glyph unicode="t" horiz-adv-x="664" d="M395 117q55 0 144 26v-129q-34 -14 -84 -24t-80 -10q-125 0 -191.5 59.5t-66.5 177.5q0 66 18 150l127 602h-172l14 73l185 78l125 228h98l-55 -252h274l-26 -127h-273l-129 -604q-18 -87 -18 -132q0 -56 29 -86t81 -30z" />
+<glyph unicode="u" horiz-adv-x="1182" d="M451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170z" />
+<glyph unicode="v" horiz-adv-x="946" d="M223 0l-125 1096h168l64 -613q24 -258 24 -362h6q127 275 179 371l325 604h178l-591 -1096h-228z" />
+<glyph unicode="w" horiz-adv-x="1468" d="M831 0l-32 602q-4 94 -4 172v156h-9l-50 -118l-83 -189l-291 -623h-202l-43 1096h164l18 -594v-88q0 -147 -8 -269h6q47 124 137 322l295 629h182l37 -594q6 -168 6 -262v-53l-2 -42h6q28 86 83 218.5t323 732.5h178l-506 -1096h-205z" />
+<glyph unicode="x" horiz-adv-x="979" d="M467 434l-346 -434h-195l475 565l-239 531h170l174 -412l330 412h194l-455 -539l252 -557h-168z" />
+<glyph unicode="y" horiz-adv-x="946" d="M98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136z" />
+<glyph unicode="z" horiz-adv-x="909" d="M690 0h-719l23 117l694 854h-479l27 125h657l-29 -140l-680 -831h531z" />
+<glyph unicode="{" horiz-adv-x="715" d="M442 -324q-141 0 -216.5 52.5t-75.5 171.5q0 52 20 141q33 146 51.5 227.5t14.5 102.5q0 143 -209 143l32 143q118 0 189.5 43.5t93.5 147.5l68 326q34 160 117.5 224t254.5 64h33l-31 -141q-105 0 -151 -36.5t-66 -123.5l-71 -321q-28 -123 -91 -184t-167 -78v-5 q151 -41 151 -213q0 -59 -18 -131l-47 -211q-15 -58 -15 -98q0 -53 36.5 -77.5t119.5 -24.5v-142h-23z" />
+<glyph unicode="|" d="M541 1556h139v-2052h-139v2052z" />
+<glyph unicode="}" horiz-adv-x="715" d="M285 1462q144 0 220.5 -52.5t76.5 -170.5q0 -48 -21 -141l-49 -219q-16 -68 -16 -111q0 -143 209 -143l-33 -144q-119 0 -190 -43t-93 -147l-67 -326q-36 -164 -119 -226.5t-264 -62.5h-13v142q115 0 167 36t71 123l72 322q25 117 88 179.5t170 80.5v6q-150 42 -150 211 q0 59 18 131l50 213q14 65 14 99q0 53 -40.5 77.5t-139.5 24.5l28 141h11z" />
+<glyph unicode="~" d="M348 713q-54 0 -118.5 -34.5t-114.5 -86.5v151q98 109 243 109q69 0 127 -14.5t144 -51.5q64 -27 112.5 -41t98.5 -14q55 0 119.5 33t115.5 88v-150q-100 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="530" d="M260 684h109l-176 -1057h-207zM250 950q0 76 40.5 122t110.5 46q44 0 70.5 -26t26.5 -80q0 -71 -40.5 -117.5t-105.5 -46.5q-48 0 -75 25.5t-27 76.5z" />
+<glyph unicode="&#xa2;" d="M582 -20h-125l43 215q-132 34 -203.5 137.5t-71.5 257.5q0 185 63.5 344t178.5 258.5t260 120.5l35 170h123l-37 -168q119 -9 217 -49l-47 -142q-109 52 -219 52q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -125 66 -198t184 -73q72 0 136 20t126 48v-143 q-123 -62 -286 -66z" />
+<glyph unicode="&#xa3;" d="M842 1481q184 0 336 -86l-66 -133q-146 79 -278 79q-213 0 -263 -237l-69 -326h370l-26 -127h-371l-47 -219q-22 -98 -66 -166.5t-124 -111.5h725l-33 -154h-953l27 141q205 46 258 289l47 221h-200l26 127h201l76 350q75 353 430 353z" />
+<glyph unicode="&#xa4;" d="M229 723q0 117 68 215l-129 129l92 92l127 -129q103 70 217 70t215 -70l129 129l92 -90l-129 -129q70 -104 70 -217q0 -119 -70 -217l127 -127l-90 -90l-129 127q-98 -68 -215 -68q-119 0 -217 70l-127 -127l-90 90l127 127q-68 96 -68 215zM358 723q0 -103 71.5 -174.5 t174.5 -71.5q104 0 177 71.5t73 174.5q0 104 -73 177t-177 73q-102 0 -174 -72.5t-72 -177.5z" />
+<glyph unicode="&#xa5;" d="M582 715l491 747h187l-533 -770h231l-28 -133h-297l-33 -160h297l-29 -133h-295l-57 -266h-154l56 266h-291l29 133h290l33 160h-291l29 133h225l-202 770h163z" />
+<glyph unicode="&#xa6;" d="M541 1556h139v-776h-139v776zM541 281h139v-777h-139v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M174 770q0 201 238 307q-119 70 -119 203q0 127 103.5 206t279.5 79q189 0 321 -68l-53 -123q-148 60 -266 60q-102 0 -162.5 -40.5t-60.5 -109.5q0 -49 38 -83.5t162 -90.5q100 -44 149 -83.5t75 -89.5t26 -114q0 -97 -61 -180t-172 -139q114 -71 114 -189 q0 -152 -114 -237.5t-318 -85.5q-176 0 -295 61v148q56 -34 136.5 -56t156.5 -22q133 0 204 44.5t71 129.5q0 48 -50.5 89t-152.5 87q-138 61 -194 130.5t-56 166.5zM514 1010q-82 -26 -135 -87.5t-53 -131.5t50.5 -117t198.5 -111q80 44 127.5 107t47.5 131 q0 60 -49.5 105.5t-186.5 103.5z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M457 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M928 1059q-125 0 -191.5 -87t-66.5 -241q0 -169 65 -249.5t193 -80.5q82 0 211 43v-122q-66 -28 -113 -38t-104 -10q-192 0 -297 119.5t-105 339.5q0 208 110 330.5t300 122.5q130 0 248 -60l-60 -120q-106 53 -190 53zM139 731q0 200 100 375t275 276t377 101 q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5 q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M498 1479q114 0 153 -103h6l37 90h86l-139 -665h-92l14 117h-4q-40 -56 -90 -93t-123 -37q-77 0 -126.5 60t-49.5 166q0 127 41.5 234.5t116.5 169t170 61.5zM381 891q61 0 112.5 49t86 137.5t34.5 167.5q0 62 -28.5 96.5t-85.5 34.5q-92 0 -154.5 -103t-62.5 -243 q0 -139 98 -139z" />
+<glyph unicode="&#xab;" horiz-adv-x="958" d="M88 584l391 374l78 -81l-297 -328l172 -387l-113 -49l-231 442v29zM483 541l367 405l86 -69l-283 -365l158 -350l-113 -49l-215 397v31z" />
+<glyph unicode="&#xac;" d="M1047 793v-529h-140v387h-780v142h920z" />
+<glyph unicode="&#xad;" horiz-adv-x="639" d="M55 469zM55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M139 731q0 200 100 375t275 276t377 101q197 0 370 -97t277 -272t104 -383q0 -204 -100.5 -376.5t-273 -273.5t-377.5 -101q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM244 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5 q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5zM1194 915q0 -78 -47.5 -141t-132.5 -98l227 -385h-149l-207 352h-113v-352h-127v880h229q163 0 241.5 -63t78.5 -193zM772 762h92q195 0 195 149q0 76 -47.5 107t-149.5 31h-90v-287z " />
+<glyph unicode="&#xaf;" horiz-adv-x="782" d="M1012 1556h-785l33 132h787z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M215 1171q0 128 90.5 220t220.5 92q83 0 155.5 -41.5t114.5 -114t42 -156.5q0 -128 -90.5 -218.5t-221.5 -90.5t-221 90.5t-90 218.5zM328 1171q0 -80 58 -138t140 -58q83 0 140 58.5t57 137.5q0 82 -57.5 140.5t-139.5 58.5q-80 0 -139 -58.5t-59 -140.5z" />
+<glyph unicode="&#xb1;" d="M516 643h-389v141h389v392h141v-392h390v-141h-390v-387h-141v387zM127 0v141h920v-141h-920z" />
+<glyph unicode="&#xb2;" horiz-adv-x="717" d="M657 586h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xb3;" horiz-adv-x="717" d="M549 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M532 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1194" d="M295 266q0 -147 147 -147q89 0 172 59t148.5 171t99.5 269l105 478h163l-233 -1096h-139l24 205h-12q-93 -121 -183 -173t-188 -52q-112 0 -163 96h-9q-11 -78 -22.5 -148t-83.5 -420h-164l336 1588h168l-148 -695q-18 -92 -18 -135z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1206 -260h-114v1661h-213v-1661h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="518" d="M170 587zM170 690q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M211 -276q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xb9;" horiz-adv-x="717" d="M537 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90z" />
+<glyph unicode="&#xba;" horiz-adv-x="688" d="M745 1219q0 -191 -88.5 -311t-240.5 -120q-113 0 -180.5 71t-67.5 196q0 117 42 215.5t117.5 153.5t174.5 55q117 0 180 -67t63 -193zM500 1376q-102 0 -160.5 -87.5t-58.5 -229.5q0 -85 38 -127.5t107 -42.5q94 0 152.5 88.5t58.5 232.5q0 166 -137 166z" />
+<glyph unicode="&#xbb;" horiz-adv-x="958" d="M872 485l-393 -370l-78 82l297 323l-172 391l113 50l233 -447v-29zM477 528l-368 -401l-86 70l282 360l-158 354l113 50l217 -402v-31z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1518" d="M123 0zM1362 1462l-1086 -1462h-153l1085 1462h154zM483 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1327 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1095 320q69 322 90 395 q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1518" d="M66 0zM427 1462h118l-186 -876h-135l112 526q25 103 58 225q-25 -25 -50 -46.5t-145 -100.5l-51 90zM1305 1462l-1086 -1462h-153l1085 1462h154zM1343 1h-561l23 106l264 228q115 100 158.5 149.5t63.5 93t20 90.5q0 53 -31 85t-90 32q-90 0 -195 -80l-59 90 q125 101 274 101q109 0 171.5 -56.5t62.5 -150.5q0 -99 -52.5 -179.5t-197.5 -205.5l-221 -187h395z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1565" d="M87 0zM517 1036q69 -17 108 -68t39 -120q0 -132 -91 -205.5t-253 -73.5q-125 0 -233 56v127q125 -72 239 -72q205 0 205 170q0 137 -178 137h-90l22 107h95q97 0 155 41t58 112q0 60 -34.5 90.5t-93.5 30.5q-102 0 -196 -68l-55 93q109 88 268 88q114 0 178 -56t64 -151 q0 -180 -207 -234v-4zM1512 1462l-1086 -1462h-153l1085 1462h154zM1477 203h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM1245 320q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#xbf;" horiz-adv-x="874" d="M657 680q-22 -130 -72 -212t-165 -175l-95 -75q-159 -127 -159 -275q0 -93 51.5 -144t147.5 -51q80 0 154 25.5t140 56.5l62 -129q-90 -48 -189 -74t-186 -26q-168 0 -259 83.5t-91 237.5q0 124 66 228t225 223q132 98 172.5 152.5t62.5 154.5h135zM760 1010 q0 -77 -40.5 -122.5t-111.5 -45.5q-43 0 -69.5 26t-26.5 78q0 71 40 118.5t107 47.5q47 0 74 -25.5t27 -76.5z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM863 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM679 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM1080 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27 z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM934 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18 t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5 t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1137" d="M0 0zM813 465h-496l-245 -465h-189l799 1462h174l184 -1462h-170zM795 621l-35 299q-24 179 -29 350q-37 -88 -80.5 -175t-249.5 -474h394zM991 1585q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM887 1583 q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1673" d="M1448 0h-737l98 465h-438l-293 -465h-197l938 1462h938l-33 -153h-565l-100 -469h528l-28 -150h-529l-115 -538h566zM840 621l147 688h-84l-434 -688h371z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1198" d="M150 0zM942 1331q-174 0 -311.5 -97t-218 -284.5t-80.5 -408.5q0 -187 97.5 -298.5t268.5 -111.5q139 0 322 57v-149q-86 -31 -164 -45t-188 -14q-242 0 -380 149.5t-138 407.5q0 261 105.5 485.5t283.5 342.5t403 118q197 0 348 -80l-69 -141q-138 69 -279 69zM758 -276 q0 -98 -81 -157t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM898 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM657 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xca;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM1084 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1047" d="M86 0zM821 0h-735l309 1462h735l-32 -153h-566l-98 -469h527l-29 -152h-529l-114 -536h565zM523 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM887 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xcc;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM593 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM412 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xce;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM808 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xcf;" horiz-adv-x="559" d="M86 0zM86 0l311 1462h168l-311 -1462h-168zM265 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM629 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1364" d="M1300 877q0 -261 -105 -461t-300 -308t-457 -108h-352l135 649h-149l32 150h150l141 663h342q276 0 419.5 -149.5t143.5 -435.5zM449 147q202 0 355 91.5t234.5 258.5t81.5 382t-103 325.5t-302 110.5h-178l-111 -516h330l-33 -150h-330l-106 -502h162z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1438" d="M84 0zM1139 0h-181l-460 1223h-6q-32 -221 -74 -418l-172 -805h-162l309 1462h180l459 -1220h6q30 224 72 405l174 815h164zM1102 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5 t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1007 1579h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM821 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1227 1579h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM1067 1581q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1475" d="M150 0zM1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q244 0 384 -154t140 -424zM874 1333q-157 0 -281 -101t-192.5 -281t-68.5 -398q0 -199 98 -310.5t266 -111.5q152 0 272.5 97.5t190.5 279.5 t70 403q0 199 -94 310.5t-261 111.5zM664 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1028 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xd7;" d="M487 723l-319 321l98 99l320 -320l323 320l99 -96l-324 -324l322 -322l-97 -96l-323 320l-320 -318l-96 96z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1475" d="M1411 907q0 -269 -88 -481.5t-252 -329t-379 -116.5q-200 0 -332 96l-129 -160l-112 92l137 170q-106 136 -106 371q0 264 96 482t263.5 336t377.5 118q99 0 178.5 -27t151.5 -84l131 166l114 -92l-149 -184q48 -62 73 -156t25 -201zM874 1333q-157 0 -281 -101 t-192.5 -281t-68.5 -398q0 -135 41 -227l737 919q-90 88 -236 88zM1229 911q0 118 -33 205l-733 -911q91 -74 233 -74q152 0 272.5 97.5t190.5 279.5t70 403z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM991 1579h-104q-61 61 -128.5 154 t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM823 1606q56 60 125.5 151.5t106.5 149.5 h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM1217 1579h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1384" d="M164 0zM1407 1462l-205 -966q-55 -263 -197.5 -389.5t-388.5 -126.5q-230 0 -341 104t-111 299q0 81 24 201l189 878h170l-191 -891q-22 -106 -22 -188q0 -117 73 -184.5t218 -67.5q172 0 267.5 87.5t139.5 289.5l205 954h170zM643 1716q0 46 28 79.5t74 33.5 q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM1007 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM616 1606q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xde;" horiz-adv-x="1159" d="M1106 829q0 -248 -164 -379t-483 -131h-133l-70 -319h-170l309 1462h170l-53 -256h160q213 0 323.5 -95t110.5 -282zM354 465h135q215 0 328 91t113 267q0 126 -70 181t-215 55h-166z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1182" d="M-133 -492q-69 0 -123 21v143q61 -22 111 -22q65 0 107 47.5t65 157.5l280 1314q43 200 156 299t307 99q162 0 252 -71t90 -196q0 -57 -21 -106.5t-61.5 -95t-178.5 -150.5q-110 -83 -110 -151q0 -56 95 -122q47 -34 101 -87.5t79.5 -110t25.5 -123.5 q0 -175 -108.5 -274.5t-292.5 -99.5q-175 0 -268 71v160q51 -41 118.5 -66.5t129.5 -25.5q113 0 181 58t68 159q0 40 -10.5 71t-33.5 59t-89 83q-88 69 -122.5 124t-34.5 115q0 53 18.5 96t49.5 78.5t124 104.5q80 56 111 87.5t48 65t17 70.5q0 64 -52.5 100.5t-141.5 36.5 q-119 0 -186 -62.5t-95 -190.5l-274 -1303q-40 -189 -121 -276t-211 -87z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM824 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM600 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM1005 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM856 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM454 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM818 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1157" d="M98 0zM639 1116q92 0 164 -49.5t112 -142.5h11l67 172h127l-233 -1096h-133l26 209h-8q-179 -229 -377 -229q-139 0 -218 99t-79 271q0 208 71 386t196 279t274 101zM449 119q97 0 193 92.5t156 241t60 297.5q0 103 -56 164t-147 61q-104 0 -193.5 -86t-140.5 -233 t-51 -310q0 -114 47 -170.5t132 -56.5zM951 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM847 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1669" d="M1165 -20q-108 0 -189.5 39.5t-121.5 119.5l-31 -139h-114l26 209h-8q-109 -132 -191.5 -180.5t-177.5 -48.5q-122 0 -191 99t-69 269q0 206 70.5 385t191.5 281t263 102q82 0 145 -48.5t102 -143.5h11l67 172h109l-31 -146q123 166 332 166q119 0 192.5 -68t73.5 -184 q0 -182 -166.5 -283.5t-472.5 -101.5h-39l-4 -80q0 -131 62.5 -204.5t193.5 -73.5q55 0 116.5 16.5t178.5 67.5v-150q-164 -75 -328 -75zM412 119q95 0 188.5 91.5t153 240.5t59.5 299q0 103 -45.5 164t-122.5 61q-99 0 -187 -86.5t-138 -231.5t-50 -309q0 -114 37 -171.5 t105 -57.5zM1325 973q-117 0 -211 -94.5t-141 -260.5h14q226 0 348.5 58.5t122.5 169.5q0 61 -35 94t-98 33z" />
+<glyph unicode="&#xe7;" horiz-adv-x="922" d="M98 0zM506 -20q-194 0 -301 107t-107 302q0 200 74 369t204.5 263.5t293.5 94.5q137 0 268 -51l-47 -141q-120 51 -219 51q-112 0 -204.5 -76.5t-145 -213t-52.5 -296.5q0 -128 66.5 -199t183.5 -71q72 0 136 20t126 47v-143q-124 -63 -276 -63zM592 -276q0 -98 -81 -157 t-214 -59q-41 0 -86 9v100q38 -6 68 -6q174 0 174 110q0 46 -39 67.5t-99 29.5l101 182h106l-61 -121q131 -38 131 -155z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM777 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM585 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xea;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM966 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1010" d="M98 0zM492 -20q-184 0 -289 109t-105 302q0 188 74.5 360.5t197.5 268.5t271 96q153 0 230 -66.5t77 -185.5q0 -180 -166 -282.5t-475 -102.5h-33l-4 -80q0 -131 61.5 -204.5t190.5 -73.5q63 0 129.5 18t165.5 66v-146q-94 -44 -166 -61.5t-159 -17.5zM631 973 q-103 0 -193.5 -94t-138.5 -261h12q228 0 349.5 59.5t121.5 172.5q0 53 -36.5 88t-114.5 35zM413 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM777 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34 q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xec;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM492 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM324 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xee;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM708 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xef;" horiz-adv-x="520" d="M59 0zM227 0h-168l234 1096h168zM161 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM525 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1165" d="M676 1343q-66 58 -146 113l95 117q118 -84 188 -154l260 146l64 -105l-240 -133q87 -115 126.5 -240.5t39.5 -269.5q0 -253 -71.5 -447t-203 -292t-311.5 -98q-182 0 -284.5 104t-102.5 289q0 160 67.5 298t187 217t267.5 79q105 0 181.5 -45.5t111.5 -124.5l6 2v17 q0 136 -36.5 240t-110.5 197l-270 -149l-56 108zM487 121q107 0 190 56t134 168t51 226q0 118 -65.5 187t-178.5 69q-109 0 -189 -57.5t-123.5 -161t-43.5 -231.5q0 -126 57.5 -191t167.5 -65z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1182" d="M59 0zM729 0l148 692q20 104 20 144q0 63 -35.5 101t-113.5 38q-89 0 -173.5 -60t-149 -171t-97.5 -269l-101 -475h-168l234 1096h139l-22 -203h10q96 122 185.5 172.5t185.5 50.5q127 0 200.5 -69.5t73.5 -194.5q0 -79 -23 -180l-143 -672h-170zM871 1243 q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM798 1241h-104q-61 61 -128.5 154t-95.5 153v21h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM589 1268q56 60 125.5 151.5t106.5 149.5h190v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM997 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM844 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1149" d="M98 0zM643 1110q190 0 300 -112.5t110 -309.5q0 -188 -72 -355t-195 -258t-278 -91q-192 0 -301 113t-109 309q0 190 73 357.5t197 257t275 89.5zM879 711q0 115 -62.5 186.5t-169.5 71.5q-109 0 -195.5 -74t-134 -205.5t-47.5 -292.5q0 -131 63.5 -202.5t182.5 -71.5 q104 0 187 73t129.5 207.5t46.5 307.5zM433 1378q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM797 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xf7;" d="M127 651v142h920v-142h-920zM475 373q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90zM475 1071q0 121 111 121q53 0 82.5 -30.5t29.5 -90.5q0 -58 -30 -89.5t-82 -31.5t-81.5 31t-29.5 90z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1149" d="M1047 705q0 -189 -69.5 -360t-191.5 -266t-276 -95q-146 0 -246 65l-98 -125l-105 82l109 135q-68 103 -68 265q0 194 73.5 361t195.5 255t272 88q146 0 252 -68l104 129l105 -79l-119 -129q62 -97 62 -258zM647 971q-108 0 -195.5 -73t-137.5 -202t-50 -280 q0 -92 17 -137l518 645q-54 47 -152 47zM885 688q0 84 -13 119l-514 -641q57 -45 158 -45q103 0 188.5 71.5t133 200.5t47.5 295z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM800 1241h-104q-61 61 -128.5 154t-95.5 153v21 h181q43 -136 147 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM636 1268q56 60 125.5 151.5t106.5 149.5h190 v-21q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM1024 1241h-103q-57 48 -161 189 q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1182" d="M113 0zM451 1096l-150 -695q-18 -89 -18 -139q0 -143 147 -143q88 0 173 60t150 172t99 270l100 475h166l-231 -1096h-139l22 203h-12q-98 -125 -187 -174t-184 -49q-128 0 -201 69.5t-73 198.5q0 62 22 172l146 676h170zM457 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM821 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#xfd;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM500 1268q56 60 125.5 151.5t106.5 149.5h190v-21 q-38 -49 -140 -151t-177 -156h-105v27z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1182" d="M545 -20q-98 0 -172 51t-113 139h-10q-8 -104 -25 -176l-102 -486h-166l432 2048h168q-95 -441 -115 -522t-39 -149h9q101 125 189 177t183 52q139 0 218 -97.5t79 -273.5q0 -212 -69 -389t-191 -275.5t-276 -98.5zM731 975q-96 0 -195.5 -95t-158 -239t-58.5 -295 q0 -110 55.5 -168.5t160.5 -58.5q99 0 184.5 81t137.5 230.5t52 317.5q0 227 -178 227z" />
+<glyph unicode="&#xff;" horiz-adv-x="946" d="M0 0zM98 1096h168l74 -545q10 -69 19.5 -203.5t9.5 -216.5h6q35 87 87 200t77 156l325 609h178l-696 -1282q-93 -172 -184 -239t-219 -67q-72 0 -140 21v135q63 -18 131 -18q82 0 140.5 50.5t113.5 149.5l76 136zM335 1378q0 46 28 79.5t74 33.5q78 0 78 -80 q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM699 1378q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62z" />
+<glyph unicode="&#x131;" horiz-adv-x="520" d="M227 0h-168l234 1096h168z" />
+<glyph unicode="&#x152;" horiz-adv-x="1751" d="M1524 0h-674q-78 -20 -158 -20q-256 0 -399 149.5t-143 419.5q0 264 96 482t263.5 336t377.5 118q152 0 237 -23h709l-31 -153h-565l-100 -469h528l-31 -150h-528l-115 -538h565zM696 131q69 0 123 19l246 1161q-76 22 -191 22q-157 0 -281 -101t-192.5 -281t-68.5 -398 q0 -199 98 -310.5t266 -111.5z" />
+<glyph unicode="&#x153;" horiz-adv-x="1769" d="M1251 -20q-270 0 -356 225q-69 -107 -171.5 -164t-225.5 -57q-184 0 -292 114t-108 308q0 193 75 360t201 255.5t281 88.5q270 0 359 -225q75 109 177.5 170t221.5 61q139 0 217 -65.5t78 -186.5q0 -183 -164.5 -284t-468.5 -101h-41l-4 -80q0 -131 61.5 -204.5 t190.5 -73.5q75 0 145 24.5t150 59.5v-150q-162 -75 -326 -75zM649 969q-109 0 -196 -73t-135 -202t-48 -284q0 -141 62 -214t172 -73q177 0 278 160.5t101 427.5q0 124 -59.5 191t-174.5 67zM1413 973q-125 0 -220.5 -94.5t-139.5 -260.5h18q231 0 351 61t120 177 q0 48 -32 82.5t-97 34.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1030" d="M188 0zM537 715l489 747h193l-627 -921l-113 -541h-172l119 549l-238 913h170zM452 1716q0 46 28 79.5t74 33.5q78 0 78 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22t-23.5 62zM816 1716q0 46 28 79.5t75 33.5q77 0 77 -80q0 -49 -29.5 -83t-68.5 -34q-35 0 -58.5 22 t-23.5 62z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M1014 1241h-103q-57 48 -161 189q-134 -119 -242 -189h-109v27q145 133 204.5 197.5t82.5 103.5h158q37 -99 128 -235l42 -66v-27z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M989 1456q0 -99 -60 -157t-159 -58q-101 0 -160 57.5t-59 155.5q0 94 62 152.5t157 58.5q101 0 160 -57t59 -152zM885 1454q0 53 -32 84t-83 31q-49 0 -82 -31t-33 -84q0 -54 29.5 -84.5t85.5 -30.5q51 0 83 30.5t32 84.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M838 1243q-40 0 -77.5 17.5t-73 39t-69 39t-65.5 17.5q-44 0 -69.5 -28.5t-47.5 -86.5h-100q58 258 231 258q44 0 83.5 -18t75 -39.5t66.5 -39.5t58 -18q44 0 69.5 27t51.5 90h100q-66 -258 -233 -258z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2011;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2012;" horiz-adv-x="639" d="M55 469l35 158h479l-34 -158h-480z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M55 469l35 160h823l-34 -160h-824z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M55 469l35 160h1806l-34 -160h-1807z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188z" />
+<glyph unicode="&#x201a;" horiz-adv-x="492" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187z" />
+<glyph unicode="&#x201c;" horiz-adv-x="719" d="M500 961l-8 22q80 181 272 479h127q-162 -379 -203 -501h-188zM129 961l-6 22q98 211 270 479h127q-147 -345 -203 -501h-188z" />
+<glyph unicode="&#x201d;" horiz-adv-x="719" d="M516 1462l8 -22q-40 -91 -111 -218.5t-159 -260.5h-129q134 298 203 501h188zM885 1462l10 -22q-94 -206 -274 -479h-127q57 126 115.5 272.5t86.5 228.5h189z" />
+<glyph unicode="&#x201e;" horiz-adv-x="858" d="M291 238l8 -23q-113 -235 -270 -479h-129q126 286 204 502h187zM659 238l9 -23q-95 -205 -271 -479h-129q140 316 203 502h188z" />
+<glyph unicode="&#x2022;" horiz-adv-x="774" d="M199 684q0 145 73.5 231t198.5 86q92 0 139 -49t47 -141q0 -141 -74 -230t-202 -89q-89 0 -135.5 49.5t-46.5 142.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1563" d="M43 0zM563 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM1085 74q0 77 40.5 122.5t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77zM43 74q0 77 40.5 122.5 t111.5 45.5q43 0 69.5 -26t26.5 -79q0 -71 -40 -118.5t-108 -47.5q-46 0 -73 26t-27 77z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="580" d="M88 578l391 380l78 -81l-297 -334l172 -381l-113 -49l-231 436v29z" />
+<glyph unicode="&#x203a;" horiz-adv-x="580" d="M492 496l-392 -381l-77 82l296 333l-172 381l113 50l232 -437v-28z" />
+<glyph unicode="&#x2044;" horiz-adv-x="268" d="M752 1462l-1086 -1462h-153l1085 1462h154z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="717" d="M713 788h-129l-43 -202h-127l43 202h-365l23 101l481 579h133l-121 -563h127zM481 905q69 322 90 395q-20 -36 -110 -149l-205 -246h225z" />
+<glyph unicode="&#x20ac;" d="M928 1329q-140 0 -254 -99t-189 -298h426l-26 -133h-441q-21 -65 -32 -164h381l-29 -131h-361q0 -373 297 -373q123 0 256 55v-147q-127 -59 -278 -59q-212 0 -328.5 133.5t-116.5 378.5v12h-170l27 131h154q8 80 30 164h-151l27 133h159q97 267 259.5 408t369.5 141 q89 0 160 -21.5t141 -70.5l-80 -138q-113 78 -231 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M438 741h-121v617h-196v104h516v-104h-199v-617zM1014 741l-189 551h-6q4 -52 4 -121v-430h-118v721h180l182 -557l193 557h170v-721h-121v430q0 73 4 121h-6l-197 -551h-96z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1182" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff
new file mode 100644
index 0000000..ff652e6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Italic-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot
new file mode 100644
index 0000000..1486840
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg
new file mode 100644
index 0000000..11a472c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight" horiz-adv-x="1169" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1087h99v-1087zM782 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71 t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1077" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM895 0h-99v1556h99v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1087h99v-1087zM1397 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1692" d="M29 0zM586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1200 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5 q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86zM1510 0h-99v1556h99v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="492" d="M276 377h-61l-29 1085h119zM164 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x22;" horiz-adv-x="723" d="M260 1462l-33 -528h-61l-33 528h127zM590 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M967 928l-76 -398h303v-79h-320l-86 -451h-90l88 451h-360l-86 -451h-88l86 451h-283v79h299l76 398h-297v80h311l86 454h91l-89 -454h365l88 454h86l-88 -454h285v-80h-301zM440 530h363l78 398h-363z" />
+<glyph unicode="$" d="M991 440q0 -133 -99 -217t-274 -106v-236h-81v232q-92 2 -200.5 22.5t-172.5 50.5v103q75 -36 179.5 -61t193.5 -25v508q-145 44 -215 88t-102 104t-32 146q0 124 94.5 208.5t254.5 104.5v192h81v-190q197 -9 351 -72l-33 -90q-141 62 -318 72v-486q213 -66 293 -144 t80 -204zM881 444q0 85 -63 140.5t-200 95.5v-471q122 13 192.5 75t70.5 160zM297 1049q0 -86 57 -141t183 -93v453q-119 -16 -179.5 -76t-60.5 -143z" />
+<glyph unicode="%" horiz-adv-x="1653" d="M211 1026q0 -186 45 -279.5t141 -93.5q193 0 193 373q0 184 -49.5 276.5t-143.5 92.5q-96 0 -141 -92.5t-45 -276.5zM688 1026q0 -226 -75 -343.5t-216 -117.5q-133 0 -208.5 120.5t-75.5 340.5q0 223 72 340t212 117q139 0 215 -120.5t76 -336.5zM1063 438 q0 -185 45 -277.5t141 -92.5q193 0 193 370q0 369 -193 369q-96 0 -141 -91.5t-45 -277.5zM1540 438q0 -226 -74 -343.5t-215 -117.5q-136 0 -211 121.5t-75 339.5q0 225 73.5 341t212.5 116q137 0 213 -120t76 -337zM1280 1462l-811 -1462h-96l811 1462h96z" />
+<glyph unicode="&#x26;" horiz-adv-x="1460" d="M123 371q0 138 73.5 235t274.5 205l-75 82q-66 71 -98 139t-32 142q0 143 95.5 227t256.5 84q155 0 245.5 -81t90.5 -224q0 -105 -70 -192.5t-253 -194.5l452 -457q61 72 104 157t75 201h96q-63 -246 -209 -426l266 -268h-135l-193 197q-92 -90 -164 -131.5t-157.5 -63.5 t-194.5 -22q-209 0 -328.5 103t-119.5 288zM578 70q128 0 234.5 43.5t209.5 146.5l-483 485q-136 -72 -196.5 -122.5t-88 -109.5t-27.5 -138q0 -143 93 -224t258 -81zM373 1176q0 -79 40 -146t152 -174q159 85 221 159t62 169q0 94 -62 152.5t-168 58.5q-114 0 -179.5 -58 t-65.5 -161z" />
+<glyph unicode="'" horiz-adv-x="393" d="M260 1462l-33 -528h-61l-33 528h127z" />
+<glyph unicode="(" horiz-adv-x="557" d="M82 561q0 265 77.5 496t223.5 405h113q-148 -182 -227 -412.5t-79 -486.5q0 -483 304 -887h-111q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="557" d="M475 561q0 -263 -77.5 -490t-223.5 -395h-111q304 404 304 887q0 257 -79 487.5t-227 411.5h113q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1128" d="M631 1556l-37 -405l405 104l21 -131l-395 -39l247 -340l-124 -71l-191 379l-180 -379l-125 71l242 340l-390 39l19 131l401 -104l-39 405h146z" />
+<glyph unicode="+" d="M625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="," horiz-adv-x="440" d="M295 238l12 -21q-75 -265 -174 -481h-65q77 275 110 502h117z" />
+<glyph unicode="-" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="." horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="/" horiz-adv-x="698" d="M674 1462l-545 -1462h-104l544 1462h105z" />
+<glyph unicode="0" d="M1055 735q0 -385 -117.5 -570t-355.5 -185q-229 0 -348 190.5t-119 564.5q0 382 115.5 566t351.5 184q231 0 352 -190.5t121 -559.5zM223 735q0 -340 89 -502.5t270 -162.5q189 0 275.5 168t86.5 497q0 324 -86.5 492t-275.5 168t-274 -168t-85 -492z" />
+<glyph unicode="1" d="M682 0h-98v1065q0 145 12 301q-15 -15 -31 -29t-309 -243l-57 71l397 297h86v-1462z" />
+<glyph unicode="2" d="M1028 0h-915v88l389 406q164 170 230 260t97 172t31 172q0 131 -86 213t-223 82q-183 0 -350 -133l-54 69q183 154 406 154q191 0 300.5 -102t109.5 -281q0 -145 -73.5 -280.5t-268.5 -334.5l-375 -385v-4h782v-96z" />
+<glyph unicode="3" d="M979 1118q0 -136 -85.5 -229t-229.5 -119v-6q176 -22 268 -112t92 -242q0 -205 -139.5 -317.5t-401.5 -112.5q-223 0 -389 83v99q84 -44 188.5 -69t196.5 -25q221 0 332 89.5t111 252.5q0 145 -113.5 223t-333.5 78h-158v96h160q182 0 288.5 86.5t106.5 234.5 q0 122 -86.5 195.5t-226.5 73.5q-109 0 -199 -30.5t-202 -104.5l-49 67q85 71 205 112.5t243 41.5q202 0 312 -95.5t110 -269.5z" />
+<glyph unicode="4" d="M1141 373h-252v-373h-94v373h-752v67l725 1030h121v-1011h252v-86zM795 459v418q0 302 14 507h-8q-20 -37 -123 -188l-516 -737h633z" />
+<glyph unicode="5" d="M537 879q234 0 368.5 -113t134.5 -311q0 -225 -140 -350t-386 -125q-109 0 -207 21.5t-164 61.5v103q108 -55 192 -76.5t179 -21.5q192 0 308 101.5t116 274.5q0 163 -113 256t-307 93q-130 0 -272 -39l-60 39l58 669h704v-96h-610l-45 -516q156 29 244 29z" />
+<glyph unicode="6" d="M131 623q0 285 77.5 479.5t220 288.5t343.5 94q94 0 172 -23v-88q-73 27 -176 27q-247 0 -384.5 -178t-154.5 -518h13q76 98 174 148t207 50q205 0 320.5 -117t115.5 -323q0 -224 -121.5 -353.5t-327.5 -129.5q-222 0 -350.5 169.5t-128.5 473.5zM610 68q164 0 255 103 t91 294q0 168 -90 262t-245 94q-102 0 -189.5 -45t-139.5 -119.5t-52 -152.5q0 -111 49.5 -213.5t134 -162.5t186.5 -60z" />
+<glyph unicode="7" d="M334 0l602 1366h-827v96h946v-73l-604 -1389h-117z" />
+<glyph unicode="8" d="M582 1487q186 0 299.5 -95t113.5 -257q0 -112 -70.5 -198t-228.5 -159q192 -79 270 -173t78 -228q0 -181 -126.5 -289t-339.5 -108q-221 0 -339 101t-118 294q0 131 83 230t257 169q-161 76 -227 160.5t-66 202.5q0 105 53 184.5t148.5 122.5t212.5 43zM223 360 q0 -138 93.5 -214t261.5 -76q164 0 264 80.5t100 218.5q0 124 -78.5 201.5t-302.5 162.5q-184 -71 -261 -157t-77 -216zM580 1397q-141 0 -226.5 -69.5t-85.5 -190.5q0 -70 31.5 -123.5t91 -97t199.5 -101.5q163 63 234 139t71 183q0 120 -84.5 190t-230.5 70z" />
+<glyph unicode="9" d="M1036 842q0 -288 -75.5 -482t-220 -287t-349.5 -93q-104 0 -192 26v86q43 -14 103.5 -21.5t92.5 -7.5q247 0 387 178.5t156 520.5h-12q-73 -96 -174 -147.5t-211 -51.5q-203 0 -316.5 112t-113.5 318q0 220 124.5 356t323.5 136q144 0 252 -75.5t166.5 -221.5t58.5 -346z M559 1397q-158 0 -252 -106.5t-94 -291.5q0 -174 87 -264t249 -90q101 0 188.5 45t139 119.5t51.5 151.5q0 117 -46.5 219t-130 159.5t-192.5 57.5z" />
+<glyph unicode=":" horiz-adv-x="487" d="M162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode=";" horiz-adv-x="487" d="M303 238l12 -21q-75 -265 -174 -481h-65q29 97 62 245.5t48 256.5h117zM162 971q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#x3c;" d="M1059 266l-948 416v61l948 474v-95l-823 -405l823 -355v-96z" />
+<glyph unicode="=" d="M111 885v82h948v-82h-948zM111 477v82h948v-82h-948z" />
+<glyph unicode="&#x3e;" d="M111 362l823 355l-823 405v95l948 -474v-61l-948 -416v96z" />
+<glyph unicode="?" horiz-adv-x="862" d="M293 377v37q0 123 37.5 201t138.5 167l91 79q72 61 103 121t31 138q0 127 -83.5 202t-219.5 75q-79 0 -148 -17.5t-149 -56.5l-37 80q110 48 184.5 64t153.5 16q183 0 288 -98.5t105 -270.5q0 -68 -18 -119t-50.5 -94.5t-78.5 -84t-102 -87.5q-64 -54 -98.5 -98.5 t-50 -93.5t-15.5 -146v-14h-82zM260 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="@" horiz-adv-x="1815" d="M1702 725q0 -228 -90.5 -366t-245.5 -138q-89 0 -144.5 54t-64.5 147h-4q-43 -100 -124 -150.5t-189 -50.5q-148 0 -229 96.5t-81 270.5q0 202 120.5 330.5t314.5 128.5q138 0 286 -41l-22 -464v-30q0 -104 35 -156.5t116 -52.5q103 0 168.5 116.5t65.5 303.5 q0 194 -79 340t-225.5 224.5t-334.5 78.5q-230 0 -405.5 -99.5t-270 -281.5t-94.5 -418q0 -322 167 -497.5t474 -175.5q93 0 188.5 18t231.5 70v-99q-203 -80 -414 -80q-349 0 -544 200.5t-195 557.5q0 256 108.5 460.5t307 317.5t448.5 113q215 0 380.5 -89t255 -254.5 t89.5 -383.5zM633 590q0 -143 55 -215t174 -72q255 0 273 346l16 291q-79 27 -193 27q-149 0 -237 -102.5t-88 -274.5z" />
+<glyph unicode="A" horiz-adv-x="1229" d="M911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174z" />
+<glyph unicode="B" horiz-adv-x="1284" d="M207 1462h401q271 0 398 -92t127 -278q0 -127 -77.5 -211.5t-226.5 -108.5v-6q175 -26 257.5 -110.5t82.5 -235.5q0 -202 -134 -311t-380 -109h-448v1462zM309 811h322q206 0 299.5 68.5t93.5 214.5t-105.5 212t-314.5 66h-295v-561zM309 721v-631h344q406 0 406 330 q0 301 -428 301h-322z" />
+<glyph unicode="C" horiz-adv-x="1272" d="M831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80z" />
+<glyph unicode="D" horiz-adv-x="1446" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v1462h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-1282h242q655 0 655 651z" />
+<glyph unicode="E" horiz-adv-x="1130" d="M1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94z" />
+<glyph unicode="F" horiz-adv-x="1028" d="M309 0h-102v1462h801v-94h-699v-620h660v-95h-660v-653z" />
+<glyph unicode="G" horiz-adv-x="1481" d="M782 737h539v-667q-212 -90 -477 -90q-346 0 -530.5 195.5t-184.5 553.5q0 223 91.5 395.5t262 266.5t391.5 94q239 0 429 -88l-41 -92q-190 88 -394 88q-289 0 -458.5 -178.5t-169.5 -481.5q0 -330 161 -496.5t473 -166.5q202 0 343 57v514h-435v96z" />
+<glyph unicode="H" horiz-adv-x="1473" d="M1266 0h-103v719h-854v-719h-102v1462h102v-649h854v649h103v-1462z" />
+<glyph unicode="I" horiz-adv-x="516" d="M207 0v1462h102v-1462h-102z" />
+<glyph unicode="J" horiz-adv-x="506" d="M-33 -369q-92 0 -151 27v88q78 -20 149 -20q242 0 242 264v1472h102v-1462q0 -369 -342 -369z" />
+<glyph unicode="K" horiz-adv-x="1190" d="M1190 0h-125l-561 772l-195 -172v-600h-102v1462h102v-760l162 162l573 598h130l-599 -618z" />
+<glyph unicode="L" horiz-adv-x="1051" d="M207 0v1462h102v-1366h697v-96h-799z" />
+<glyph unicode="M" horiz-adv-x="1767" d="M850 0l-545 1350h-8q8 -124 8 -254v-1096h-98v1462h158l518 -1286h6l518 1286h154v-1462h-103v1108q0 116 12 240h-8l-547 -1348h-65z" />
+<glyph unicode="N" horiz-adv-x="1477" d="M1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462z" />
+<glyph unicode="O" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483z" />
+<glyph unicode="P" horiz-adv-x="1198" d="M1087 1042q0 -212 -144 -325t-408 -113h-226v-604h-102v1462h358q522 0 522 -420zM309 692h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="Q" horiz-adv-x="1565" d="M1436 733q0 -294 -126 -486.5t-349 -246.5l333 -348h-166l-282 330l-33 -2h-31q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5 t-401.5 168.5q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="R" horiz-adv-x="1217" d="M309 637v-637h-102v1462h348q272 0 402 -100.5t130 -302.5q0 -147 -77.5 -248t-235.5 -145l397 -666h-122l-377 637h-363zM309 725h279q185 0 287 82.5t102 243.5q0 167 -100 243t-326 76h-242v-645z" />
+<glyph unicode="S" horiz-adv-x="1116" d="M1014 377q0 -183 -134.5 -290t-357.5 -107q-268 0 -411 59v102q158 -67 403 -67q180 0 285.5 82.5t105.5 216.5q0 83 -35 137.5t-114 99.5t-232 97q-224 77 -309.5 166.5t-85.5 238.5q0 164 128.5 267.5t330.5 103.5q206 0 387 -78l-37 -88q-182 76 -348 76 q-162 0 -258 -75t-96 -204q0 -81 29.5 -133t96.5 -93.5t230 -99.5q171 -59 257 -114.5t125.5 -126t39.5 -170.5z" />
+<glyph unicode="T" horiz-adv-x="1073" d="M588 0h-103v1366h-475v96h1053v-96h-475v-1366z" />
+<glyph unicode="U" horiz-adv-x="1473" d="M1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102z" />
+<glyph unicode="V" horiz-adv-x="1182" d="M1071 1462h111l-547 -1462h-90l-545 1462h109l368 -995q84 -225 113 -338q20 75 79 233z" />
+<glyph unicode="W" horiz-adv-x="1827" d="M1372 0h-84l-321 1128q-40 139 -60 228q-16 -87 -45.5 -200t-322.5 -1156h-86l-402 1462h107l256 -942q15 -57 28 -105.5t23.5 -91t19 -82t15.5 -79.5q24 136 102 413l250 887h113l293 -1018q51 -176 73 -284q13 72 33.5 153t308.5 1149h103z" />
+<glyph unicode="X" horiz-adv-x="1102" d="M1102 0h-117l-432 682l-440 -682h-113l492 762l-447 700h115l395 -626l401 626h109l-453 -698z" />
+<glyph unicode="Y" horiz-adv-x="1081" d="M543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117z" />
+<glyph unicode="Z" horiz-adv-x="1180" d="M1098 0h-1016v76l856 1290h-817v96h954v-76l-858 -1290h881v-96z" />
+<glyph unicode="[" horiz-adv-x="653" d="M602 -324h-428v1786h428v-94h-330v-1597h330v-95z" />
+<glyph unicode="\" horiz-adv-x="698" d="M127 1462l547 -1462h-103l-546 1462h102z" />
+<glyph unicode="]" horiz-adv-x="653" d="M51 -229h330v1597h-330v94h428v-1786h-428v95z" />
+<glyph unicode="^" d="M88 561l465 912h68l460 -912h-100l-395 791l-398 -791h-100z" />
+<glyph unicode="_" horiz-adv-x="842" d="M846 -266h-850v82h850v-82z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M776 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="a" horiz-adv-x="1085" d="M842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5z" />
+<glyph unicode="b" horiz-adv-x="1219" d="M641 1108q228 0 343.5 -143.5t115.5 -419.5q0 -271 -121.5 -418t-341.5 -147q-116 0 -209 48t-147 136h-9l-28 -164h-62v1556h99v-391q0 -88 -4 -162l-3 -85h7q62 98 149.5 144t210.5 46zM639 1018q-192 0 -275 -110t-83 -363v-17q0 -246 86.5 -353t269.5 -107 q178 0 268 124.5t90 354.5q0 471 -356 471z" />
+<glyph unicode="c" horiz-adv-x="973" d="M616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51z" />
+<glyph unicode="d" horiz-adv-x="1219" d="M580 1108q118 0 204 -43t154 -147h6q-6 126 -6 247v391h98v-1556h-65l-25 166h-8q-124 -186 -356 -186q-225 0 -344 140t-119 408q0 282 118 431t343 149zM580 1018q-178 0 -267.5 -125t-89.5 -363q0 -462 359 -462q184 0 270 107t86 353v17q0 252 -84.5 362.5 t-273.5 110.5z" />
+<glyph unicode="e" horiz-adv-x="1124" d="M621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5z" />
+<glyph unicode="f" horiz-adv-x="614" d="M586 1001h-256v-1001h-99v1001h-202v58l202 37v84q0 200 73.5 293.5t240.5 93.5q90 0 180 -27l-23 -86q-80 25 -159 25q-116 0 -164.5 -68.5t-48.5 -222.5v-101h256v-86z" />
+<glyph unicode="g" horiz-adv-x="1071" d="M1030 1087v-69l-225 -14q90 -112 90 -246q0 -157 -104.5 -254.5t-280.5 -97.5q-74 0 -104 6q-59 -31 -90 -73t-31 -89q0 -52 39.5 -76t132.5 -24h190q177 0 271 -71.5t94 -211.5q0 -172 -139.5 -265.5t-397.5 -93.5q-205 0 -317.5 79t-112.5 220q0 112 69.5 186 t188.5 101q-49 21 -78.5 59.5t-29.5 88.5q0 109 139 192q-95 39 -148 122.5t-53 191.5q0 163 103.5 261.5t279.5 98.5q107 0 166 -21h348zM150 -184q0 -224 333 -224q428 0 428 273q0 98 -67 142t-217 44h-178q-299 0 -299 -235zM233 748q0 -126 76.5 -195.5t204.5 -69.5 q136 0 208.5 69t72.5 200q0 139 -74.5 208.5t-208.5 69.5q-130 0 -204.5 -74.5t-74.5 -207.5z" />
+<glyph unicode="h" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1556h99v-495l-5 -139h7q61 98 154 142t231 44q370 0 370 -397v-711h-98z" />
+<glyph unicode="i" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="j" horiz-adv-x="463" d="M37 -492q-80 0 -135 25v86q69 -20 129 -20q151 0 151 176v1312h99v-1298q0 -135 -63.5 -208t-180.5 -73zM168 1389q0 96 63 96q31 0 48.5 -25t17.5 -71q0 -45 -17.5 -71t-48.5 -26q-63 0 -63 97z" />
+<glyph unicode="k" horiz-adv-x="991" d="M279 477l555 610h120l-428 -464l465 -623h-119l-413 549l-178 -162v-387h-99v1556h99v-780l-7 -299h5z" />
+<glyph unicode="l" horiz-adv-x="463" d="M281 0h-99v1556h99v-1556z" />
+<glyph unicode="m" horiz-adv-x="1808" d="M1540 0v713q0 159 -62 232t-190 73q-167 0 -247 -92t-80 -289v-637h-101v743q0 275 -252 275q-171 0 -249 -99.5t-78 -318.5v-600h-99v1087h82l21 -149h6q45 81 128 125.5t183 44.5q257 0 330 -193h4q53 93 142.5 143t203.5 50q178 0 267 -95t89 -302v-711h-98z" />
+<glyph unicode="n" horiz-adv-x="1208" d="M940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98z" />
+<glyph unicode="o" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5t-97.5 -349.5z " />
+<glyph unicode="p" horiz-adv-x="1219" d="M647 -20q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v1579h84l19 -155h6q112 176 358 176q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5zM645 68q167 0 258.5 124t91.5 347q0 479 -346 479q-190 0 -279 -104.5t-89 -340.5v-32 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="q" horiz-adv-x="1219" d="M569 -20q-214 0 -332 142t-118 410q0 275 118 425.5t338 150.5q236 0 353 -174h6l18 153h84v-1579h-98v414q0 122 6 248h-6q-118 -190 -369 -190zM571 68q198 0 282.5 109t84.5 366v12q0 245 -85 354t-271 109q-176 0 -267.5 -124t-91.5 -364q0 -229 89.5 -345.5 t258.5 -116.5z" />
+<glyph unicode="r" horiz-adv-x="797" d="M610 1108q69 0 148 -14l-19 -95q-68 17 -141 17q-139 0 -228 -118t-89 -298v-600h-99v1087h84l10 -196h7q67 120 143 168.5t184 48.5z" />
+<glyph unicode="s" horiz-adv-x="954" d="M856 283q0 -146 -111 -224.5t-315 -78.5q-218 0 -346 67v107q164 -82 346 -82q161 0 244.5 53.5t83.5 142.5q0 82 -66.5 138t-218.5 110q-163 59 -229 101.5t-99.5 96t-33.5 130.5q0 122 102.5 193t286.5 71q176 0 334 -66l-37 -90q-160 66 -297 66q-133 0 -211 -44 t-78 -122q0 -85 60.5 -136t236.5 -114q147 -53 214 -95.5t100.5 -96.5t33.5 -127z" />
+<glyph unicode="t" horiz-adv-x="686" d="M469 68q94 0 164 16v-80q-72 -24 -166 -24q-144 0 -212.5 77t-68.5 242v702h-161v58l161 45l50 246h51v-263h319v-86h-319v-688q0 -125 44 -185t138 -60z" />
+<glyph unicode="u" horiz-adv-x="1208" d="M268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98z" />
+<glyph unicode="v" horiz-adv-x="940" d="M420 0l-420 1087h102l281 -739q56 -142 84 -248h6q41 136 84 250l281 737h102l-420 -1087h-100z" />
+<glyph unicode="w" horiz-adv-x="1481" d="M1051 0l-238 727q-23 74 -59 217h-6l-21 -74l-45 -145l-242 -725h-98l-311 1087h106l174 -630q61 -234 80 -344h6q59 234 86 311l224 663h90l213 -661q72 -235 88 -311h6q8 65 80 348l166 624h100l-295 -1087h-104z" />
+<glyph unicode="x" horiz-adv-x="1020" d="M449 559l-379 528h114l324 -458l321 458h109l-373 -528l400 -559h-115l-342 485l-344 -485h-109z" />
+<glyph unicode="y" horiz-adv-x="940" d="M0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5z" />
+<glyph unicode="z" horiz-adv-x="944" d="M858 0h-776v63l645 936h-598v88h727v-63l-649 -936h651v-88z" />
+<glyph unicode="{" horiz-adv-x="723" d="M389 -27q0 -102 59.5 -152.5t202.5 -53.5v-91q-195 0 -277.5 75t-82.5 231v337q0 205 -230 209v80q122 2 176 51t54 148v350q0 299 360 305v-90q-138 -5 -200 -58t-62 -157v-305q0 -130 -44 -194t-142 -85v-8q97 -20 141.5 -83.5t44.5 -186.5v-322z" />
+<glyph unicode="|" horiz-adv-x="1108" d="M508 1561h92v-2067h-92v2067z" />
+<glyph unicode="}" horiz-adv-x="723" d="M334 295q0 123 44.5 186.5t141.5 83.5v8q-97 20 -141.5 84t-44.5 195v305q0 103 -61.5 156.5t-200.5 58.5v90q174 0 267 -77.5t93 -227.5v-350q0 -100 54.5 -148.5t175.5 -50.5v-80q-230 -4 -230 -209v-337q0 -155 -82.5 -230.5t-277.5 -75.5v91q141 2 201.5 52.5 t60.5 153.5v322z" />
+<glyph unicode="~" d="M334 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t155 -57.5q126 -58 220 -58q56 0 109.5 30.5t115.5 94.5v-96q-48 -49 -104.5 -81t-129.5 -32q-116 0 -270 72q-124 57 -221 57z" />
+<glyph unicode="&#xa1;" horiz-adv-x="492" d="M215 711h61l29 -1086h-119zM166 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xa2;" d="M602 190q-186 30 -288.5 175t-102.5 380q0 232 102.5 381.5t288.5 182.5v174h82v-166h14q131 0 275 -55l-31 -84q-134 51 -237 51q-187 0 -288.5 -122.5t-101.5 -358.5q0 -225 100.5 -349.5t280.5 -124.5q131 0 267 58v-92q-110 -56 -267 -56h-12v-204h-82v210z" />
+<glyph unicode="&#xa3;" d="M412 676v-256q0 -116 -35 -196t-113 -128h809v-96h-995v84q110 21 171.5 110t61.5 224v258h-211v82h211v297q0 204 98 315t281 111q175 0 330 -68l-35 -86q-157 66 -295 66q-141 0 -209.5 -81t-68.5 -253v-301h411v-82h-411z" />
+<glyph unicode="&#xa4;" d="M991 723q0 -151 -90 -256l139 -141l-59 -60l-137 142q-110 -93 -260 -93q-153 0 -260 93l-138 -142l-59 60l139 141q-90 106 -90 256q0 147 90 258l-139 141l59 60l138 -142q103 93 260 93q155 0 260 -93l137 142l59 -60l-139 -141q90 -111 90 -258zM584 395 q134 0 228.5 95.5t94.5 232.5q0 136 -95 233t-228 97q-134 0 -229 -97t-95 -233t94.5 -232t229.5 -96z" />
+<glyph unicode="&#xa5;" d="M586 666l428 796h110l-432 -788h283v-82h-338v-205h338v-82h-338v-305h-105v305h-337v82h337v205h-337v82h278l-430 788h117z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1108" d="M508 1561h92v-764h-92v764zM508 258h92v-764h-92v764z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M145 813q0 83 50.5 152.5t138.5 107.5q-86 47 -125 102t-39 136q0 117 101.5 183.5t275.5 66.5q175 0 336 -64l-35 -80q-91 34 -158.5 47t-144.5 13q-134 0 -205.5 -44.5t-71.5 -119.5q0 -54 25.5 -88.5t85.5 -65.5t188 -74q192 -64 264 -132.5t72 -170.5 q0 -173 -186 -274q86 -42 129 -96t43 -136q0 -135 -113 -207.5t-311 -72.5q-92 0 -171 15t-165 52v95q182 -78 332 -78q162 0 247 49.5t85 140.5q0 55 -25 87.5t-88.5 65.5t-190.5 79q-200 73 -272 141.5t-72 169.5zM246 825q0 -65 31.5 -104t105.5 -75t250 -99 q82 41 126 98t44 121q0 62 -32 102t-108.5 77t-236.5 87q-81 -23 -130.5 -79t-49.5 -128z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M336 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM717 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M897 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q84 0 198 43v-88q-102 -45 -208 -45q-187 0 -288.5 115t-101.5 331q0 208 111 332.5t297 124.5q119 0 227 -52l-37 -83q-98 45 -190 45zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100 t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z " />
+<glyph unicode="&#xaa;" horiz-adv-x="686" d="M512 813l-25 72q-84 -84 -202 -84q-95 0 -151 49t-56 139q0 100 80 151.5t241 59.5l95 4v43q0 77 -38 114.5t-106 37.5q-87 0 -196 -49l-33 73q117 56 231 56q228 0 228 -215v-451h-68zM168 993q0 -54 35 -85t96 -31q90 0 142.5 50t52.5 142v64l-88 -5 q-116 -6 -177 -36.5t-61 -98.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="885" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27zM442 543l310 393l61 -43l-254 -363l254 -362l-61 -43l-310 391v27z" />
+<glyph unicode="&#xac;" d="M1038 764v-494h-82v412h-845v82h927z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M92 512zM92 512v82h475v-82h-475z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M709 731h112q91 0 143 46.5t52 135.5q0 172 -197 172h-110v-354zM1120 918q0 -79 -38.5 -139.5t-110.5 -94.5l237 -393h-121l-210 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM193 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89t329.5 88.5t240.5 240.5t89 330q0 174 -85.5 325t-239 243t-334.5 92q-176 0 -328.5 -88.5t-241.5 -242.5t-89 -329z" />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v82h1036v-82z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M139 1184q0 132 86.5 215.5t212.5 83.5t212.5 -83.5t86.5 -215.5t-86.5 -215.5t-212.5 -83.5q-130 0 -214.5 83t-84.5 216zM229 1184q0 -91 61 -154t148 -63q86 0 147.5 62t61.5 155q0 92 -60 154.5t-149 62.5q-90 0 -149.5 -64t-59.5 -153z" />
+<glyph unicode="&#xb1;" d="M111 1zM111 1v82h948v-82h-948zM625 764h434v-82h-434v-432h-82v432h-432v82h432v434h82v-434z" />
+<glyph unicode="&#xb2;" horiz-adv-x="688" d="M629 586h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xb3;" horiz-adv-x="688" d="M616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5q-128 0 -246 -78 l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1221" d="M281 1087v-704q0 -164 69 -238.5t213 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-50 -77 -150 -123.5t-217 -46.5q-99 0 -167.5 27.5t-119.5 84.5q5 -92 5 -170v-414h-99v1579h99z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1106 -260h-100v1722h-228v-1722h-100v819q-64 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h543v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="487" d="M162 623zM162 721q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M393 -291q0 -100 -67.5 -150.5t-188.5 -50.5q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="688" d="M350 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77z" />
+<glyph unicode="&#xba;" horiz-adv-x="739" d="M670 1141q0 -161 -80 -250.5t-223 -89.5t-220 86t-77 254q0 162 78 250t223 88q142 0 220.5 -87t78.5 -251zM160 1141q0 -264 209 -264t209 264q0 131 -50 194.5t-159 63.5t-159 -63.5t-50 -194.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="885" d="M803 518l-309 -393l-62 43l254 362l-254 363l62 43l309 -391v-27zM442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1516" d="M59 0zM333 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1148 1462l-811 -1462h-94l811 1462h94zM1392 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1173 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1516" d="M11 0zM285 1462h92v-876h-98v547q0 99 12 233q-26 -23 -233 -145l-47 77zM1073 1462l-811 -1462h-94l811 1462h94zM1403 1h-576v78l242 237q125 121 172 193t47 149q0 71 -46.5 112.5t-123.5 41.5q-108 0 -217 -82l-49 65q119 103 270 103q124 0 194 -63.5t70 -174.5 q0 -47 -13 -89t-40 -85.5t-68.5 -90t-308.5 -306.5h447v-88z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1516" d="M41 0zM616 1260q0 -78 -44 -131.5t-117 -75.5q186 -45 186 -211q0 -130 -88.5 -201.5t-247.5 -71.5q-144 0 -264 60v88q136 -62 266 -62q115 0 174.5 49t59.5 136q0 83 -59.5 122t-178.5 39h-131v84h135q105 0 158 43.5t53 120.5q0 67 -47 107.5t-127 40.5 q-128 0 -246 -78l-47 70q130 94 293 94q127 0 199.5 -60t72.5 -163zM1300 1462l-811 -1462h-94l811 1462h94zM1495 242h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM1276 320v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#xbf;" horiz-adv-x="862" d="M569 711v-37q0 -125 -39.5 -204.5t-136.5 -164.5l-90 -79q-73 -61 -104 -120.5t-31 -138.5q0 -124 82 -200t221 -76q125 0 233 46l64 27l37 -79q-111 -48 -185.5 -64t-152.5 -16q-184 0 -288.5 99t-104.5 269q0 70 20 124t58.5 102t171.5 159q64 53 98.5 98.5t49.5 94 t15 145.5v15h82zM440 1010q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM720 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM504 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM328 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM784 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM367 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM748 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1229" d="M0 0zM911 516h-594l-204 -516h-113l588 1468h65l576 -1468h-115zM354 608h523l-199 527q-25 62 -60 172q-27 -96 -59 -174zM836 1610q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM482 1610q0 -66 37.5 -103.5t99.5 -37.5 t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1653" d="M1528 0h-717v516h-475l-227 -516h-111l653 1462h877v-94h-615v-553h576v-94h-576v-627h615v-94zM377 608h434v760h-100z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1272" d="M129 0zM831 1391q-275 0 -433 -176t-158 -482q0 -313 149 -486t426 -173q184 0 338 47v-90q-145 -51 -362 -51q-308 0 -485 199t-177 556q0 223 84.5 393t243 262.5t368.5 92.5q214 0 383 -80l-41 -92q-160 80 -336 80zM911 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM697 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM463 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xca;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM315 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1130" d="M207 0zM1006 0h-799v1462h799v-94h-697v-553h658v-94h-658v-627h697v-94zM354 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM735 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xcc;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM320 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xcd;" horiz-adv-x="516" d="M191 0zM207 0v1462h102v-1462h-102zM191 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xce;" horiz-adv-x="516" d="M0 0zM207 0v1462h102v-1462h-102zM-32 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xcf;" horiz-adv-x="516" d="M5 0zM207 0v1462h102v-1462h-102zM5 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM386 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1466" d="M1317 745q0 -368 -193 -556.5t-567 -188.5h-350v678h-160v94h160v690h395q350 0 532.5 -183t182.5 -534zM1206 741q0 314 -159.5 472.5t-468.5 158.5h-269v-600h406v-94h-406v-588h242q655 0 655 651z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1477" d="M207 0zM1270 0h-103l-866 1298h-8q12 -232 12 -350v-948h-98v1462h102l865 -1296h6q-9 180 -9 342v954h99v-1462zM897 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59 q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM885 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM686 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM492 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM940 1581q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1565" d="M129 0zM1436 733q0 -348 -174 -550.5t-480 -202.5q-305 0 -479 202.5t-174 552.5q0 349 175.5 549.5t479.5 200.5q306 0 479 -201.5t173 -550.5zM240 733q0 -314 140 -485.5t402 -171.5q264 0 403.5 170t139.5 487q0 316 -139.5 484.5t-401.5 168.5q-261 0 -402.5 -170 t-141.5 -483zM529 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM910 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xd7;" d="M584 780l409 408l58 -58l-408 -407l406 -408l-58 -57l-407 408l-406 -408l-57 57l405 408l-407 407l57 58z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1565" d="M1436 733q0 -348 -174 -550.5t-480 -202.5q-236 0 -395 120l-86 -120l-74 59l90 127q-188 200 -188 569q0 349 175.5 549.5t479.5 200.5q232 0 392 -121l108 152l72 -60l-111 -153q191 -207 191 -570zM1325 733q0 315 -139 486l-742 -1037q133 -106 338 -106 q264 0 403.5 170t139.5 487zM240 733q0 -312 139 -483l739 1034q-133 102 -334 102q-261 0 -402.5 -170t-141.5 -483z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM833 1579h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xda;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM633 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM444 1595q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207 q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1473" d="M190 0zM1282 1462v-946q0 -252 -146 -394t-407 -142q-254 0 -396.5 142.5t-142.5 397.5v942h103v-946q0 -211 117 -328.5t331 -117.5q209 0 324 115.5t115 320.5v956h102zM481 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM862 1727q0 46 15.5 66 t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM434 1595q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xde;" horiz-adv-x="1198" d="M1087 778q0 -212 -144 -325t-408 -113h-226v-340h-102v1462h102v-264h256q522 0 522 -420zM309 428h201q247 0 357 81.5t110 264.5q0 169 -104 250.5t-322 81.5h-242v-678z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1194" d="M961 1284q0 -139 -139 -250q-81 -64 -110.5 -100.5t-29.5 -75.5q0 -44 14.5 -68t51.5 -57t102 -78q106 -75 151.5 -124.5t68 -103t22.5 -120.5q0 -156 -88 -241.5t-246 -85.5q-95 0 -174.5 18.5t-126.5 48.5v107q65 -38 148.5 -62t152.5 -24q114 0 174.5 54.5t60.5 160.5 q0 83 -39 144t-149 136q-127 87 -175 147t-48 146q0 60 32.5 110t106.5 108q74 57 106.5 105.5t32.5 106.5q0 93 -70 143t-202 50q-145 0 -226 -69t-81 -196v-1214h-99v1206q0 173 103.5 267t292.5 94q188 0 285.5 -72.5t97.5 -210.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM638 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM422 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM251 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM697 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5 h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM282 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM663 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1085" d="M98 0zM842 0l-25 172h-8q-82 -105 -168.5 -148.5t-204.5 -43.5q-160 0 -249 82t-89 227q0 159 132.5 247t383.5 93l207 6v72q0 155 -63 234t-203 79q-151 0 -313 -84l-37 86q179 84 354 84q179 0 267.5 -93t88.5 -290v-723h-73zM442 70q174 0 274.5 99.5t100.5 276.5v107 l-190 -8q-229 -11 -326.5 -71.5t-97.5 -188.5q0 -102 62.5 -158.5t176.5 -56.5zM759 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM405 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5 q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1731" d="M1243 -20q-295 0 -397 256q-68 -133 -168 -194.5t-252 -61.5q-156 0 -242 82.5t-86 226.5q0 154 125 243t377 97l201 6v72q0 155 -61.5 234t-198.5 79q-148 0 -305 -84l-37 86q173 84 346 84q261 0 325 -211q111 213 347 213q184 0 289.5 -134.5t105.5 -363.5v-80h-715 q0 -460 348 -460q85 0 150 12t174 57v-90q-92 -41 -165 -55t-161 -14zM434 70q169 0 266 99.5t97 276.5v107l-187 -8q-219 -11 -313 -71.5t-94 -188.5q0 -102 61 -158.5t170 -56.5zM1217 1020q-284 0 -314 -402h604q0 188 -77.5 295t-212.5 107z" />
+<glyph unicode="&#xe7;" horiz-adv-x="973" d="M119 0zM616 -20q-233 0 -365 147t-132 410q0 270 137 420.5t375 150.5q141 0 270 -49l-27 -88q-141 47 -245 47q-200 0 -303 -123.5t-103 -355.5q0 -220 103 -344.5t288 -124.5q148 0 275 53v-92q-104 -51 -273 -51zM723 -291q0 -100 -67.5 -150.5t-188.5 -50.5 q-68 0 -94 11v88q30 -10 92 -10q78 0 119 28t41 80q0 94 -193 121l93 174h96l-66 -117q168 -37 168 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM685 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM452 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xea;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM290 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1124" d="M119 0zM621 -20q-237 0 -369.5 146t-132.5 409q0 260 128 416.5t345 156.5q192 0 303 -134t111 -364v-80h-783q2 -224 104.5 -342t293.5 -118q93 0 163.5 13t178.5 56v-90q-92 -40 -170 -54.5t-172 -14.5zM592 1020q-157 0 -252 -103.5t-111 -298.5h672q0 189 -82 295.5 t-227 106.5zM331 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM712 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xec;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM349 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xed;" horiz-adv-x="463" d="M107 0zM281 0h-99v1087h99v-1087zM107 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xee;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-58 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xef;" horiz-adv-x="463" d="M0 0zM281 0h-99v1087h99v-1087zM-21 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM360 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1174" d="M1055 559q0 -276 -124 -427.5t-349 -151.5q-214 0 -339.5 130t-125.5 361q0 228 126.5 357.5t342.5 129.5q108 0 187.5 -33t148.5 -96l4 2q-64 270 -269 459l-270 -157l-49 77l244 146q-86 62 -199 119l45 81q147 -69 248 -145l225 137l49 -84l-202 -121 q154 -151 230.5 -353t76.5 -431zM950 557q0 146 -97 228.5t-267 82.5q-185 0 -275 -100.5t-90 -304.5q0 -186 94.5 -289.5t268.5 -103.5q179 0 272.5 123t93.5 364z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1208" d="M182 0zM940 0v705q0 164 -69 238.5t-214 74.5q-195 0 -285.5 -98.5t-90.5 -319.5v-600h-99v1087h84l19 -149h6q106 170 377 170q370 0 370 -397v-711h-98zM779 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5 t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM718 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM499 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM309 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM761 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1200" d="M119 0zM1081 545q0 -266 -129 -415.5t-356 -149.5q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q224 0 351.5 -150.5t127.5 -412.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5t278.5 125.5t98.5 349.5q0 225 -99.5 349t-279.5 124t-277.5 -123.5 t-97.5 -349.5zM346 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM727 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xf7;" d="M111 682v82h948v-82h-948zM504 1075q0 99 80 99q82 0 82 -99q0 -52 -23.5 -75t-58.5 -23q-34 0 -57 23t-23 75zM504 371q0 98 80 98q82 0 82 -98q0 -53 -23.5 -76t-58.5 -23q-34 0 -57 23t-23 76z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1200" d="M1081 545q0 -266 -129 -415.5t-356 -149.5q-173 0 -291 98l-86 -113l-72 58l93 120q-121 153 -121 402q0 266 129 414.5t354 148.5q179 0 301 -104l96 124l74 -55l-104 -137q112 -147 112 -391zM223 545q0 -200 78 -322l543 705q-98 90 -246 90q-180 0 -277.5 -123.5 t-97.5 -349.5zM977 545q0 190 -72 309l-543 -702q94 -82 238 -82q180 0 278.5 125.5t98.5 349.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM687 1241h-69q-96 79 -188.5 171.5t-125.5 139.5v17h142q26 -48 98.5 -142t142.5 -170v-16z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM495 1257q73 79 144.5 171.5t97.5 140.5h141v-17q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM313 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70 v16z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1208" d="M170 0zM268 1087v-704q0 -164 69 -238.5t214 -74.5q194 0 285.5 98t91.5 319v600h98v-1087h-84l-18 150h-6q-106 -170 -377 -170q-371 0 -371 397v710h98zM350 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM731 1389q0 46 15.5 66t47.5 20q64 0 64 -86 t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#xfd;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM361 1257q73 79 144.5 171.5t97.5 140.5h141v-17 q-36 -52 -122.5 -138t-190.5 -173h-70v16z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1219" d="M281 918q114 190 368 190q220 0 335.5 -144.5t115.5 -420.5q0 -268 -121.5 -415.5t-331.5 -147.5q-251 0 -366 188h-7l3 -84q4 -74 4 -162v-414h-99v2048h99v-391l-7 -247h7zM645 68q167 0 258.5 124t91.5 347q0 479 -348 479q-193 0 -279.5 -105t-86.5 -354v-18 q0 -255 85.5 -364t278.5 -109z" />
+<glyph unicode="&#xff;" horiz-adv-x="940" d="M0 0zM0 1087h102l230 -610q105 -281 133 -379h6q42 129 137 385l230 604h102l-487 -1263q-59 -154 -99 -208t-93.5 -81t-129.5 -27q-57 0 -127 21v86q58 -16 125 -16q51 0 90 24t70.5 74.5t73 160t53.5 142.5zM214 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86 q-63 0 -63 86zM595 1389q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x131;" horiz-adv-x="463" d="M281 0h-99v1087h99v-1087z" />
+<glyph unicode="&#x152;" horiz-adv-x="1839" d="M1714 0h-756q-76 -16 -176 -16q-305 0 -479 200t-174 551q0 347 174.5 545.5t480.5 198.5q78 0 183 -17h747v-94h-655v-553h616v-94h-616v-627h655v-94zM782 80q109 0 174 18v1266q-62 16 -172 16q-262 0 -403 -167.5t-141 -479.5q0 -315 140.5 -484t401.5 -169z" />
+<glyph unicode="&#x153;" horiz-adv-x="1942" d="M1438 -20q-156 0 -266.5 67.5t-165.5 198.5q-59 -128 -158 -197t-252 -69q-143 0 -252 69t-167 198t-58 298q0 266 129 414.5t354 148.5q151 0 251 -70t157 -209q110 279 399 279q192 0 303 -134t111 -364v-80h-762q2 -230 100.5 -345t276.5 -115q93 0 163.5 13t178.5 56 v-90q-92 -40 -170 -54.5t-172 -14.5zM223 545q0 -224 98.5 -349.5t278.5 -125.5q174 0 265 122.5t91 352.5q0 224 -93 348.5t-265 124.5q-180 0 -277.5 -123.5t-97.5 -349.5zM1409 1020q-155 0 -242 -104t-102 -298h653q0 189 -82 295.5t-227 106.5z" />
+<glyph unicode="&#x178;" horiz-adv-x="1081" d="M0 0zM543 662l428 800h110l-487 -897v-565h-105v557l-489 905h117zM288 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86zM669 1727q0 46 15.5 66t47.5 20q64 0 64 -86t-64 -86q-63 0 -63 86z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1182" d="M299 1257q62 67 131.5 156t110.5 156h98q68 -120 242 -312v-16h-70q-122 101 -221 207q-108 -114 -221 -207h-70v16z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M805 1456q0 -97 -60 -155t-157 -58t-157 58t-60 155q0 94 60 152.5t157 58.5t157 -59t60 -152zM451 1456q0 -66 37.5 -103.5t99.5 -37.5t99.5 37.5t37.5 103.5q0 64 -39 101.5t-98 37.5q-62 0 -99.5 -38t-37.5 -101z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1182" d="M780 1243q-36 0 -75 18.5t-101 71.5q-32 26 -62.5 46t-62.5 20q-45 0 -75 -34.5t-48 -121.5h-73q10 111 63 174.5t137 63.5q48 0 88 -25t82 -59q34 -28 66 -50t61 -22q46 0 77 36.5t48 119.5h76q-16 -116 -69 -177t-132 -61z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M92 512v82h475v-82h-475z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 512v82h860v-82h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 512v82h1884v-82h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="297" d="M41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x2019;" horiz-adv-x="297" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117z" />
+<glyph unicode="&#x201c;" horiz-adv-x="614" d="M358 961l-12 20q34 120 83 255t91 226h66q-30 -98 -63 -248.5t-48 -252.5h-117zM41 961l-12 20q32 112 81.5 251t92.5 230h65q-30 -101 -64.5 -257t-45.5 -244h-117z" />
+<glyph unicode="&#x201d;" horiz-adv-x="614" d="M256 1462l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM573 1462l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x201e;" horiz-adv-x="768" d="M68 0zM295 238l12 -20q-75 -265 -174 -481h-65q29 96 61 241.5t49 259.5h117zM612 238l13 -20q-36 -128 -85 -261t-89 -220h-66q30 98 63 248.5t48 252.5h116z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M231 748q0 89 40.5 134.5t113.5 45.5t113.5 -47t40.5 -133q0 -85 -41 -133t-113 -48t-113 47t-41 134z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1466" d="M162 0zM162 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM651 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98zM1141 78q0 98 80 98q82 0 82 -98t-82 -98q-80 0 -80 98z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="524" d="M82 543l309 393l62 -43l-254 -363l254 -362l-62 -43l-309 391v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="524" d="M442 518l-309 -393l-61 43l254 362l-254 363l61 43l309 -391v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="246" d="M573 1462l-811 -1462h-94l811 1462h94z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="688" d="M657 827h-129v-241h-90v241h-413v60l407 581h96v-563h129v-78zM438 905v221q0 132 8 232q-6 -12 -21.5 -35.5t-295.5 -417.5h309z" />
+<glyph unicode="&#x20ac;" d="M803 1397q-174 0 -288 -125.5t-155 -364.5h502v-82h-510l-4 -104v-24q0 -65 4 -87h449v-82h-443q30 -217 147.5 -338.5t301.5 -121.5q148 0 287 65v-94q-81 -34 -150.5 -46.5t-140.5 -12.5q-228 0 -367.5 140t-181.5 408h-180v82h172q-4 38 -4 113l4 102h-172v82h184 q39 272 183 425t362 153q88 0 161 -17t148 -57l-39 -86q-132 72 -270 72z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1485" d="M313 741h-86v643h-217v78h522v-78h-219v-643zM913 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l224 606h125v-721h-86v398l4 207h-7l-227 -605h-74z" />
+<glyph unicode="&#x2212;" d="M111 682v82h948v-82h-948z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1219" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff
new file mode 100644
index 0000000..e786074
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Light-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot
new file mode 100644
index 0000000..8f44592
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg
new file mode 100644
index 0000000..431d7e3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.svg
@@ -0,0 +1,1835 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sanslight_italic" horiz-adv-x="1128" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb00;" horiz-adv-x="1155" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1040" d="M0 0zM739 0h-98l231 1087h96zM915 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31 l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1042" d="M0 0zM737 0h-94l334 1556h94zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248 l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1616" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1315 0h-98l231 1087h96zM1491 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1626" d="M0 0zM-148 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h477l35 160q35 168 116.5 244t227.5 76 q73 0 166 -31l-24 -80q-87 27 -148 27q-97 0 -154.5 -54.5t-82.5 -177.5l-35 -164h248l-17 -81h-248l-252 -1190q-34 -165 -105.5 -236.5t-193.5 -71.5q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l244 1166h-477l-252 -1190q-33 -161 -104 -234.5t-195 -73.5z M1321 0h-94l334 1556h94z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="502" d="M248 377h-62l203 1085h119zM80 57q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-68 -34.5q-67 0 -67 73z" />
+<glyph unicode="&#x22;" horiz-adv-x="721" d="M455 1462l-146 -528h-61l80 528h127zM784 1462l-145 -528h-61l79 528h127z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M389 530l119 398h-297l8 80h311l134 454h90l-136 -454h365l135 454h86l-135 -454h285l-8 -80h-302l-118 -398h303l-8 -79h-320l-133 -451h-90l135 451h-360l-134 -451h-88l134 451h-283l8 79h299zM475 530h363l120 398h-362z" />
+<glyph unicode="$" d="M928 467q0 -151 -110.5 -243t-297.5 -103l-53 -240h-82l51 240q-79 2 -158 18t-137 43v94q65 -34 153.5 -53.5t160.5 -19.5l110 512q-110 53 -153 91t-66.5 87.5t-23.5 116.5q0 155 105.5 250.5t272.5 99.5l41 192h80l-41 -192q149 -5 277 -68l-35 -78q-110 61 -256 70 l-109 -514q124 -60 172.5 -99.5t73.5 -88.5t25 -115zM537 203q142 7 223.5 74.5t81.5 183.5q0 76 -48 129.5t-157 97.5zM686 1284q-134 -9 -205 -80t-71 -186q0 -78 37 -128.5t137 -96.5z" />
+<glyph unicode="%" horiz-adv-x="1556" d="M1458 1462l-1139 -1462h-106l1135 1462h110zM1520 612q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q121 0 176.5 -71.5t55.5 -211.5zM1284 821q-80 0 -146.5 -72.5t-106.5 -202.5t-40 -263q0 -116 41 -174t113 -58 q130 0 209.5 166.5t79.5 386.5q0 109 -36 163t-114 54zM760 1198q0 -175 -50 -327t-136 -230t-197 -78q-112 0 -172 75.5t-60 223.5q0 160 52 312t138 229.5t193 77.5q232 0 232 -283zM524 1407q-79 0 -145 -71.5t-107 -203t-41 -264.5q0 -115 41 -173t113 -58 q84 0 148.5 72t102.5 204t38 277q0 109 -36 163t-114 54z" />
+<glyph unicode="&#x26;" horiz-adv-x="1331" d="M748 1395q-125 0 -194 -68t-69 -192q0 -132 109 -281q203 89 279.5 163.5t76.5 182.5q0 91 -56.5 143t-145.5 52zM465 63q108 0 211.5 42.5t222.5 146.5l-352 493q-164 -79 -232 -134.5t-103.5 -124t-35.5 -158.5q0 -119 78 -192t211 -73zM78 324q0 162 99 277.5 t325 215.5l-41 67q-78 128 -78 251q0 157 101 253.5t264 96.5q145 0 227 -76.5t82 -206.5q0 -85 -41 -154t-121 -128t-256 -138l330 -463q73 75 135.5 176.5t91.5 186.5h111q-102 -247 -285 -436l184 -246h-123l-131 184q-121 -108 -242 -156t-266 -48q-167 0 -266.5 94 t-99.5 250z" />
+<glyph unicode="'" horiz-adv-x="403" d="M461 1462l-146 -528h-61l80 528h127z" />
+<glyph unicode="(" horiz-adv-x="526" d="M104 270q0 343 122 633t382 559h105q-259 -276 -384.5 -568t-125.5 -618q0 -317 127 -600h-80q-146 262 -146 594z" />
+<glyph unicode=")" horiz-adv-x="526" d="M453 868q0 -345 -123.5 -636t-380.5 -556h-105q257 274 383.5 566.5t126.5 619.5q0 148 -28.5 294t-98.5 306h80q146 -262 146 -594z" />
+<glyph unicode="*" horiz-adv-x="1137" d="M834 1540l-109 -405l438 8l-8 -107l-416 29l181 -401l-115 -37l-135 417l-285 -348l-78 78l318 318l-392 125l39 102l394 -168l47 408z" />
+<glyph unicode="+" d="M563 672h-401v100h401v404h101v-404h401v-100h-401v-400h-101v400z" />
+<glyph unicode="," horiz-adv-x="451" d="M250 238l8 -23q-34 -92 -114 -233.5t-160 -245.5h-74q79 132 141 271t88 231h111z" />
+<glyph unicode="-" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="." horiz-adv-x="485" d="M82 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="/" horiz-adv-x="641" d="M827 1462l-817 -1462h-110l815 1462h112z" />
+<glyph unicode="0" d="M1075 1016q0 -201 -41 -405t-116.5 -346t-183.5 -213.5t-242 -71.5q-176 0 -264.5 126.5t-88.5 387.5q0 186 44.5 381.5t124 334t187 207t240.5 68.5q340 0 340 -469zM723 1397q-134 0 -241.5 -113t-173.5 -329t-66 -451q0 -222 62.5 -329t197.5 -107q139 0 244 112 t166 337t61 489q0 199 -59.5 295t-190.5 96z" />
+<glyph unicode="1" d="M537 0h-105l225 1055q19 92 74 293q-42 -36 -75.5 -61t-249.5 -161l-52 78l406 258h90z" />
+<glyph unicode="2" d="M909 0h-870l22 104l449 402q198 177 284 276.5t126.5 186.5t40.5 180q0 112 -66 178t-197 66q-176 0 -333 -129l-54 73q180 146 394 146q173 0 268.5 -85t95.5 -237q0 -110 -43.5 -208.5t-141.5 -211.5t-311 -303l-383 -338v-4h736z" />
+<glyph unicode="3" d="M1049 1174q0 -162 -106 -275t-286 -143v-4q117 -24 185.5 -115.5t68.5 -226.5q0 -134 -64 -233t-179.5 -148t-274.5 -49q-96 0 -184.5 20.5t-153.5 52.5v101q172 -86 344 -86q197 0 303.5 89.5t106.5 252.5q0 145 -89 223t-247 78h-117l21 96h110q209 0 333 95.5 t124 258.5q0 114 -63.5 175t-188.5 61q-167 0 -344 -131l-49 75q84 67 188 104.5t218 37.5q161 0 252.5 -82.5t91.5 -226.5z" />
+<glyph unicode="4" d="M1071 371h-264l-80 -371h-96l80 371h-688l20 96l881 1010h118l-215 -1018h265zM729 459q79 369 119 558.5t86 354.5h-4q-66 -91 -129 -166l-651 -747h579z" />
+<glyph unicode="5" d="M582 879q188 0 292.5 -102t104.5 -279q0 -237 -148 -377.5t-407 -140.5q-84 0 -177.5 20t-158.5 51v107q170 -90 340 -90q208 0 328.5 114.5t120.5 313.5q0 140 -85 219.5t-225 79.5q-133 0 -243 -41l-66 49l193 659h624l-18 -96h-541l-149 -516q98 29 215 29z" />
+<glyph unicode="6" d="M170 428q0 283 105 544.5t269.5 385t383.5 123.5q123 0 182 -21l-18 -90q-86 23 -170 23q-233 0 -393.5 -174t-233.5 -502h8q68 94 164 143t211 49q161 0 250.5 -100.5t89.5 -282.5q0 -156 -60 -281t-171 -195t-257 -70q-171 0 -265.5 119t-94.5 329zM543 68 q112 0 196.5 58.5t130 162t45.5 229.5q0 146 -67 224.5t-195 78.5q-81 0 -154 -31.5t-129 -87t-78 -115t-22 -173.5q0 -164 72.5 -255t200.5 -91z" />
+<glyph unicode="7" d="M244 0l796 1366h-766l23 96h858l-20 -110l-779 -1352h-112z" />
+<glyph unicode="8" d="M737 1485q163 0 258 -85t95 -229q0 -138 -84 -234.5t-285 -172.5q130 -78 190 -170.5t60 -208.5t-58 -208t-165.5 -144.5t-260.5 -52.5q-178 0 -283.5 92.5t-105.5 253.5q0 159 100.5 268.5t321.5 187.5q-100 72 -144 152t-44 180q0 159 114 265t291 106zM610 733 q-218 -73 -313.5 -167.5t-95.5 -225.5q0 -136 77.5 -206.5t219.5 -70.5q168 0 270 91t102 233q0 104 -62 189t-198 157zM727 1399q-130 0 -214.5 -82t-84.5 -203q0 -91 41.5 -159t157.5 -142q192 62 279 144t87 206q0 109 -70.5 172.5t-195.5 63.5z" />
+<glyph unicode="9" d="M1059 1032q0 -288 -101.5 -548t-263.5 -382t-393 -122q-114 0 -186 22v90q87 -29 192 -29q474 0 627 674h-8q-140 -192 -367 -192q-162 0 -255 105t-93 284q0 155 59.5 281t170.5 196t257 70q174 0 267.5 -115.5t93.5 -333.5zM686 1393q-112 0 -197.5 -58.5 t-130.5 -162.5t-45 -230q0 -145 67.5 -225t192.5 -80q83 0 157.5 32.5t129 87.5t76.5 114t22 176q0 166 -71 256t-201 90z" />
+<glyph unicode=":" horiz-adv-x="485" d="M260 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74zM102 55q0 56 25.5 88.5t69.5 32.5q65 0 65 -72q0 -55 -25.5 -88.5t-66.5 -33.5q-68 0 -68 73z" />
+<glyph unicode=";" horiz-adv-x="485" d="M287 238l8 -23q-35 -96 -118.5 -242t-156.5 -237h-73q79 132 141 271t88 231h111zM266 989q0 57 25.5 89t68.5 32q66 0 66 -72q0 -55 -25 -89t-67 -34q-68 0 -68 74z" />
+<glyph unicode="&#x3c;" d="M1051 262l-914 414v74l914 471v-103l-801 -399l801 -350v-107z" />
+<glyph unicode="=" d="M168 885v100h903v-100h-903zM168 461v98h903v-98h-903z" />
+<glyph unicode="&#x3e;" d="M170 369l801 350l-801 399v103l915 -471v-74l-915 -414v107z" />
+<glyph unicode="?" horiz-adv-x="799" d="M242 362l6 29q29 132 82 206.5t157 147.5q118 84 175 145.5t86.5 127.5t29.5 141q0 108 -67.5 170t-182.5 62q-139 0 -307 -101l-39 86q85 49 171.5 78t187.5 29q159 0 250.5 -84.5t91.5 -229.5q0 -127 -66 -234t-231 -226q-85 -61 -132.5 -108.5t-73 -95t-46.5 -143.5 h-92zM170 59q0 56 25 88.5t69 32.5q66 0 66 -71q0 -54 -24.5 -88.5t-67.5 -34.5q-68 0 -68 73z" />
+<glyph unicode="@" horiz-adv-x="1724" d="M1688 858q0 -179 -56 -323.5t-154.5 -227t-211.5 -82.5q-98 0 -154.5 55t-56.5 144h-4q-54 -97 -132.5 -148t-168.5 -51q-112 0 -178 73t-66 202q0 156 63 283t178 198.5t261 71.5q122 0 252 -52l-84 -315q-39 -140 -39 -221q0 -71 34.5 -111.5t100.5 -40.5 q86 0 160 73.5t117.5 198t43.5 251.5q0 156 -65 277t-187 188t-292 67q-235 0 -424.5 -108.5t-295.5 -304t-106 -439.5q0 -288 155 -449t435 -161q207 0 420 82v-90q-210 -82 -428 -82q-203 0 -357.5 82.5t-238.5 239t-84 370.5q0 276 121.5 493.5t337 337t473.5 119.5 q189 0 330.5 -72.5t221 -213t79.5 -314.5zM1008 969q-113 0 -204.5 -59t-142.5 -165.5t-51 -238.5q0 -92 40.5 -142.5t113.5 -50.5q101 0 180.5 89t124.5 255l78 289q-66 23 -139 23z" />
+<glyph unicode="A" horiz-adv-x="1059" d="M805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449z" />
+<glyph unicode="B" horiz-adv-x="1202" d="M412 1462h379q190 0 290.5 -84t100.5 -241q0 -153 -90 -249t-254 -124v-4q125 -31 188.5 -113.5t63.5 -204.5q0 -205 -140.5 -323.5t-390.5 -118.5h-457zM377 811h278q206 0 313 81t107 238q0 119 -78 180.5t-229 61.5h-272zM358 721l-135 -631h342q201 0 309.5 87.5 t108.5 256.5q0 145 -90 216t-275 71h-260z" />
+<glyph unicode="C" horiz-adv-x="1169" d="M961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17z" />
+<glyph unicode="D" horiz-adv-x="1350" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l310 1462h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-275 -1280h209z" />
+<glyph unicode="E" horiz-adv-x="1067" d="M829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627z" />
+<glyph unicode="F" horiz-adv-x="981" d="M205 0h-103l310 1462h708l-20 -94h-604l-134 -620h570l-21 -95h-569z" />
+<glyph unicode="G" horiz-adv-x="1374" d="M856 735h406l-150 -682q-211 -73 -405 -73q-257 0 -397 146t-140 421q0 265 105 483.5t283.5 335.5t395.5 117q113 0 203 -19t184 -59l-38 -94q-110 46 -189.5 62t-167.5 16q-184 0 -339 -107.5t-244 -301.5t-89 -433q0 -229 114.5 -352t326.5 -123q155 0 309 47l117 526 h-303z" />
+<glyph unicode="H" horiz-adv-x="1366" d="M1063 0h-100l151 719h-760l-149 -719h-103l310 1462h102l-139 -649h760l137 649h100z" />
+<glyph unicode="I" horiz-adv-x="504" d="M102 0l310 1462h98l-309 -1462h-99z" />
+<glyph unicode="J" horiz-adv-x="477" d="M-180 -360q-48 0 -88 8t-56 16l11 92q57 -20 137 -20q213 0 262 241l309 1485h105l-314 -1491q-35 -170 -125 -250.5t-241 -80.5z" />
+<glyph unicode="K" horiz-adv-x="1122" d="M979 0h-111l-342 788l-190 -153l-131 -635h-103l310 1462h102l-158 -723l133 121l680 602h138l-699 -610z" />
+<glyph unicode="L" horiz-adv-x="938" d="M102 0l310 1462h102l-289 -1366h621l-23 -96h-721z" />
+<glyph unicode="M" horiz-adv-x="1669" d="M772 205l733 1257h150l-301 -1462h-101l191 901q79 369 100 447h-6l-780 -1348h-51l-222 1348h-6q-20 -154 -78 -426l-196 -922h-96l309 1462h143l205 -1257h6z" />
+<glyph unicode="N" horiz-adv-x="1372" d="M1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94z" />
+<glyph unicode="O" horiz-adv-x="1464" d="M1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300t79 430.5 q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="P" horiz-adv-x="1145" d="M1145 1102q0 -500 -610 -500h-201l-129 -602h-103l310 1462h315q202 0 310 -92.5t108 -267.5zM350 694h191q252 0 373.5 96.5t121.5 305.5q0 274 -329 274h-211z" />
+<glyph unicode="Q" horiz-adv-x="1464" d="M1403 911q0 -216 -70 -418t-186.5 -324t-274.5 -167l267 -350h-142l-231 332l-74 -4q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128 q169 0 300 98.5t210 300t79 430.5q0 240 -104.5 364t-310.5 124z" />
+<glyph unicode="R" horiz-adv-x="1145" d="M336 633l-131 -633h-103l310 1462h303q430 0 430 -360q0 -182 -103.5 -303t-281.5 -152q201 -591 221 -647h-111l-211 633h-323zM358 725h252q208 0 317 95.5t109 281.5q0 268 -329 268h-211z" />
+<glyph unicode="S" horiz-adv-x="1020" d="M895 403q0 -126 -65.5 -224.5t-179.5 -148.5t-269 -50q-88 0 -172.5 17t-171.5 58v109q163 -92 348 -92q188 0 295.5 86.5t107.5 232.5q0 61 -17 104.5t-52.5 78.5t-91 68t-131.5 75q-150 76 -209.5 164t-59.5 206t59 207.5t165 139t237 49.5q99 0 180 -17.5t168 -60.5 l-32 -94q-66 40 -151.5 63t-164.5 23q-163 0 -259.5 -82.5t-96.5 -218.5q0 -103 49 -170t182 -133q154 -79 213.5 -130t89 -113t29.5 -147z" />
+<glyph unicode="T" horiz-adv-x="985" d="M438 0h-102l289 1368h-432l20 94h973l-19 -94h-440z" />
+<glyph unicode="U" horiz-adv-x="1370" d="M1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101z" />
+<glyph unicode="V" horiz-adv-x="1079" d="M457 147q51 111 124 247l572 1068h117l-799 -1462h-88l-182 1462h100l117 -950q26 -217 35 -365h4z" />
+<glyph unicode="W" horiz-adv-x="1702" d="M1018 1341q-27 -76 -62 -153.5t-563 -1187.5h-82l-73 1462h100l47 -1031l4 -165l-2 -86h6q85 226 170 398l434 884h105l61 -878q19 -266 19 -410h6q30 86 61.5 163t493.5 1125h108q-169 -365 -330.5 -731t-328.5 -731h-78l-78 1075q-11 142 -11 219l1 47h-8z" />
+<glyph unicode="X" horiz-adv-x="971" d="M879 0h-107l-254 678l-526 -678h-127l608 766l-272 696h106l240 -626l483 626h119l-555 -719z" />
+<glyph unicode="Y" horiz-adv-x="965" d="M494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100z" />
+<glyph unicode="Z" d="M913 0h-925l22 92l1069 1276h-764l23 94h887l-19 -88l-1069 -1280h799z" />
+<glyph unicode="[" horiz-adv-x="537" d="M369 -324h-426l376 1786h429l-19 -90h-330l-340 -1605h330z" />
+<glyph unicode="\" horiz-adv-x="641" d="M295 1462l242 -1462h-82l-246 1462h86z" />
+<glyph unicode="]" horiz-adv-x="537" d="M203 1462h426l-377 -1786h-428l18 91h330l340 1605h-330z" />
+<glyph unicode="^" horiz-adv-x="1047" d="M70 569l587 906h91l260 -906h-105l-217 809l-500 -809h-116z" />
+<glyph unicode="_" horiz-adv-x="801" d="M625 -291h-807l18 86h807z" />
+<glyph unicode="`" horiz-adv-x="1135" d="M766 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="a" horiz-adv-x="1133" d="M655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82t-164 -245.5 t-64 -325.5q0 -152 50 -223.5t151 -71.5z" />
+<glyph unicode="b" horiz-adv-x="1151" d="M500 -16q-113 0 -186 59t-97 166h-6l-55 -209h-80l327 1556h95q-131 -628 -162 -751h6q93 156 199 229.5t231 73.5q281 0 281 -375q0 -203 -76 -380t-201 -273t-276 -96zM750 1018q-91 0 -180 -61.5t-160.5 -169.5t-106.5 -235t-35 -206q0 -129 64 -202.5t166 -73.5 q124 0 224 83t164 245t64 325q0 152 -49 223.5t-151 71.5z" />
+<glyph unicode="c" horiz-adv-x="887" d="M477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57z" />
+<glyph unicode="d" horiz-adv-x="1133" d="M655 1104q230 0 279 -219h4q12 66 143 671h99l-330 -1556h-82l45 274h-6q-173 -294 -424 -294q-281 0 -281 374q0 193 71.5 370t197.5 278.5t284 101.5zM406 70q89 0 178.5 62.5t160 168t106.5 231t36 209.5q0 126 -61.5 201.5t-168.5 75.5q-124 0 -224 -83t-164 -242.5 t-64 -327.5q0 -295 201 -295z" />
+<glyph unicode="e" horiz-adv-x="928" d="M469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5t-162.5 -308.5h49 q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5z" />
+<glyph unicode="f" horiz-adv-x="578" d="M-131 -492q-48 0 -102 19v90q53 -16 100 -16q88 0 134 53t75 186l246 1166h-205l14 67l205 14l35 160q35 168 116.5 244t227.5 76q73 0 166 -31l-25 -80q-87 27 -147 27q-96 0 -153.5 -53.5t-84.5 -178.5l-35 -164h248l-16 -81h-248l-252 -1190q-33 -161 -104 -234.5 t-195 -73.5z" />
+<glyph unicode="g" horiz-adv-x="1040" d="M1100 1087l-17 -79l-243 -11q26 -28 43.5 -84t17.5 -114q0 -109 -54.5 -206.5t-148 -145.5t-213.5 -48q-63 0 -77 9q-80 -33 -124 -73t-44 -81t31.5 -64.5t113.5 -31.5l121 -11q346 -31 346 -264q0 -112 -65 -197.5t-187 -131.5t-291 -46q-186 0 -291.5 72t-105.5 203 q0 236 309 334q-78 42 -78 123q0 123 191 202q-71 36 -110.5 105.5t-39.5 157.5q0 111 53.5 204t148 146t206.5 53q69 0 147 -21h361zM14 -207q0 -101 81 -150t224 -49q203 0 317 74.5t114 204.5q0 85 -62.5 130.5t-218.5 57.5l-160 15q-157 -45 -226 -114.5t-69 -168.5z M285 711q0 -112 58.5 -170t164.5 -58q88 0 154 37t102.5 114t36.5 169q0 104 -56 161.5t-157 57.5q-93 0 -161 -43t-105 -116t-37 -152z" />
+<glyph unicode="h" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -188t-103.5 -286l-102 -477h-98l332 1556h96l-86 -411q-44 -200 -66 -279h6q78 113 186.5 175.5t229.5 62.5q124 0 192 -65t68 -183q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="i" horiz-adv-x="475" d="M174 0h-98l231 1087h96zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="j" horiz-adv-x="475" d="M-166 -492q-62 0 -113 19v92q47 -22 113 -22q82 0 128.5 51.5t72.5 177.5l266 1261h96l-268 -1271q-35 -165 -106.5 -236.5t-188.5 -71.5zM350 1366q0 55 22 88t60 33q57 0 57 -72q0 -57 -22 -90t-57 -33q-29 0 -44.5 19.5t-15.5 54.5z" />
+<glyph unicode="k" horiz-adv-x="944" d="M270 477l609 610h125l-474 -469l297 -618h-106l-264 559l-205 -188l-80 -371h-96l330 1556h96l-166 -780l-70 -299h4z" />
+<glyph unicode="l" horiz-adv-x="475" d="M170 0h-94l334 1556h94z" />
+<glyph unicode="m" horiz-adv-x="1751" d="M711 0l147 674q25 125 25 162q0 182 -154 182q-106 0 -200 -67.5t-159 -188.5t-100 -287l-100 -475h-98l231 1087h80l-33 -210h6q80 113 181.5 170t212.5 57q106 0 163 -67t60 -195h6q77 129 181 195.5t222 66.5q117 0 182.5 -61.5t65.5 -176.5q0 -29 -2.5 -56.5 t-19.5 -119.5l-152 -690h-100l149 680q25 120 25 176q0 77 -43 119.5t-119 42.5q-157 0 -277.5 -137.5t-168.5 -362.5l-109 -518h-102z" />
+<glyph unicode="n" horiz-adv-x="1143" d="M764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98z" />
+<glyph unicode="o" horiz-adv-x="1124" d="M649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83z" />
+<glyph unicode="p" horiz-adv-x="1149" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l336 1579h82l-45 -274h6q91 153 195.5 224t228.5 71q135 0 208 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-87 0 -174 -58.5t-161.5 -167.5t-110.5 -237.5t-36 -208.5q0 -125 61.5 -200.5 t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="q" horiz-adv-x="1157" d="M651 1104q109 0 183.5 -58t99.5 -167h6l55 208h80l-327 -1556h-95l98 470l64 282h-6q-93 -156 -199 -229.5t-231 -73.5q-281 0 -281 374q0 201 75.5 379t200.5 274.5t277 96.5zM401 70q92 0 182 62.5t160.5 171.5t105 236.5t34.5 200.5q0 130 -63.5 203.5t-166.5 73.5 q-124 0 -224 -83t-164 -245t-64 -325q0 -143 45.5 -219t154.5 -76z" />
+<glyph unicode="r" horiz-adv-x="752" d="M713 1106q69 0 123 -14l-21 -93q-47 15 -113 15q-94 0 -179 -64t-153 -192t-100 -277l-100 -481h-98l231 1087h80l-29 -204h6q73 94 123 135.5t106.5 64.5t123.5 23z" />
+<glyph unicode="s" horiz-adv-x="827" d="M713 295q0 -144 -103 -229.5t-280 -85.5q-173 0 -305 75v107q74 -46 153 -71t148 -25q138 0 211 57.5t73 163.5q0 42 -15.5 74t-50 61.5t-132.5 85.5q-148 80 -200 145.5t-52 159.5q0 128 98.5 209.5t259.5 81.5q75 0 158.5 -17.5t140.5 -46.5l-35 -88q-136 64 -264 64 q-116 0 -186 -53t-70 -138q0 -55 17 -88t60.5 -68.5t119.5 -76.5q114 -63 161.5 -103.5t70 -86.5t22.5 -107z" />
+<glyph unicode="t" horiz-adv-x="616" d="M694 1087l-18 -81h-283l-135 -635q-22 -99 -22 -164q0 -139 126 -139q68 0 152 26v-86q-101 -28 -170 -28q-99 0 -153 54.5t-54 158.5q0 73 29 206l129 607h-182l14 67l184 17l97 253h55l-55 -256h286z" />
+<glyph unicode="u" horiz-adv-x="1143" d="M381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100z" />
+<glyph unicode="v" horiz-adv-x="895" d="M276 0l-172 1087h101l108 -735q26 -165 33 -254h6q51 115 129 256l406 733h102l-600 -1087h-113z" />
+<glyph unicode="w" horiz-adv-x="1393" d="M838 0l-60 686q-14 224 -14 266h-6q-34 -92 -144 -290l-356 -662h-117l-20 1087h92l13 -821l-3 -157h6q61 134 150 297l373 681h77l64 -681q14 -147 14 -297h6l24 61l101 236l320 681h96l-508 -1087h-108z" />
+<glyph unicode="x" horiz-adv-x="922" d="M442 483l-393 -483h-121l471 559l-245 528h100l207 -462l373 462h120l-448 -534l258 -553h-98z" />
+<glyph unicode="y" horiz-adv-x="920" d="M123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184z" />
+<glyph unicode="z" horiz-adv-x="887" d="M700 0h-729l15 72l776 932h-543l17 83h659l-18 -83l-762 -920h602z" />
+<glyph unicode="{" horiz-adv-x="709" d="M424 -324q-256 0 -256 199q0 45 16 115l56 252q18 90 18 127q0 159 -199 159l21 78q126 0 191 49t89 158l89 393q30 135 106 195.5t215 60.5h29l-17 -86q-86 -2 -129 -20.5t-69.5 -61.5t-44.5 -120l-74 -338q-30 -134 -91.5 -194.5t-164.5 -78.5v-4q68 -18 105.5 -68.5 t37.5 -121.5q0 -52 -24 -164l-47 -225q-13 -58 -13 -101q0 -61 37.5 -89t138.5 -28v-86h-20z" />
+<glyph unicode="|" d="M584 1561h100v-2071h-100v2071z" />
+<glyph unicode="}" horiz-adv-x="709" d="M332 1462q131 0 189.5 -51t58.5 -147q0 -41 -17 -115l-55 -252q-19 -95 -19 -127q0 -77 49.5 -118.5t149.5 -41.5l-20 -78q-125 0 -191 -48.5t-90 -157.5l-88 -394q-32 -139 -108.5 -197.5t-213.5 -58.5h-18v86q96 2 138 21t68.5 61t43.5 121l74 338q27 126 87.5 189.5 t168.5 82.5v5q-75 20 -109.5 72.5t-34.5 117.5q0 55 18 131l54 258q12 61 12 101q0 44 -18 69t-54 36t-116 11l20 86h21z" />
+<glyph unicode="~" d="M350 745q-49 0 -108 -30.5t-115 -89.5v94q108 110 233 110q61 0 115 -13.5t156 -57.5q126 -58 219 -58q54 0 107.5 29t117.5 96v-96q-111 -113 -233 -113q-117 0 -271 72q-62 29 -112.5 43t-108.5 14z" />
+<glyph unicode="&#xa1;" horiz-adv-x="502" d="M264 711h62l-203 -1086h-119zM432 1030q0 -56 -25 -88.5t-69 -32.5q-66 0 -66 72q0 55 25 89t68 34q67 0 67 -74z" />
+<glyph unicode="&#xa2;" d="M578 -20h-93l45 215q-132 25 -206 132.5t-74 272.5q0 184 63.5 341t178 253t256.5 111l36 178h90l-38 -176q116 -4 217 -43l-29 -90q-107 47 -217 47q-130 0 -233 -76t-162.5 -221t-59.5 -322q0 -164 74.5 -247t208.5 -83q127 0 264 60v-92q-118 -58 -281 -58z" />
+<glyph unicode="&#xa3;" d="M879 1479q170 0 313 -78l-39 -84l-54 26q-108 50 -231 50q-134 0 -220.5 -74.5t-117.5 -220.5l-73 -340h409l-18 -82h-408l-57 -268q-50 -225 -188 -314h759l-20 -94h-938l16 84q93 11 165.5 95.5t107.5 236.5l57 260h-199l17 82h198l76 350q41 187 155 279t290 92z" />
+<glyph unicode="&#xa4;" d="M262 723q0 118 74 225l-129 129l63 64l127 -129q105 78 230 78q118 0 223 -78l131 129l61 -62l-129 -129q78 -106 78 -227q0 -135 -78 -227l129 -127l-61 -62l-131 127q-104 -76 -223 -76q-126 0 -228 80l-129 -129l-61 62l127 127q-74 98 -74 225zM350 723 q0 -116 80 -196.5t197 -80.5t198.5 81t81.5 196q0 75 -36.5 140t-102.5 104t-141 39q-114 0 -195.5 -82t-81.5 -201z" />
+<glyph unicode="&#xa5;" d="M584 645l544 817h117l-559 -823h266l-16 -76h-315l-39 -190h317l-18 -84h-316l-59 -289h-105l64 289h-299l18 84h299l41 190h-301l17 76h258l-215 823h100z" />
+<glyph unicode="&#xa6;" d="M578 1561h100v-756h-100v756zM578 246h100v-756h-100v756z" />
+<glyph unicode="&#xa7;" horiz-adv-x="995" d="M211 778q0 101 69.5 182t198.5 130q-64 31 -103.5 85.5t-39.5 120.5q0 74 46 134.5t132.5 94.5t202.5 34q163 0 289 -58l-31 -80q-138 54 -264 54q-124 0 -202.5 -46.5t-78.5 -123.5q0 -59 46 -104.5t183 -106.5q112 -52 158.5 -89.5t71 -85t24.5 -110.5 q0 -197 -249 -317q122 -64 122 -197q0 -86 -48 -153.5t-139.5 -105.5t-221.5 -38q-157 0 -275 53v99q47 -27 126 -46.5t153 -19.5q149 0 228 52.5t79 150.5q0 62 -42.5 106t-166.5 96q-155 65 -211.5 130t-56.5 159zM559 1038q-119 -30 -187.5 -97.5t-68.5 -154.5 q0 -57 24.5 -96.5t81 -73t187.5 -81.5q103 49 162 113.5t59 156.5q0 72 -57.5 126t-200.5 107z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1135" d="M836 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM492 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M944 1092q-142 0 -222.5 -94.5t-80.5 -264.5q0 -186 74.5 -275t220.5 -89q85 0 199 43v-88q-104 -45 -209 -45q-187 0 -288 116t-101 330q0 207 110 332t297 125q119 0 227 -52l-36 -83q-99 45 -191 45zM147 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM240 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaa;" horiz-adv-x="643" d="M487 1485q55 0 97.5 -29t66.5 -86h6l35 103h66l-137 -650h-72l22 125h-4q-96 -137 -223 -137q-80 0 -127 56.5t-47 164.5q0 189 90.5 321t226.5 132zM369 885q66 0 133.5 75.5t97.5 184.5q16 51 16 123q0 58 -36 100.5t-93 42.5q-94 0 -161.5 -111.5t-67.5 -271.5 q0 -143 111 -143z" />
+<glyph unicode="&#xab;" horiz-adv-x="860" d="M426 932l57 -49l-317 -336l213 -385l-64 -39l-254 418l2 26zM786 932l58 -49l-314 -336l209 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#xac;" d="M1028 772v-500h-100v400h-803v100h903z" />
+<glyph unicode="&#xad;" horiz-adv-x="629" d="M77 502zM77 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M758 731h112q93 0 144 46.5t51 135.5q0 172 -197 172h-110v-354zM1169 918q0 -80 -39.5 -141t-109.5 -93l237 -393h-120l-211 360h-168v-360h-101v880h211q143 0 222 -62t79 -191zM150 731q0 207 103.5 382t276.5 272.5t371 97.5q200 0 375 -100t276 -275t101 -377 q0 -197 -97 -370t-272 -277t-383 -104q-204 0 -376.5 100.5t-273.5 273t-101 377.5zM242 731q0 -178 88.5 -329.5t240.5 -240.5t330 -89q174 0 325 85.5t243 239t92 334.5q0 178 -89 330t-240.5 241t-330.5 89q-182 0 -335 -92t-238.5 -243t-85.5 -325z" />
+<glyph unicode="&#xaf;" horiz-adv-x="655" d="M1001 1556h-653l53 97h654z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M242 1190q0 120 85 206.5t208 86.5q122 0 207 -86.5t85 -206.5q0 -122 -85.5 -207.5t-206.5 -85.5q-122 0 -207.5 85.5t-85.5 207.5zM315 1190q0 -89 64.5 -153t155.5 -64q92 0 155.5 64t63.5 153q0 90 -64 155.5t-155 65.5q-90 0 -155 -65.5t-65 -155.5z" />
+<glyph unicode="&#xb1;" d="M528 629h-401v98h401v406h101v-406h401v-98h-401v-400h-101v400zM127 0v100h903v-100h-903z" />
+<glyph unicode="&#xb2;" horiz-adv-x="643" d="M604 586h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416z" />
+<glyph unicode="&#xb3;" horiz-adv-x="643" d="M705 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5 q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1135" d="M580 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1171" d="M238 242q0 -82 48.5 -127t135.5 -45q110 0 207 64.5t162.5 182.5t101.5 285l104 485h99l-234 -1087h-78l29 205h-6q-164 -221 -404 -221q-85 0 -139 32.5t-76 89.5h-6q-18 -132 -51 -284l-63 -314h-97l338 1579h101l-152 -698q-20 -96 -20 -147z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1208 -260h-100v1722h-227v-1722h-101v819q-64 -18 -145 -18q-216 0 -318 125t-102 376q0 260 109 387t342 127h542v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="485" d="M207 625zM207 698q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#xb8;" horiz-adv-x="420" d="M197 -289q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xb9;" horiz-adv-x="643" d="M512 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xba;" horiz-adv-x="655" d="M518 1479q105 0 165 -64t60 -180q0 -115 -40 -214t-114 -156.5t-175 -57.5q-114 0 -169 67.5t-55 184.5q0 112 41.5 209.5t116 154t170.5 56.5zM508 1405q-70 0 -124 -46.5t-84 -124.5t-30 -167q0 -186 156 -186q73 0 125.5 46.5t81.5 127.5t29 176q0 83 -39 128.5 t-115 45.5z" />
+<glyph unicode="&#xbb;" horiz-adv-x="860" d="M451 123l-58 49l314 336l-209 385l63 39l254 -418l-2 -27zM90 123l-57 49l313 336l-209 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1481" d="M129 0zM1319 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1121 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM1323 1462l-1087 -1462h-107l1086 1462h108zM509 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5t14 60t15.5 59 t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1458" d="M53 0zM1278 1h-522l16 80l297 258q137 118 182.5 190.5t45.5 153.5q0 59 -38.5 97t-105.5 38q-95 0 -194 -76l-41 62q108 90 239 90q73 0 125 -27t78.5 -72t26.5 -100q0 -106 -59 -198.5t-183 -194.5l-266 -223h416zM431 1462h80l-186 -876h-84l118 569q5 21 11.5 50.5 t14 60t15.5 59t15 49.5q-34 -31 -60 -51.5t-143 -93.5l-39 59zM1247 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1458" d="M71 0zM1380 230h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM1182 302q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291zM667 1276q0 -85 -48.5 -148t-154.5 -88v-4q66 -16 105.5 -68t39.5 -124q0 -77 -39 -141t-109 -99t-161 -35 q-59 0 -123.5 15.5t-105.5 40.5v90q46 -28 108 -48t125 -20q99 0 159 52.5t60 142.5q0 162 -196 162h-84l16 79h86q102 0 168.5 49.5t66.5 129.5q0 68 -37.5 102.5t-105.5 34.5q-100 0 -199 -68l-40 64q109 86 251 86q100 0 159 -56.5t59 -148.5zM1407 1462l-1087 -1462 h-107l1086 1462h108z" />
+<glyph unicode="&#xbf;" horiz-adv-x="799" d="M641 717l-6 -29q-28 -127 -79 -200t-161 -154q-118 -84 -175 -145.5t-86.5 -127.5t-29.5 -141q0 -106 65.5 -168.5t184.5 -62.5q141 0 308 100l38 -86q-85 -49 -170.5 -77.5t-187.5 -28.5q-159 0 -250.5 84.5t-91.5 228.5q0 133 70 240.5t227 220.5q85 61 133.5 109 t73 95t45.5 142h92zM713 1020q0 -56 -25.5 -88.5t-69.5 -32.5q-65 0 -65 72q0 56 25 89.5t67 33.5q68 0 68 -74z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM815 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM668 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM1007 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5 t92.5 -146.5v-29z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM911 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5 q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM879 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM535 1704q0 49 20.5 78t56.5 29q54 0 54 -64 q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1059" d="M0 0zM805 520h-512l-287 -520h-117l822 1468h67l201 -1468h-105zM793 612l-39 291q-31 242 -39 402q-30 -63 -64.5 -130t-306.5 -563h449zM945 1600q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM867 1598 q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1640" d="M1403 0h-727l110 522h-444l-328 -522h-131l946 1462h883l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM408 627h401l156 741h-88z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1169" d="M170 0zM961 1389q-197 0 -351.5 -104.5t-245 -304.5t-90.5 -441q0 -225 110.5 -346t317.5 -121q140 0 304 51v-94q-156 -49 -316 -49q-252 0 -386 145t-134 410q0 266 104.5 488t284.5 341t402 119q177 0 307 -68l-45 -90q-55 30 -124.5 47t-137.5 17zM752 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM891 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM654 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xca;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM1036 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1067" d="M102 0zM829 0h-727l310 1462h727l-21 -94h-624l-117 -553h590l-21 -94h-588l-135 -627h627zM902 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM558 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xcc;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM525 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM419 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xce;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM738 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xcf;" horiz-adv-x="504" d="M102 0zM102 0l310 1462h98l-309 -1462h-99zM604 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM260 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1352" d="M1288 879q0 -253 -109.5 -461.5t-300.5 -313t-446 -104.5h-330l144 676h-156l21 96h155l146 690h305q282 0 426.5 -147.5t144.5 -435.5zM430 90q226 0 394.5 94.5t261 275.5t92.5 412q0 498 -476 498h-206l-129 -598h378l-20 -96h-379l-125 -586h209z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1372" d="M102 0zM1069 0h-86l-516 1284h-8q-23 -149 -48 -273t-214 -1011h-95l310 1462h80l522 -1294h8q23 176 74 416l188 878h94zM1062 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14 t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM989 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM844 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1171 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1077 1587q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z " />
+<glyph unicode="&#xd6;" horiz-adv-x="1464" d="M172 0zM1403 911q0 -255 -94 -481.5t-252 -338t-365 -111.5q-250 0 -385 149t-135 430q0 262 93 477.5t255 331t373 115.5q247 0 378.5 -148.5t131.5 -423.5zM879 1389q-174 0 -308.5 -101t-214.5 -298t-80 -417q0 -245 109.5 -373t319.5 -128q169 0 300 98.5t210 300 t79 430.5q0 240 -104.5 364t-310.5 124zM1031 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM687 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xd7;" d="M551 723l-330 332l70 69l330 -329l333 329l68 -67l-332 -334l332 -332l-68 -67l-333 329l-330 -327l-68 67z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1464" d="M1403 911q0 -187 -52 -365.5t-144.5 -304.5t-223 -193.5t-291.5 -67.5q-215 0 -348 112l-139 -170l-66 64l146 172q-113 149 -113 401q0 263 94 479.5t256.5 330.5t370.5 114q219 0 352 -121l133 168l70 -53l-145 -183q45 -51 72.5 -161t27.5 -222zM879 1389 q-134 0 -244 -59.5t-188.5 -170t-124.5 -267.5t-46 -319q0 -105 21.5 -191t56.5 -138l826 1032q-107 113 -301 113zM1294 901q0 85 -17.5 172t-43.5 129l-821 -1030q107 -100 293 -100q170 0 301 100t209.5 296.5t78.5 432.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM946 1579h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303 v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM838 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5 t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1148 1579h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54 v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1370" d="M176 0zM1395 1462l-207 -977q-58 -270 -197 -387.5t-375 -117.5q-440 0 -440 401q0 83 27 201l186 880h103l-193 -899q-20 -89 -20 -184q0 -309 342 -309q195 0 307.5 96.5t158.5 318.5l207 977h101zM1022 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29 q-55 0 -55 63zM678 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xdd;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM563 1600q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xde;" horiz-adv-x="1145" d="M1087 836q0 -247 -153 -373.5t-457 -126.5h-201l-71 -336h-103l310 1462h102l-57 -266h213q200 0 308.5 -92.5t108.5 -267.5zM293 428h190q256 0 376 98.5t120 302.5q0 275 -330 275h-211z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1094" d="M-162 -492q-73 0 -119 23v90q53 -24 115 -24q79 0 123 50.5t66 153.5l305 1409q80 357 405 357q137 0 215 -61.5t78 -174.5q0 -75 -44.5 -140.5t-166.5 -148.5q-107 -76 -141.5 -124.5t-34.5 -106.5q0 -51 34 -88.5t93 -75.5q96 -63 138 -133.5t42 -165.5 q0 -170 -106.5 -269t-286.5 -99q-143 0 -234 65v109q45 -36 112.5 -59t129.5 -23q132 0 208.5 71t76.5 195q0 75 -31.5 129t-109.5 108q-82 58 -119 110.5t-37 121.5q0 57 21 103t60.5 88.5t137.5 113.5q101 70 131.5 116t30.5 101q0 70 -55 110t-150 40q-129 0 -205 -76 t-108 -229l-291 -1377q-33 -152 -103.5 -220.5t-179.5 -68.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM809 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM586 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM955 1243h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM858 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173 t-124.5 -55z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM835 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM491 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1133" d="M102 0zM655 1104q232 0 279 -219h6l59 202h80l-229 -1087h-82l45 274h-6q-84 -142 -187 -218t-237 -76q-281 0 -281 374q0 197 75 376t200.5 276.5t277.5 97.5zM406 70q89 0 177.5 62t159 166t107.5 230t37 213q0 79 -26 141.5t-77 99t-127 36.5q-124 0 -224 -82 t-164 -245.5t-64 -325.5q0 -152 50 -223.5t151 -71.5zM927 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM849 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36 t34.5 93z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1602" d="M1155 -20q-123 0 -211 60t-117 165l-39 -205h-77l41 254h-9q-94 -142 -189 -208t-208 -66q-120 0 -182 94t-62 270q0 206 70.5 384.5t192.5 277t274 98.5q106 0 166 -56.5t74 -156.5h10l59 192h66l-35 -186q139 207 350 207q112 0 175 -61.5t63 -172.5 q0 -179 -158.5 -271.5t-470.5 -92.5h-39q-8 -51 -8 -96q0 -161 69.5 -250.5t217.5 -89.5q69 0 133.5 21t130.5 52v-94q-80 -37 -147 -53t-140 -16zM369 70q67 0 138.5 42t134 117.5t106 170.5t63.5 199t20 165q0 118 -49 186t-141 68q-123 0 -223 -86t-156.5 -240 t-56.5 -340q0 -150 42.5 -216t121.5 -66zM1317 1018q-119 0 -232 -115.5t-172 -308.5h48q263 0 383 67t120 203q0 71 -38.5 112.5t-108.5 41.5z" />
+<glyph unicode="&#xe7;" horiz-adv-x="887" d="M102 0zM477 -20q-174 0 -274.5 110.5t-100.5 306.5q0 193 73.5 361.5t198.5 257t290 88.5q134 0 241 -43l-28 -90q-107 47 -218 47q-129 0 -232.5 -77t-162.5 -222t-59 -320q0 -158 73.5 -243.5t208.5 -85.5q71 0 131.5 13t131.5 46v-92q-116 -57 -273 -57zM574 -289 q0 -94 -75.5 -148.5t-217.5 -54.5q-46 0 -78 7v79q30 -6 72 -6q198 0 198 115q0 97 -151 107l110 190h80l-78 -137q140 -30 140 -152z" />
+<glyph unicode="&#xe8;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM751 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM532 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xea;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM904 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xeb;" horiz-adv-x="928" d="M102 0zM469 -20q-173 0 -270 109.5t-97 305.5q0 181 71 347t195.5 264t274.5 98q114 0 182 -61t68 -166q0 -181 -163.5 -276t-485.5 -95h-33q-6 -44 -6 -98q0 -165 74 -251.5t213 -86.5q132 0 276 73v-94q-140 -69 -299 -69zM631 1018q-131 0 -243.5 -115.5 t-162.5 -308.5h49q517 0 517 270q0 67 -43.5 110.5t-116.5 43.5zM780 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM436 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xec;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM454 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM284 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xee;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM642 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xef;" horiz-adv-x="475" d="M76 0zM174 0h-98l231 1087h96zM515 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM171 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1124" d="M713 1364q-54 60 -158 139l59 68q32 -26 81 -66t100 -94l266 150l39 -74l-256 -141q87 -116 131.5 -276t44.5 -335q0 -355 -141.5 -555t-399.5 -200q-177 0 -277 106.5t-100 294.5q0 170 63 301.5t178.5 203.5t262.5 72q107 0 188 -49.5t121 -142.5h5q0 139 -43 289 t-115 243l-295 -163l-39 73zM489 70q118 0 208.5 61t144 186.5t53.5 270.5q0 77 -35 142t-100 101.5t-156 36.5q-124 0 -213.5 -61.5t-137.5 -169.5t-48 -248q0 -153 73.5 -236t210.5 -83z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1143" d="M76 0zM764 0l149 692q21 92 21 156q0 80 -43.5 125t-134.5 45q-112 0 -210.5 -67t-166 -187.5t-103.5 -286.5l-102 -477h-98l231 1087h82l-37 -221h6q164 238 416 238q130 0 195 -64t65 -184q0 -70 -24 -182l-148 -674h-98zM874 1249q-40 0 -77.5 19t-75.5 45 q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM744 1241h-66q-50 52 -114 144.5t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM573 1262q66 51 150.5 142t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM941 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM839 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1124" d="M98 0zM649 1108q180 0 278.5 -108.5t98.5 -299.5q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5 q0 154 -73 237t-210 83zM812 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM468 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xf7;" d="M168 672v100h903v-100h-903zM522 373q0 106 96 106q48 0 73.5 -27.5t25.5 -78.5q0 -57 -29 -82t-70 -25q-96 0 -96 107zM522 1071q0 107 96 107q46 0 72.5 -27.5t26.5 -79.5q0 -57 -29 -81.5t-70 -24.5q-96 0 -96 106z" />
+<glyph unicode="&#xf8;" horiz-adv-x="1124" d="M164 127q-66 106 -66 276q0 191 73 358t197 257t281 90q150 0 250 -82l109 133l65 -53l-117 -143q70 -105 70 -263q0 -197 -71.5 -368.5t-195.5 -261.5t-286 -90q-163 0 -254 83l-110 -135l-64 54zM924 702q0 101 -35 179l-608 -742q67 -73 202 -73q127 0 225.5 77.5 t157 228t58.5 330.5zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -125 32 -197l605 739q-74 72 -197 72z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM774 1241h-66q-50 52 -114 144.5 t-99 162.5v21h115q46 -129 164 -303v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM627 1262q66 51 150.5 142 t129.5 165h137v-23q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM957 1241h-49q-70 60 -161 207 q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1143" d="M109 0zM381 1087l-152 -698q-22 -106 -22 -158q0 -74 47.5 -117.5t138.5 -43.5q110 0 207.5 65.5t164 187t99.5 279.5l105 485h98l-231 -1087h-80l28 205h-6q-167 -221 -403 -221q-131 0 -198.5 62t-67.5 181q0 60 22 170l150 690h100zM827 1366q0 49 20.5 78t56.5 29 q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM483 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#xfd;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM505 1262q66 51 150.5 142t129.5 165h137v-23 q-51 -66 -157.5 -158.5t-192.5 -146.5h-67v21z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1163" d="M498 -16q-230 0 -279 219h-4q-13 -72 -149 -695h-99l434 2048h99q-114 -535 -164 -751h6q93 156 199 229.5t231 73.5q133 0 206 -92.5t73 -282.5q0 -195 -72 -371t-197.5 -277t-283.5 -101zM748 1018q-86 0 -172.5 -57.5t-162.5 -169.5t-111.5 -238t-35.5 -207 q0 -125 61.5 -200.5t168.5 -75.5q124 0 225 84t164 243.5t63 325.5q0 295 -200 295z" />
+<glyph unicode="&#xff;" horiz-adv-x="920" d="M0 0zM123 1087h100l82 -548q51 -351 55 -449h11q43 105 186 367l348 630h103l-713 -1290q-72 -127 -122.5 -178t-114 -81t-146.5 -30q-68 0 -129 21v92q71 -27 137 -27q80 0 147 49.5t130 164.5t100 184zM698 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77 t-55 -29q-55 0 -55 63zM354 1366q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x131;" horiz-adv-x="475" d="M174 0h-98l231 1087h96z" />
+<glyph unicode="&#x152;" horiz-adv-x="1767" d="M1530 0h-666q-25 -6 -77.5 -13t-94.5 -7q-251 0 -385.5 149.5t-134.5 429.5q0 263 96 482t262 330.5t381 111.5q130 0 240 -21h688l-20 -94h-625l-117 -553h590l-20 -94h-588l-135 -627h626zM705 72q68 0 116 12l271 1290q-110 15 -189 15q-182 0 -321.5 -98.5 t-222.5 -293.5t-83 -424q0 -245 109 -373t320 -128z" />
+<glyph unicode="&#x153;" horiz-adv-x="1720" d="M1262 -20q-135 0 -228 69t-125 201q-65 -127 -179 -198.5t-257 -71.5q-184 0 -279.5 109.5t-95.5 313.5q0 191 73 358t197 257t281 90q141 0 237 -74.5t126 -212.5q70 132 182.5 207.5t241.5 75.5q114 0 182 -61t68 -166q0 -181 -163.5 -276t-486.5 -95h-32 q-7 -38 -7 -98q0 -165 74 -251.5t213 -86.5q133 0 277 73v-94q-140 -69 -299 -69zM641 1022q-124 0 -223 -78.5t-158 -225t-59 -310.5q0 -342 282 -342q127 0 225.5 77.5t157 228t58.5 330.5q0 154 -73 237t-210 83zM1423 1018q-131 0 -243 -115t-162 -309h49q516 0 516 270 q0 70 -44.5 112t-115.5 42z" />
+<glyph unicode="&#x178;" horiz-adv-x="965" d="M193 0zM494 645l544 817h117l-631 -932l-108 -530h-105l119 545l-237 917h100zM798 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63zM454 1704q0 49 20.5 78t56.5 29q54 0 54 -64q0 -48 -21 -77t-55 -29q-55 0 -55 63z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1135" d="M958 1241h-49q-70 60 -161 207q-55 -57 -125 -114.5t-125 -92.5h-54v29q68 56 157.5 148.5t127.5 150.5h64q23 -64 72.5 -152.5t92.5 -146.5v-29z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M967 1448q0 -92 -57.5 -148.5t-145.5 -56.5q-93 0 -148 52t-55 145q0 88 59.5 144t149.5 56q88 0 142.5 -50t54.5 -142zM889 1446q0 57 -33.5 90t-87.5 33q-60 0 -93.5 -36t-33.5 -93t33 -90t90 -33q56 0 90.5 36t34.5 93z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1135" d="M831 1249q-40 0 -77.5 19t-75.5 45q-34 23 -64.5 41t-68.5 18q-45 0 -74 -28.5t-51 -100.5h-74q19 108 71 166.5t134 58.5q41 0 73.5 -14t117.5 -72q52 -36 94 -36q43 0 71.5 30.5t46.5 100.5h76q-26 -118 -74.5 -173t-124.5 -55z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2011;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2012;" horiz-adv-x="629" d="M82 502l18 90h457l-16 -90h-459z" />
+<glyph unicode="&#x2013;" horiz-adv-x="983" d="M66 502l18 90h807l-17 -90h-808z" />
+<glyph unicode="&#x2014;" horiz-adv-x="1966" d="M68 502l18 90h1788l-16 -90h-1790z" />
+<glyph unicode="&#x2018;" horiz-adv-x="299" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x2019;" horiz-adv-x="299" d="M475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201a;" horiz-adv-x="451" d="M246 238l4 -23q-40 -97 -115.5 -230t-161.5 -249h-73q68 110 131.5 248t101.5 254h113z" />
+<glyph unicode="&#x201c;" horiz-adv-x="631" d="M133 961l-4 22q41 100 116 231t161 248h73q-66 -106 -129.5 -242.5t-103.5 -258.5h-113zM467 961l-4 22q43 104 120 238.5t156 240.5h74q-66 -106 -129.5 -242.5t-103.5 -258.5h-113z" />
+<glyph unicode="&#x201d;" horiz-adv-x="631" d="M809 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113zM475 1462l4 -22q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 106 129.5 242.5t103.5 258.5h113z" />
+<glyph unicode="&#x201e;" horiz-adv-x="776" d="M561 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q66 108 129 242.5t105 259.5h112zM227 238l4 -23q-43 -105 -117.5 -235.5t-158.5 -243.5h-74q73 119 135.5 254.5t98.5 247.5h112z" />
+<glyph unicode="&#x2022;" horiz-adv-x="793" d="M248 682q0 137 63 213t172 76q76 0 116 -39.5t40 -118.5q0 -125 -66 -207t-176 -82q-149 0 -149 158z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1489" d="M69 0zM69 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM569 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73zM1071 55q0 56 25 88.5t69 32.5q66 0 66 -72q0 -53 -25 -87.5t-67 -34.5q-68 0 -68 73z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="537" d="M451 932l57 -49l-318 -336l213 -385l-63 -39l-254 418l2 26z" />
+<glyph unicode="&#x203a;" horiz-adv-x="537" d="M94 123l-57 49l317 336l-213 385l64 39l254 -418l-2 -27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="274" d="M731 1462l-1087 -1462h-107l1086 1462h108z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="643" d="M657 815h-131l-49 -229h-82l49 229h-391l21 76l506 577h86l-125 -581h133zM459 887q61 294 79 365.5t29 105.5q-10 -16 -61 -79t-338 -392h291z" />
+<glyph unicode="&#x20ac;" d="M991 1389q-186 0 -330.5 -120.5t-226.5 -346.5h457l-21 -82h-460q-30 -98 -39 -217h442l-20 -82h-424q0 -243 89 -356t265 -113q115 0 252 57v-94q-129 -55 -270 -55q-209 0 -325 139.5t-116 394.5v27h-184l16 82h172q5 101 35 217h-170l19 82h174q95 273 270 417 t399 144q166 0 287 -90l-53 -82q-102 78 -238 78z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1534" d="M477 741h-86v643h-217v78h522v-78h-219v-643zM1077 741l-221 609h-6l4 -201v-408h-82v721h125l221 -606l223 606h125v-721h-86v398l4 207h-6l-227 -605h-74z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1085" d="M0 1085h1085v-1085h-1085v1085z" />
+<glyph horiz-adv-x="1133" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+<hkern g1="uniFB00" u2="&#x201d;" k="-123" />
+<hkern g1="uniFB00" u2="&#x2019;" k="-123" />
+<hkern g1="uniFB00" u2="&#x27;" k="-123" />
+<hkern g1="uniFB00" u2="&#x22;" k="-123" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff
new file mode 100644
index 0000000..43e8b9e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-LightItalic-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot
new file mode 100644
index 0000000..6bbc3cf
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.eot
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg
new file mode 100644
index 0000000..25a3952
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.svg
@@ -0,0 +1,1831 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="open_sansregular" horiz-adv-x="1171" >
+<font-face units-per-em="2048" ascent="1638" descent="-410" />
+<missing-glyph horiz-adv-x="532" />
+<glyph unicode="&#xfb01;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1096h166v-1096zM856 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5 q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb02;" horiz-adv-x="1212" d="M29 0zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1036 0h-166v1556h166v-1556z" />
+<glyph unicode="&#xfb03;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1096h166v-1096zM1551 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="&#xfb04;" horiz-adv-x="1909" d="M29 0zM1358 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31 q-94 0 -139 -62.5t-45 -200.5v-71h279v-129zM1731 0h-166v1556h166v-1556z" />
+<glyph horiz-adv-x="2048" />
+<glyph horiz-adv-x="2048" />
+<glyph unicode="&#xd;" horiz-adv-x="1044" />
+<glyph unicode=" "  horiz-adv-x="532" />
+<glyph unicode="&#x09;" horiz-adv-x="532" />
+<glyph unicode="&#xa0;" horiz-adv-x="532" />
+<glyph unicode="!" horiz-adv-x="547" d="M326 403h-105l-51 1059h207zM152 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="&#x22;" horiz-adv-x="821" d="M319 1462l-40 -528h-105l-41 528h186zM688 1462l-41 -528h-104l-41 528h186z" />
+<glyph unicode="#" horiz-adv-x="1323" d="M981 899l-66 -340h283v-129h-307l-84 -430h-137l84 430h-303l-82 -430h-136l80 430h-262v129h287l68 340h-277v127h299l82 436h139l-82 -436h305l84 436h134l-84 -436h264v-127h-289zM475 559h303l66 340h-303z" />
+<glyph unicode="$" d="M1036 449q0 -136 -102 -224.5t-285 -111.5v-232h-129v223q-112 0 -217 17.5t-172 48.5v156q83 -37 191.5 -60.5t197.5 -23.5v440q-205 65 -287.5 151t-82.5 222q0 131 101.5 215t268.5 102v182h129v-180q184 -5 355 -74l-52 -131q-149 59 -303 70v-434q157 -50 235 -97.5 t115 -109t37 -149.5zM866 436q0 72 -44.5 116.5t-172.5 88.5v-389q217 30 217 184zM319 1057q0 -76 45 -122t156 -87v387q-99 -16 -150 -62.5t-51 -115.5z" />
+<glyph unicode="%" horiz-adv-x="1686" d="M242 1026q0 -170 37 -255t120 -85q164 0 164 340q0 338 -164 338q-83 0 -120 -84t-37 -254zM700 1026q0 -228 -76.5 -344.5t-224.5 -116.5q-140 0 -217.5 119t-77.5 342q0 227 74.5 342t220.5 115q145 0 223 -119t78 -338zM1122 440q0 -171 37 -255.5t121 -84.5t124 83.5 t40 256.5q0 171 -40 253.5t-124 82.5t-121 -82.5t-37 -253.5zM1581 440q0 -227 -76.5 -343.5t-224.5 -116.5q-142 0 -218.5 119t-76.5 341q0 227 74.5 342t220.5 115q142 0 221.5 -117.5t79.5 -339.5zM1323 1462l-811 -1462h-147l811 1462h147z" />
+<glyph unicode="&#x26;" horiz-adv-x="1495" d="M414 1171q0 -69 36 -131.5t123 -150.5q129 75 179.5 138.5t50.5 146.5q0 77 -51.5 125.5t-137.5 48.5q-89 0 -144.5 -48t-55.5 -129zM569 129q241 0 400 154l-437 424q-111 -68 -157 -112.5t-68 -95.5t-22 -116q0 -117 77.5 -185.5t206.5 -68.5zM113 379q0 130 69.5 230 t249.5 202q-85 95 -115.5 144t-48.5 102t-18 110q0 150 98 234t273 84q162 0 255 -83.5t93 -232.5q0 -107 -68 -197.5t-225 -183.5l407 -391q56 62 89.5 145.5t56.5 182.5h168q-68 -286 -205 -434l299 -291h-229l-185 178q-118 -106 -240 -152t-272 -46q-215 0 -333.5 106 t-118.5 293z" />
+<glyph unicode="'" horiz-adv-x="453" d="M319 1462l-40 -528h-105l-41 528h186z" />
+<glyph unicode="(" horiz-adv-x="606" d="M82 561q0 265 77.5 496t223.5 405h162q-144 -193 -216.5 -424t-72.5 -475q0 -240 74 -469t213 -418h-160q-147 170 -224 397t-77 488z" />
+<glyph unicode=")" horiz-adv-x="606" d="M524 561q0 -263 -77.5 -490t-223.5 -395h-160q139 188 213 417.5t74 469.5q0 244 -72.5 475t-216.5 424h162q147 -175 224 -406.5t77 -494.5z" />
+<glyph unicode="*" horiz-adv-x="1130" d="M657 1556l-43 -395l398 111l26 -182l-381 -31l248 -326l-172 -94l-176 362l-160 -362l-176 94l242 326l-377 31l29 182l391 -111l-43 395h194z" />
+<glyph unicode="+" d="M653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428z" />
+<glyph unicode="," horiz-adv-x="502" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="-" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="." horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="/" horiz-adv-x="752" d="M731 1462l-545 -1462h-166l545 1462h166z" />
+<glyph unicode="0" d="M1069 733q0 -379 -119.5 -566t-365.5 -187q-236 0 -359 191.5t-123 561.5q0 382 119 567t363 185q238 0 361.5 -193t123.5 -559zM270 733q0 -319 75 -464.5t239 -145.5q166 0 240.5 147.5t74.5 462.5t-74.5 461.5t-240.5 146.5q-164 0 -239 -144.5t-75 -463.5z" />
+<glyph unicode="1" d="M715 0h-162v1042q0 130 8 246q-21 -21 -47 -44t-238 -195l-88 114l387 299h140v-1462z" />
+<glyph unicode="2" d="M1061 0h-961v143l385 387q176 178 232 254t84 148t28 155q0 117 -71 185.5t-197 68.5q-91 0 -172.5 -30t-181.5 -109l-88 113q202 168 440 168q206 0 323 -105.5t117 -283.5q0 -139 -78 -275t-292 -344l-320 -313v-8h752v-154z" />
+<glyph unicode="3" d="M1006 1118q0 -140 -78.5 -229t-222.5 -119v-8q176 -22 261 -112t85 -236q0 -209 -145 -321.5t-412 -112.5q-116 0 -212.5 17.5t-187.5 61.5v158q95 -47 202.5 -71.5t203.5 -24.5q379 0 379 297q0 266 -418 266h-144v143h146q171 0 271 75.5t100 209.5q0 107 -73.5 168 t-199.5 61q-96 0 -181 -26t-194 -96l-84 112q90 71 207.5 111.5t247.5 40.5q213 0 331 -97.5t118 -267.5z" />
+<glyph unicode="4" d="M1130 336h-217v-336h-159v336h-711v145l694 989h176v-983h217v-151zM754 487v486q0 143 10 323h-8q-48 -96 -90 -159l-457 -650h545z" />
+<glyph unicode="5" d="M557 893q231 0 363.5 -114.5t132.5 -313.5q0 -227 -144.5 -356t-398.5 -129q-247 0 -377 79v160q70 -45 174 -70.5t205 -25.5q176 0 273.5 83t97.5 240q0 306 -375 306q-95 0 -254 -29l-86 55l55 684h727v-153h-585l-37 -439q115 23 229 23z" />
+<glyph unicode="6" d="M117 625q0 431 167.5 644.5t495.5 213.5q113 0 178 -19v-143q-77 25 -176 25q-235 0 -359 -146.5t-136 -460.5h12q110 172 348 172q197 0 310.5 -119t113.5 -323q0 -228 -124.5 -358.5t-336.5 -130.5q-227 0 -360 170.5t-133 474.5zM608 121q142 0 220.5 89.5t78.5 258.5 q0 145 -73 228t-218 83q-90 0 -165 -37t-119.5 -102t-44.5 -135q0 -103 40 -192t113.5 -141t167.5 -52z" />
+<glyph unicode="7" d="M285 0l606 1309h-797v153h973v-133l-598 -1329h-184z" />
+<glyph unicode="8" d="M584 1483q200 0 317 -93t117 -257q0 -108 -67 -197t-214 -162q178 -85 253 -178.5t75 -216.5q0 -182 -127 -290.5t-348 -108.5q-234 0 -360 102.5t-126 290.5q0 251 306 391q-138 78 -198 168.5t-60 202.5q0 159 117.5 253.5t314.5 94.5zM268 369q0 -120 83.5 -187 t234.5 -67q149 0 232 70t83 192q0 97 -78 172.5t-272 146.5q-149 -64 -216 -141.5t-67 -185.5zM582 1348q-125 0 -196 -60t-71 -160q0 -92 59 -158t218 -132q143 60 202.5 129t59.5 161q0 101 -72.5 160.5t-199.5 59.5z" />
+<glyph unicode="9" d="M1061 838q0 -858 -664 -858q-116 0 -184 20v143q80 -26 182 -26q240 0 362.5 148.5t133.5 455.5h-12q-55 -83 -146 -126.5t-205 -43.5q-194 0 -308 116t-114 324q0 228 127.5 360t335.5 132q149 0 260.5 -76.5t171.5 -223t60 -345.5zM569 1341q-143 0 -221 -92t-78 -256 q0 -144 72 -226.5t219 -82.5q91 0 167.5 37t120.5 101t44 134q0 105 -41 194t-114.5 140t-168.5 51z" />
+<glyph unicode=":" horiz-adv-x="545" d="M152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM152 989q0 135 118 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode=";" horiz-adv-x="545" d="M350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182zM147 989q0 135 119 135q123 0 123 -135q0 -65 -33 -100t-90 -35q-58 0 -88.5 35t-30.5 100z" />
+<glyph unicode="&#x3c;" d="M1065 242l-961 422v98l961 479v-149l-782 -371l782 -328v-151z" />
+<glyph unicode="=" d="M119 858v137h930v-137h-930zM119 449v137h930v-137h-930z" />
+<glyph unicode="&#x3e;" d="M104 393l783 326l-783 373v149l961 -479v-98l-961 -422v151z" />
+<glyph unicode="?" horiz-adv-x="879" d="M289 403v54q0 117 36 192.5t134 159.5q136 115 171.5 173t35.5 140q0 102 -65.5 157.5t-188.5 55.5q-79 0 -154 -18.5t-172 -67.5l-59 135q189 99 395 99q191 0 297 -94t106 -265q0 -73 -19.5 -128.5t-57.5 -105t-164 -159.5q-101 -86 -133.5 -143t-32.5 -152v-33h-129z M240 106q0 136 120 136q58 0 89.5 -35t31.5 -101q0 -64 -32 -99.5t-89 -35.5q-52 0 -86 31.5t-34 103.5z" />
+<glyph unicode="@" horiz-adv-x="1841" d="M1720 729q0 -142 -44 -260t-124 -183t-184 -65q-86 0 -145 52t-70 133h-8q-40 -87 -114.5 -136t-176.5 -49q-150 0 -234.5 102.5t-84.5 278.5q0 204 118 331.5t310 127.5q68 0 154 -12.5t155 -34.5l-25 -470v-22q0 -178 133 -178q91 0 148 107.5t57 279.5q0 181 -74 317 t-210.5 209.5t-313.5 73.5q-223 0 -388 -92.5t-252 -264t-87 -396.5q0 -305 161 -469t464 -164q210 0 436 86v-133q-192 -84 -436 -84q-363 0 -563.5 199.5t-200.5 557.5q0 260 107 463t305 314.5t454 111.5q215 0 382.5 -90.5t259 -257t91.5 -383.5zM686 598 q0 -254 195 -254q207 0 225 313l14 261q-72 20 -157 20q-130 0 -203.5 -90t-73.5 -250z" />
+<glyph unicode="A" horiz-adv-x="1296" d="M1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473z" />
+<glyph unicode="B" horiz-adv-x="1327" d="M201 1462h413q291 0 421 -87t130 -275q0 -130 -72.5 -214.5t-211.5 -109.5v-10q333 -57 333 -350q0 -196 -132.5 -306t-370.5 -110h-510v1462zM371 836h280q180 0 259 56.5t79 190.5q0 123 -88 177.5t-280 54.5h-250v-479zM371 692v-547h305q177 0 266.5 68.5t89.5 214.5 q0 136 -91.5 200t-278.5 64h-291z" />
+<glyph unicode="C" horiz-adv-x="1292" d="M827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78z" />
+<glyph unicode="D" horiz-adv-x="1493" d="M1368 745q0 -362 -196.5 -553.5t-565.5 -191.5h-405v1462h448q341 0 530 -189t189 -528zM1188 739q0 286 -143.5 431t-426.5 145h-247v-1168h207q304 0 457 149.5t153 442.5z" />
+<glyph unicode="E" horiz-adv-x="1139" d="M1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152z" />
+<glyph unicode="F" horiz-adv-x="1057" d="M371 0h-170v1462h815v-151h-645v-535h606v-151h-606v-625z" />
+<glyph unicode="G" horiz-adv-x="1491" d="M844 766h497v-711q-116 -37 -236 -56t-278 -19q-332 0 -517 197.5t-185 553.5q0 228 91.5 399.5t263.5 262t403 90.5q234 0 436 -86l-66 -150q-198 84 -381 84q-267 0 -417 -159t-150 -441q0 -296 144.5 -449t424.5 -153q152 0 297 35v450h-327v152z" />
+<glyph unicode="H" horiz-adv-x="1511" d="M1311 0h-170v688h-770v-688h-170v1462h170v-622h770v622h170v-1462z" />
+<glyph unicode="I" horiz-adv-x="571" d="M201 0v1462h170v-1462h-170z" />
+<glyph unicode="J" horiz-adv-x="547" d="M-12 -385q-94 0 -148 27v145q71 -20 148 -20q99 0 150.5 60t51.5 173v1462h170v-1448q0 -190 -96 -294.5t-276 -104.5z" />
+<glyph unicode="K" horiz-adv-x="1257" d="M1257 0h-200l-533 709l-153 -136v-573h-170v1462h170v-725l663 725h201l-588 -635z" />
+<glyph unicode="L" horiz-adv-x="1063" d="M201 0v1462h170v-1308h645v-154h-815z" />
+<glyph unicode="M" horiz-adv-x="1849" d="M848 0l-496 1296h-8q14 -154 14 -366v-930h-157v1462h256l463 -1206h8l467 1206h254v-1462h-170v942q0 162 14 352h-8l-500 -1294h-137z" />
+<glyph unicode="N" horiz-adv-x="1544" d="M1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462z" />
+<glyph unicode="O" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5z" />
+<glyph unicode="P" horiz-adv-x="1233" d="M1128 1036q0 -222 -151.5 -341.5t-433.5 -119.5h-172v-575h-170v1462h379q548 0 548 -426zM371 721h153q226 0 327 73t101 234q0 145 -95 216t-296 71h-190v-594z" />
+<glyph unicode="Q" horiz-adv-x="1595" d="M1470 733q0 -281 -113 -467t-319 -252l348 -362h-247l-285 330l-55 -2q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5 q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="R" horiz-adv-x="1266" d="M371 608v-608h-170v1462h401q269 0 397.5 -103t128.5 -310q0 -290 -294 -392l397 -657h-201l-354 608h-305zM371 754h233q180 0 264 71.5t84 214.5q0 145 -85.5 209t-274.5 64h-221v-559z" />
+<glyph unicode="S" horiz-adv-x="1124" d="M1026 389q0 -193 -140 -301t-380 -108q-260 0 -400 67v164q90 -38 196 -60t210 -22q170 0 256 64.5t86 179.5q0 76 -30.5 124.5t-102 89.5t-217.5 93q-204 73 -291.5 173t-87.5 261q0 169 127 269t336 100q218 0 401 -80l-53 -148q-181 76 -352 76q-135 0 -211 -58 t-76 -161q0 -76 28 -124.5t94.5 -89t203.5 -89.5q230 -82 316.5 -176t86.5 -244z" />
+<glyph unicode="T" horiz-adv-x="1133" d="M651 0h-170v1311h-463v151h1096v-151h-463v-1311z" />
+<glyph unicode="U" horiz-adv-x="1491" d="M1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170z" />
+<glyph unicode="V" horiz-adv-x="1219" d="M1036 1462h183l-527 -1462h-168l-524 1462h180l336 -946q58 -163 92 -317q36 162 94 323z" />
+<glyph unicode="W" horiz-adv-x="1896" d="M1477 0h-168l-295 979q-21 65 -47 164t-27 119q-22 -132 -70 -289l-286 -973h-168l-389 1462h180l231 -903q48 -190 70 -344q27 183 80 358l262 889h180l275 -897q48 -155 81 -350q19 142 72 346l230 901h180z" />
+<glyph unicode="X" horiz-adv-x="1182" d="M1174 0h-193l-393 643l-400 -643h-180l486 764l-453 698h188l363 -579l366 579h181l-453 -692z" />
+<glyph unicode="Y" horiz-adv-x="1147" d="M573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186z" />
+<glyph unicode="Z" horiz-adv-x="1169" d="M1087 0h-1005v133l776 1176h-752v153h959v-133l-776 -1175h798v-154z" />
+<glyph unicode="[" horiz-adv-x="674" d="M623 -324h-457v1786h457v-141h-289v-1503h289v-142z" />
+<glyph unicode="\" horiz-adv-x="752" d="M186 1462l547 -1462h-166l-544 1462h163z" />
+<glyph unicode="]" horiz-adv-x="674" d="M51 -182h289v1503h-289v141h457v-1786h-457v142z" />
+<glyph unicode="^" horiz-adv-x="1110" d="M49 551l434 922h99l477 -922h-152l-372 745l-334 -745h-152z" />
+<glyph unicode="_" horiz-adv-x="918" d="M922 -315h-926v131h926v-131z" />
+<glyph unicode="`" horiz-adv-x="1182" d="M786 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="a" horiz-adv-x="1139" d="M850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85t88.5 238 v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47z" />
+<glyph unicode="b" horiz-adv-x="1255" d="M686 1114q216 0 335.5 -147.5t119.5 -417.5t-120.5 -419.5t-334.5 -149.5q-107 0 -195.5 39.5t-148.5 121.5h-12l-35 -141h-119v1556h166v-378q0 -127 -8 -228h8q116 164 344 164zM662 975q-170 0 -245 -97.5t-75 -328.5t77 -330.5t247 -99.5q153 0 228 111.5t75 320.5 q0 214 -75 319t-232 105z" />
+<glyph unicode="c" horiz-adv-x="975" d="M614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57z" />
+<glyph unicode="d" horiz-adv-x="1255" d="M922 147h-9q-115 -167 -344 -167q-215 0 -334.5 147t-119.5 418t120 421t334 150q223 0 342 -162h13l-7 79l-4 77v446h166v-1556h-135zM590 119q170 0 246.5 92.5t76.5 298.5v35q0 233 -77.5 332.5t-247.5 99.5q-146 0 -223.5 -113.5t-77.5 -320.5q0 -210 77 -317 t226 -107z" />
+<glyph unicode="e" horiz-adv-x="1149" d="M639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5t-200 83.5z " />
+<glyph unicode="f" horiz-adv-x="694" d="M670 967h-279v-967h-166v967h-196v75l196 60v61q0 404 353 404q87 0 204 -35l-43 -133q-96 31 -164 31q-94 0 -139 -62.5t-45 -200.5v-71h279v-129z" />
+<glyph unicode="g" horiz-adv-x="1122" d="M1073 1096v-105l-203 -24q28 -35 50 -91.5t22 -127.5q0 -161 -110 -257t-302 -96q-49 0 -92 8q-106 -56 -106 -141q0 -45 37 -66.5t127 -21.5h194q178 0 273.5 -75t95.5 -218q0 -182 -146 -277.5t-426 -95.5q-215 0 -331.5 80t-116.5 226q0 100 64 173t180 99 q-42 19 -70.5 59t-28.5 93q0 60 32 105t101 87q-85 35 -138.5 119t-53.5 192q0 180 108 277.5t306 97.5q86 0 155 -20h379zM199 -184q0 -89 75 -135t215 -46q209 0 309.5 62.5t100.5 169.5q0 89 -55 123.5t-207 34.5h-199q-113 0 -176 -54t-63 -155zM289 745q0 -115 65 -174 t181 -59q243 0 243 236q0 247 -246 247q-117 0 -180 -63t-63 -187z" />
+<glyph unicode="h" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-173 0 -252.5 -94t-79.5 -308v-573h-166v1556h166v-471q0 -85 -8 -141h10q49 79 139.5 124.5t206.5 45.5q201 0 301.5 -95.5t100.5 -303.5v-715h-166z" />
+<glyph unicode="i" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="j" horiz-adv-x="518" d="M43 -492q-95 0 -154 25v135q69 -20 136 -20q78 0 114.5 42.5t36.5 129.5v1276h166v-1264q0 -324 -299 -324zM162 1393q0 57 28 83.5t70 26.5q40 0 69 -27t29 -83t-29 -83.5t-69 -27.5q-42 0 -70 27.5t-28 83.5z" />
+<glyph unicode="k" horiz-adv-x="1075" d="M340 561q43 61 131 160l354 375h197l-444 -467l475 -629h-201l-387 518l-125 -108v-410h-164v1556h164v-825q0 -55 -8 -170h8z" />
+<glyph unicode="l" horiz-adv-x="518" d="M342 0h-166v1556h166v-1556z" />
+<glyph unicode="m" horiz-adv-x="1905" d="M1573 0v713q0 131 -56 196.5t-174 65.5q-155 0 -229 -89t-74 -274v-612h-166v713q0 131 -56 196.5t-175 65.5q-156 0 -228.5 -93.5t-72.5 -306.5v-575h-166v1096h135l27 -150h8q47 80 132.5 125t191.5 45q257 0 336 -186h8q49 86 142 136t212 50q186 0 278.5 -95.5 t92.5 -305.5v-715h-166z" />
+<glyph unicode="n" horiz-adv-x="1257" d="M926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166z" />
+<glyph unicode="o" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z" />
+<glyph unicode="p" horiz-adv-x="1255" d="M686 -20q-107 0 -195.5 39.5t-148.5 121.5h-12q12 -96 12 -182v-451h-166v1588h135l23 -150h8q64 90 149 130t195 40q218 0 336.5 -149t118.5 -418q0 -270 -120.5 -419.5t-334.5 -149.5zM662 975q-168 0 -243 -93t-77 -296v-37q0 -231 77 -330.5t247 -99.5 q142 0 222.5 115t80.5 317q0 205 -80.5 314.5t-226.5 109.5z" />
+<glyph unicode="q" horiz-adv-x="1255" d="M590 119q166 0 242 89t81 300v37q0 230 -78 331t-247 101q-146 0 -223.5 -113.5t-77.5 -320.5t76.5 -315.5t226.5 -108.5zM565 -20q-212 0 -331 149t-119 416q0 269 120 420t334 151q225 0 346 -170h9l24 150h131v-1588h-166v469q0 100 11 170h-13q-115 -167 -346 -167z " />
+<glyph unicode="r" horiz-adv-x="836" d="M676 1116q73 0 131 -12l-23 -154q-68 15 -120 15q-133 0 -227.5 -108t-94.5 -269v-588h-166v1096h137l19 -203h8q61 107 147 165t189 58z" />
+<glyph unicode="s" horiz-adv-x="977" d="M883 299q0 -153 -114 -236t-320 -83q-218 0 -340 69v154q79 -40 169.5 -63t174.5 -23q130 0 200 41.5t70 126.5q0 64 -55.5 109.5t-216.5 107.5q-153 57 -217.5 99.5t-96 96.5t-31.5 129q0 134 109 211.5t299 77.5q177 0 346 -72l-59 -135q-165 68 -299 68 q-118 0 -178 -37t-60 -102q0 -44 22.5 -75t72.5 -59t192 -81q195 -71 263.5 -143t68.5 -181z" />
+<glyph unicode="t" horiz-adv-x="723" d="M530 117q44 0 85 6.5t65 13.5v-127q-27 -13 -79.5 -21.5t-94.5 -8.5q-318 0 -318 335v652h-157v80l157 69l70 234h96v-254h318v-129h-318v-645q0 -99 47 -152t129 -53z" />
+<glyph unicode="u" horiz-adv-x="1257" d="M332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168z" />
+<glyph unicode="v" horiz-adv-x="1026" d="M416 0l-416 1096h178l236 -650q80 -228 94 -296h8q11 53 69.5 219.5t262.5 726.5h178l-416 -1096h-194z" />
+<glyph unicode="w" horiz-adv-x="1593" d="M1071 0l-201 643q-19 59 -71 268h-8q-40 -175 -70 -270l-207 -641h-192l-299 1096h174q106 -413 161.5 -629t63.5 -291h8q11 57 35.5 147.5t42.5 143.5l201 629h180l196 -629q56 -172 76 -289h8q4 36 21.5 111t208.5 807h172l-303 -1096h-197z" />
+<glyph unicode="x" horiz-adv-x="1073" d="M440 561l-381 535h189l289 -420l288 420h187l-381 -535l401 -561h-188l-307 444l-310 -444h-188z" />
+<glyph unicode="y" horiz-adv-x="1032" d="M2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156z" />
+<glyph unicode="z" horiz-adv-x="958" d="M877 0h-795v113l598 854h-561v129h743v-129l-590 -838h605v-129z" />
+<glyph unicode="{" horiz-adv-x="776" d="M475 12q0 -102 58.5 -148t171.5 -48v-140q-190 2 -294 87t-104 239v303q0 104 -63 148.5t-183 44.5v141q130 2 188 48t58 142v306q0 155 108 241t290 86v-139q-230 -6 -230 -199v-295q0 -215 -223 -254v-12q223 -39 223 -254v-297z" />
+<glyph unicode="|" horiz-adv-x="1128" d="M494 1556h141v-2052h-141v2052z" />
+<glyph unicode="}" horiz-adv-x="776" d="M522 575q-223 39 -223 254v295q0 193 -227 199v139q184 0 289.5 -87t105.5 -240v-306q0 -97 59 -142.5t189 -47.5v-141q-122 0 -185 -44.5t-63 -148.5v-303q0 -153 -102.5 -238.5t-292.5 -87.5v140q111 2 169 48t58 148v297q0 114 55 174t168 80v12z" />
+<glyph unicode="~" d="M338 713q-53 0 -116.5 -33.5t-117.5 -87.5v151q100 109 244 109q68 0 124.5 -14t145.5 -52q66 -28 115 -41.5t96 -13.5q54 0 118 32t118 89v-150q-102 -110 -244 -110q-72 0 -135 16.5t-135 48.5q-75 32 -120 44t-93 12z" />
+<glyph unicode="&#xa1;" horiz-adv-x="547" d="M219 684h105l51 -1057h-207zM393 983q0 -135 -121 -135q-60 0 -90 35.5t-30 99.5q0 63 31.5 99t88.5 36q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xa2;" d="M971 240q-105 -54 -252 -60v-200h-133v206q-203 32 -299.5 168.5t-96.5 386.5q0 508 396 570v172h135v-164q75 -3 146 -19.5t120 -39.5l-49 -140q-133 51 -242 51q-172 0 -253 -105.5t-81 -322.5q0 -212 79.5 -313.5t246.5 -101.5q141 0 283 59v-147z" />
+<glyph unicode="&#xa3;" d="M682 1481q190 0 360 -84l-61 -133q-154 77 -297 77q-123 0 -185.5 -62t-62.5 -202v-295h422v-127h-422v-221q0 -100 -32.5 -168t-106.5 -112h795v-154h-1029v141q205 47 205 291v223h-198v127h198v316q0 178 112 280.5t302 102.5z" />
+<glyph unicode="&#xa4;" d="M184 723q0 122 74 229l-135 140l94 92l135 -133q104 73 234 73q127 0 229 -73l137 133l95 -92l-134 -138q74 -113 74 -231q0 -131 -74 -234l131 -135l-92 -92l-137 133q-102 -71 -229 -71q-134 0 -234 73l-135 -133l-92 92l133 136q-74 107 -74 231zM313 723 q0 -112 78.5 -192t194.5 -80t195 79.5t79 192.5q0 114 -80 195t-194 81q-116 0 -194.5 -82t-78.5 -194z" />
+<glyph unicode="&#xa5;" d="M584 735l379 727h174l-416 -770h262v-127h-317v-170h317v-127h-317v-268h-164v268h-316v127h316v170h-316v127h256l-411 770h178z" />
+<glyph unicode="&#xa6;" horiz-adv-x="1128" d="M494 1556h141v-776h-141v776zM494 281h141v-777h-141v777z" />
+<glyph unicode="&#xa7;" horiz-adv-x="1057" d="M139 809q0 86 43 154.5t121 105.5q-74 40 -116 95.5t-42 140.5q0 121 103.5 190.5t300.5 69.5q94 0 173.5 -14.5t176.5 -53.5l-53 -131q-98 39 -165.5 52.5t-143.5 13.5q-116 0 -174 -29.5t-58 -93.5q0 -60 61.5 -102t215.5 -97q186 -68 261 -143.5t75 -182.5 q0 -90 -41 -160.5t-115 -111.5q153 -81 153 -227q0 -140 -117 -216.5t-329 -76.5q-218 0 -346 65v148q78 -37 175 -59.5t179 -22.5q134 0 204.5 38t70.5 109q0 46 -24 75t-78 58t-169 72q-142 52 -209 97t-100 102t-33 135zM285 829q0 -77 66 -129.5t233 -113.5l49 -19 q137 80 137 191q0 83 -73.5 139t-258.5 113q-68 -19 -110.5 -69t-42.5 -112z" />
+<glyph unicode="&#xa8;" horiz-adv-x="1182" d="M309 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM690 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xa9;" horiz-adv-x="1704" d="M893 1059q-125 0 -192.5 -87t-67.5 -241q0 -168 63.5 -249t194.5 -81q86 0 211 45v-124q-48 -20 -98.5 -34t-120.5 -14q-194 0 -298 120.5t-104 336.5q0 209 110.5 332t301.5 123q128 0 246 -60l-58 -118q-108 51 -188 51zM100 731q0 200 100 375t275 276t377 101 q200 0 375 -100t276 -275t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87 t-236.5 -235.5t-87.5 -324.5z" />
+<glyph unicode="&#xaa;" horiz-adv-x="725" d="M532 801l-24 84q-92 -97 -232 -97q-95 0 -150.5 49.5t-55.5 151.5t77 154.5t242 58.5l117 4v39q0 133 -148 133q-100 0 -204 -51l-43 96q114 56 247 56q130 0 198.5 -52.5t68.5 -173.5v-452h-93zM193 989q0 -100 112 -100q201 0 201 180v49l-98 -4q-112 -4 -163.5 -32.5 t-51.5 -92.5z" />
+<glyph unicode="&#xab;" horiz-adv-x="1018" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27zM477 551l344 407l117 -69l-287 -350l287 -351l-117 -71l-344 407v27z" />
+<glyph unicode="&#xac;" d="M1065 791v-527h-137v389h-824v138h961z" />
+<glyph unicode="&#xad;" horiz-adv-x="659" d="M84 473zM84 473v152h491v-152h-491z" />
+<glyph unicode="&#xae;" horiz-adv-x="1704" d="M723 762h108q80 0 128.5 41.5t48.5 105.5q0 75 -43 107.5t-136 32.5h-106v-287zM1157 913q0 -80 -42.5 -141.5t-119.5 -91.5l238 -395h-168l-207 354h-135v-354h-148v891h261q166 0 243.5 -65t77.5 -198zM100 731q0 200 100 375t275 276t377 101q200 0 375 -100t276 -275 t101 -377q0 -197 -97 -370t-272 -277t-383 -104q-207 0 -382 103.5t-272.5 276.5t-97.5 371zM205 731q0 -173 87 -323.5t237.5 -237t322.5 -86.5q174 0 323 87t236.5 235.5t87.5 324.5q0 174 -87 323t-235.5 236.5t-324.5 87.5q-174 0 -323 -87t-236.5 -235.5t-87.5 -324.5z " />
+<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M1030 1556h-1036v127h1036v-127z" />
+<glyph unicode="&#xb0;" horiz-adv-x="877" d="M127 1171q0 130 90.5 221t220.5 91t221 -90.5t91 -221.5q0 -84 -41 -155.5t-114 -113.5t-157 -42q-130 0 -220.5 90t-90.5 221zM242 1171q0 -82 58.5 -139t139.5 -57q80 0 137.5 56.5t57.5 139.5q0 84 -56.5 140.5t-138.5 56.5q-83 0 -140.5 -57t-57.5 -140z" />
+<glyph unicode="&#xb1;" d="M104 1zM653 791h412v-138h-412v-426h-139v426h-410v138h410v428h139v-428zM104 1v138h961v-138h-961z" />
+<glyph unicode="&#xb2;" horiz-adv-x="711" d="M653 586h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xb3;" horiz-adv-x="711" d="M627 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5z" />
+<glyph unicode="&#xb4;" horiz-adv-x="1182" d="M393 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xb5;" horiz-adv-x="1268" d="M342 381q0 -262 254 -262q171 0 250.5 94.5t79.5 306.5v576h166v-1096h-136l-26 147h-10q-111 -167 -340 -167q-150 0 -238 92h-10q10 -84 10 -244v-320h-166v1588h166v-715z" />
+<glyph unicode="&#xb6;" horiz-adv-x="1341" d="M1120 -260h-114v1712h-213v-1712h-115v819q-62 -18 -146 -18q-216 0 -317.5 125t-101.5 376q0 260 109 387t341 127h557v-1816z" />
+<glyph unicode="&#xb7;" horiz-adv-x="545" d="M152 723q0 66 31 100.5t87 34.5q58 0 90.5 -34.5t32.5 -100.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#xb8;" horiz-adv-x="465" d="M436 -289q0 -97 -76.5 -150t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xb9;" horiz-adv-x="711" d="M338 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96z" />
+<glyph unicode="&#xba;" horiz-adv-x="768" d="M702 1135q0 -164 -85.5 -255.5t-235.5 -91.5q-146 0 -230.5 93t-84.5 254q0 163 84 253.5t235 90.5q152 0 234.5 -91t82.5 -253zM188 1135q0 -122 45.5 -183t149.5 -61q105 0 151 61t46 183q0 123 -46 182t-151 59q-103 0 -149 -59t-46 -182z" />
+<glyph unicode="&#xbb;" horiz-adv-x="1018" d="M936 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27zM541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#xbc;" horiz-adv-x="1597" d="M75 0zM1298 1462l-903 -1462h-143l903 1462h143zM337 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1489 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1219 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45 t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbd;" horiz-adv-x="1597" d="M46 0zM1230 1462l-903 -1462h-143l903 1462h143zM308 1462h143v-876h-133v579q0 91 6 181q-22 -22 -49 -44.5t-162 -117.5l-67 96zM1499 1h-604v104l236 230q89 86 130 134.5t57.5 86.5t16.5 92q0 68 -40 102.5t-103 34.5q-52 0 -101 -19t-118 -69l-66 88 q131 111 283 111q132 0 205.5 -65t73.5 -177q0 -80 -44.5 -155.5t-191.5 -213.5l-174 -165h440v-119z" />
+<glyph unicode="&#xbe;" horiz-adv-x="1597" d="M26 0zM620 1255q0 -80 -41 -131.5t-109 -74.5q176 -47 176 -209q0 -128 -92 -199.5t-260 -71.5q-152 0 -268 56v123q147 -68 270 -68q211 0 211 162q0 145 -231 145h-117v107h119q103 0 152.5 39.5t49.5 107.5q0 61 -40 95t-107 34q-66 0 -122 -21.5t-112 -56.5l-69 90 q63 45 133 72t164 27q136 0 214.5 -59.5t78.5 -166.5zM1390 1462l-903 -1462h-143l903 1462h143zM1569 203h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM1299 320v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#xbf;" horiz-adv-x="879" d="M590 684v-51q0 -122 -37.5 -196t-134.5 -158q-121 -106 -151.5 -143.5t-43 -76t-12.5 -94.5q0 -100 66 -156.5t188 -56.5q80 0 155 19t173 67l59 -135q-197 -96 -395 -96q-190 0 -298 93t-108 263q0 70 17.5 122.5t49.5 97t76.5 85.5t98.5 88q101 88 133.5 146t32.5 151 v31h131zM639 983q0 -135 -121 -135q-59 0 -90 34.5t-31 100.5q0 64 33 99.5t88 35.5q51 0 86 -32t35 -103z" />
+<glyph unicode="&#xc0;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM724 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc1;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM526 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xc2;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM303 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186 h-115v23z" />
+<glyph unicode="&#xc3;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM792 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5 q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xc4;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM364 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5z M745 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xc5;" horiz-adv-x="1296" d="M0 0zM1120 0l-182 465h-586l-180 -465h-172l578 1468h143l575 -1468h-176zM885 618l-170 453q-33 86 -68 211q-22 -96 -63 -211l-172 -453h473zM870 1587q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5z M762 1585q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xc6;" horiz-adv-x="1788" d="M1665 0h-750v465h-514l-227 -465h-176l698 1462h969v-151h-580v-471h541v-150h-541v-538h580v-152zM469 618h446v693h-118z" />
+<glyph unicode="&#xc7;" horiz-adv-x="1292" d="M125 0zM827 1331q-241 0 -380.5 -160.5t-139.5 -439.5q0 -287 134.5 -443.5t383.5 -156.5q153 0 349 55v-149q-152 -57 -375 -57q-323 0 -498.5 196t-175.5 557q0 226 84.5 396t244 262t375.5 92q230 0 402 -84l-72 -146q-166 78 -332 78zM950 -289q0 -97 -76.5 -150 t-226.5 -53q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xc8;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM713 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xc9;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM456 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xca;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM263 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcb;" horiz-adv-x="1139" d="M201 0zM1016 0h-815v1462h815v-151h-645v-471h606v-150h-606v-538h645v-152zM327 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM708 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xcc;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM398 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xcd;" horiz-adv-x="571" d="M179 0zM201 0v1462h170v-1462h-170zM179 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xce;" horiz-adv-x="571" d="M0 0zM201 0v1462h170v-1462h-170zM-57 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xcf;" horiz-adv-x="571" d="M5 0zM201 0v1462h170v-1462h-170zM5 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM386 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd0;" horiz-adv-x="1479" d="M1352 745q0 -362 -196.5 -553.5t-565.5 -191.5h-389v649h-154v150h154v663h434q337 0 527 -187.5t190 -529.5zM1171 739q0 576 -569 576h-231v-516h379v-150h-379v-502h190q610 0 610 592z" />
+<glyph unicode="&#xd1;" horiz-adv-x="1544" d="M201 0zM1343 0h-194l-799 1227h-8q16 -216 16 -396v-831h-157v1462h192l797 -1222h8q-2 27 -9 173.5t-5 209.5v839h159v-1462zM935 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41 t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd2;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM907 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xd3;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM659 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xd4;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM448 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xd5;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM942 1581q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xd6;" horiz-adv-x="1595" d="M125 0zM1470 733q0 -351 -177.5 -552t-493.5 -201q-323 0 -498.5 197.5t-175.5 557.5q0 357 176 553.5t500 196.5q315 0 492 -200t177 -552zM305 733q0 -297 126.5 -450.5t367.5 -153.5q243 0 367 153t124 451q0 295 -123.5 447.5t-365.5 152.5q-243 0 -369.5 -153.5 t-126.5 -446.5zM522 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM903 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xd7;" d="M940 1176l96 -99l-352 -354l350 -352l-96 -99l-354 351l-348 -351l-101 99l350 352l-352 352l100 101l353 -355z" />
+<glyph unicode="&#xd8;" horiz-adv-x="1595" d="M1470 733q0 -351 -177.5 -552t-493.5 -201q-235 0 -383 100l-101 -141l-120 79l108 154q-178 198 -178 563q0 357 176 553.5t500 196.5q209 0 366 -94l97 135l120 -80l-106 -148q192 -202 192 -565zM1290 733q0 272 -110 426l-672 -948q115 -82 291 -82q243 0 367 153 t124 451zM305 733q0 -262 101 -416l669 943q-106 73 -274 73q-243 0 -369.5 -153.5t-126.5 -446.5z" />
+<glyph unicode="&#xd9;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM856 1579h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xda;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM600 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xdb;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM393 1602q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186 q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xdc;" horiz-adv-x="1491" d="M186 0zM1305 1462v-946q0 -250 -151 -393t-415 -143t-408.5 144t-144.5 396v942h170v-954q0 -183 100 -281t294 -98q185 0 285 98.5t100 282.5v952h170zM461 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5 t-26.5 74.5zM842 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xdd;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM442 1604q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xde;" horiz-adv-x="1251" d="M1145 784q0 -227 -151.5 -346t-438.5 -119h-184v-319h-170v1462h170v-256h215q281 0 420 -103.5t139 -318.5zM371 465h168q226 0 327 71.5t101 235.5q0 149 -95 218t-297 69h-204v-594z" />
+<glyph unicode="&#xdf;" horiz-adv-x="1274" d="M1049 1266q0 -135 -143 -250q-88 -70 -116 -103.5t-28 -66.5q0 -32 13.5 -53t49 -49.5t113.5 -79.5q140 -95 191 -173.5t51 -179.5q0 -160 -97 -245.5t-276 -85.5q-188 0 -295 69v154q63 -39 141 -62.5t150 -23.5q215 0 215 182q0 75 -41.5 128.5t-151.5 123.5 q-127 82 -175 143.5t-48 145.5q0 63 34.5 116t105.5 106q75 57 107 102t32 98q0 80 -68 122.5t-195 42.5q-276 0 -276 -223v-1204h-166v1202q0 178 110 271.5t332 93.5q206 0 318.5 -78.5t112.5 -222.5z" />
+<glyph unicode="&#xe0;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM672 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe1;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM436 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xe2;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM228 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xe3;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM721 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99 q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xe4;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM279 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM660 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75 q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xe5;" horiz-adv-x="1139" d="M94 0zM850 0l-33 156h-8q-82 -103 -163.5 -139.5t-203.5 -36.5q-163 0 -255.5 84t-92.5 239q0 332 531 348l186 6v68q0 129 -55.5 190.5t-177.5 61.5q-137 0 -310 -84l-51 127q81 44 177.5 69t193.5 25q196 0 290.5 -87t94.5 -279v-748h-123zM475 117q155 0 243.5 85 t88.5 238v99l-166 -7q-198 -7 -285.5 -61.5t-87.5 -169.5q0 -90 54.5 -137t152.5 -47zM804 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM696 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5 t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#xe6;" horiz-adv-x="1757" d="M94 303q0 161 124 250.5t378 97.5l184 6v68q0 129 -58 190.5t-177 61.5q-144 0 -307 -84l-52 127q74 41 173.5 67.5t197.5 26.5q130 0 212.5 -43.5t123.5 -138.5q53 88 138.5 136t195.5 48q192 0 308 -133.5t116 -355.5v-107h-701q8 -395 322 -395q91 0 169.5 17.5 t162.5 56.5v-148q-86 -38 -160.5 -54.5t-175.5 -16.5q-289 0 -414 233q-81 -127 -179.5 -180t-232.5 -53q-163 0 -255.5 85t-92.5 238zM268 301q0 -95 53.5 -139.5t141.5 -44.5q145 0 229 84.5t84 238.5v99l-158 -7q-186 -8 -268 -62.5t-82 -168.5zM1225 977 q-121 0 -190.5 -83t-80.5 -241h519q0 156 -64 240t-184 84z" />
+<glyph unicode="&#xe7;" horiz-adv-x="975" d="M115 0zM614 -20q-238 0 -368.5 146.5t-130.5 414.5q0 275 132.5 425t377.5 150q79 0 158 -17t124 -40l-51 -141q-55 22 -120 36.5t-115 14.5q-334 0 -334 -426q0 -202 81.5 -310t241.5 -108q137 0 281 59v-147q-110 -57 -277 -57zM762 -289q0 -97 -76.5 -150t-226.5 -53 q-51 0 -96 9v106q45 -8 104 -8q79 0 119.5 20t40.5 74q0 43 -39.5 69.5t-148.5 43.5l88 178h110l-55 -115q180 -39 180 -174z" />
+<glyph unicode="&#xe8;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM711 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xe9;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM471 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xea;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM259 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xeb;" horiz-adv-x="1149" d="M115 0zM639 -20q-243 0 -383.5 148t-140.5 411q0 265 130.5 421t350.5 156q206 0 326 -135.5t120 -357.5v-105h-755q5 -193 97.5 -293t260.5 -100q177 0 350 74v-148q-88 -38 -166.5 -54.5t-189.5 -16.5zM594 977q-132 0 -210.5 -86t-92.5 -238h573q0 157 -70 240.5 t-200 83.5zM319 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM700 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xec;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM355 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xed;" horiz-adv-x="518" d="M169 0zM342 0h-166v1096h166v-1096zM169 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xee;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-77 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xef;" horiz-adv-x="518" d="M0 0zM342 0h-166v1096h166v-1096zM-20 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM361 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf0;" horiz-adv-x="1221" d="M1122 563q0 -281 -130.5 -432t-377.5 -151q-222 0 -361.5 134.5t-139.5 360.5q0 230 131.5 361t351.5 131q226 0 326 -121l8 4q-57 214 -262 405l-271 -155l-73 108l233 133q-92 62 -186 111l69 117q156 -73 258 -148l238 138l76 -107l-207 -119q152 -143 234.5 -342 t82.5 -428zM954 512q0 147 -90 232t-246 85q-337 0 -337 -360q0 -167 87.5 -258.5t249.5 -91.5q175 0 255.5 100.5t80.5 292.5z" />
+<glyph unicode="&#xf1;" horiz-adv-x="1257" d="M176 0zM926 0v709q0 134 -61 200t-191 66q-172 0 -252 -93t-80 -307v-575h-166v1096h135l27 -150h8q51 81 143 125.5t205 44.5q198 0 298 -95.5t100 -305.5v-715h-166zM802 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98 q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf2;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M742 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xf3;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M479 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xf4;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M282 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xf5;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M773 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#xf6;" horiz-adv-x="1237" d="M115 0zM1122 549q0 -268 -135 -418.5t-373 -150.5q-147 0 -261 69t-176 198t-62 302q0 268 134 417.5t372 149.5q230 0 365.5 -153t135.5 -414zM287 549q0 -210 84 -320t247 -110t247.5 109.5t84.5 320.5q0 209 -84.5 317.5t-249.5 108.5q-163 0 -246 -107t-83 -319z M336 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM717 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xf7;" d="M104 653v138h961v-138h-961zM471 373q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5zM471 1071q0 60 29.5 90.5t83.5 30.5q52 0 81 -31.5t29 -89.5q0 -57 -29.5 -89t-80.5 -32q-52 0 -82.5 31.5t-30.5 89.5z " />
+<glyph unicode="&#xf8;" horiz-adv-x="1237" d="M1122 549q0 -268 -135 -418.5t-373 -150.5q-154 0 -266 69l-84 -117l-114 78l94 131q-129 152 -129 408q0 268 134 417.5t372 149.5q154 0 270 -76l84 119l117 -76l-97 -133q127 -152 127 -401zM287 549q0 -171 53 -273l465 646q-75 53 -189 53q-163 0 -246 -107 t-83 -319zM950 549q0 164 -51 264l-465 -643q71 -51 184 -51q163 0 247.5 109.5t84.5 320.5z" />
+<glyph unicode="&#xf9;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM726 1241h-110q-65 52 -154 148t-129 159v21h203q32 -69 89 -159.5t101 -143.5v-25z" />
+<glyph unicode="&#xfa;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM506 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147h-111v25z" />
+<glyph unicode="&#xfb;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM286 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119 q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#xfc;" horiz-adv-x="1257" d="M164 0zM332 1096v-711q0 -134 61 -200t191 -66q172 0 251.5 94t79.5 307v576h166v-1096h-137l-24 147h-9q-51 -81 -141.5 -124t-206.5 -43q-200 0 -299.5 95t-99.5 304v717h168zM342 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5 q-37 0 -63.5 24.5t-26.5 74.5zM723 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#xfd;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM411 1266q48 62 103.5 150t87.5 153h202v-21q-44 -65 -131 -160t-151 -147 h-111v25z" />
+<glyph unicode="&#xfe;" horiz-adv-x="1255" d="M344 948q66 89 151 128.5t191 39.5q215 0 335 -150t120 -417q0 -268 -120.5 -418.5t-334.5 -150.5q-222 0 -344 161h-12l4 -34q8 -77 8 -140v-459h-166v2048h166v-466q0 -52 -6 -142h8zM664 975q-168 0 -244 -92t-78 -293v-41q0 -231 77 -330.5t247 -99.5q303 0 303 432 q0 215 -74 319.5t-231 104.5z" />
+<glyph unicode="&#xff;" horiz-adv-x="1032" d="M2 0zM2 1096h178l240 -625q79 -214 98 -309h8q13 51 54.5 174.5t271.5 759.5h178l-471 -1248q-70 -185 -163.5 -262.5t-229.5 -77.5q-76 0 -150 17v133q55 -12 123 -12q171 0 244 192l61 156zM234 1393q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM615 1393q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x131;" horiz-adv-x="518" d="M342 0h-166v1096h166v-1096z" />
+<glyph unicode="&#x152;" horiz-adv-x="1890" d="M1767 0h-768q-102 -20 -194 -20q-327 0 -503.5 196.5t-176.5 558.5q0 360 174 555t494 195q102 0 192 -23h782v-151h-589v-471h551v-150h-551v-538h589v-152zM811 1333q-249 0 -377.5 -152.5t-128.5 -447.5q0 -297 128.5 -450.5t375.5 -153.5q112 0 199 33v1141 q-87 30 -197 30z" />
+<glyph unicode="&#x153;" horiz-adv-x="1929" d="M1430 -20q-293 0 -418 235q-62 -116 -166.5 -175.5t-241.5 -59.5q-223 0 -357 152.5t-134 416.5q0 265 131 415t366 150q131 0 233.5 -59.5t164.5 -173.5q58 112 154 172.5t222 60.5q201 0 320 -132.5t119 -358.5v-105h-729q8 -393 338 -393q94 0 174.5 17.5t167.5 56.5 v-148q-88 -39 -164 -55t-180 -16zM287 549q0 -211 76 -320.5t243 -109.5q163 0 239.5 106.5t76.5 315.5q0 221 -77.5 327.5t-242.5 106.5q-166 0 -240.5 -108t-74.5 -318zM1382 975q-127 0 -199.5 -82t-84.5 -240h544q0 158 -66 240t-194 82z" />
+<glyph unicode="&#x178;" horiz-adv-x="1147" d="M0 0zM573 731l390 731h184l-488 -895v-567h-172v559l-487 903h186zM294 1731q0 52 26.5 75t63.5 23q38 0 65.5 -23t27.5 -75q0 -50 -27.5 -74.5t-65.5 -24.5q-37 0 -63.5 24.5t-26.5 74.5zM675 1731q0 52 26.5 75t63.5 23t64.5 -23t27.5 -75q0 -50 -27.5 -74.5 t-64.5 -24.5t-63.5 24.5t-26.5 74.5z" />
+<glyph unicode="&#x2c6;" horiz-adv-x="1212" d="M268 1264q127 136 178 200t74 105h166q22 -42 76.5 -108.5t179.5 -196.5v-23h-119q-88 55 -221 186q-136 -134 -219 -186h-115v23z" />
+<glyph unicode="&#x2da;" horiz-adv-x="1182" d="M813 1458q0 -98 -61.5 -157.5t-163.5 -59.5q-101 0 -161 58.5t-60 156.5t60.5 155.5t160.5 57.5q101 0 163 -59.5t62 -151.5zM705 1456q0 56 -33 86.5t-84 30.5t-84 -30.5t-33 -86.5t30 -86.5t87 -30.5q52 0 84.5 30.5t32.5 86.5z" />
+<glyph unicode="&#x2dc;" horiz-adv-x="1212" d="M788 1243q-43 0 -84 18.5t-80.5 41t-76 41t-70.5 18.5q-50 0 -75.5 -30t-39.5 -91h-98q13 121 70.5 189.5t148.5 68.5q46 0 89 -18.5t82 -41t75 -41t68 -18.5q49 0 73 29.5t39 91.5h99q-13 -121 -69.5 -189.5t-150.5 -68.5z" />
+<glyph unicode="&#x2000;" horiz-adv-x="953" />
+<glyph unicode="&#x2001;" horiz-adv-x="1907" />
+<glyph unicode="&#x2002;" horiz-adv-x="953" />
+<glyph unicode="&#x2003;" horiz-adv-x="1907" />
+<glyph unicode="&#x2004;" horiz-adv-x="635" />
+<glyph unicode="&#x2005;" horiz-adv-x="476" />
+<glyph unicode="&#x2006;" horiz-adv-x="317" />
+<glyph unicode="&#x2007;" horiz-adv-x="317" />
+<glyph unicode="&#x2008;" horiz-adv-x="238" />
+<glyph unicode="&#x2009;" horiz-adv-x="381" />
+<glyph unicode="&#x200a;" horiz-adv-x="105" />
+<glyph unicode="&#x2010;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2011;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2012;" horiz-adv-x="659" d="M84 473v152h491v-152h-491z" />
+<glyph unicode="&#x2013;" horiz-adv-x="1024" d="M82 473v152h860v-152h-860z" />
+<glyph unicode="&#x2014;" horiz-adv-x="2048" d="M82 473v152h1884v-152h-1884z" />
+<glyph unicode="&#x2018;" horiz-adv-x="348" d="M37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x2019;" horiz-adv-x="348" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182z" />
+<glyph unicode="&#x201a;" horiz-adv-x="502" d="M63 0zM350 238l15 -23q-26 -100 -75 -232.5t-102 -246.5h-125q27 104 59.5 257t45.5 245h182z" />
+<glyph unicode="&#x201c;" horiz-adv-x="717" d="M406 961l-15 22q56 215 178 479h123q-30 -115 -59.5 -259.5t-42.5 -241.5h-184zM37 961l-12 22q22 90 71 224t105 255h123q-66 -254 -103 -501h-184z" />
+<glyph unicode="&#x201d;" horiz-adv-x="717" d="M309 1462l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 1462l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x201e;" horiz-adv-x="829" d="M25 0zM309 238l15 -22q-26 -100 -75 -232.5t-102 -246.5h-122q70 285 102 501h182zM678 238l14 -22q-24 -91 -72 -224t-104 -255h-125q26 100 59 254t46 247h182z" />
+<glyph unicode="&#x2022;" horiz-adv-x="770" d="M164 748q0 121 56.5 184t164.5 63q105 0 163 -62t58 -185q0 -119 -57.5 -183.5t-163.5 -64.5q-107 0 -164 65.5t-57 182.5z" />
+<glyph unicode="&#x2026;" horiz-adv-x="1606" d="M152 0zM152 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM682 106q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5zM1213 106 q0 67 30.5 101.5t87.5 34.5q58 0 90.5 -34.5t32.5 -101.5q0 -65 -33 -100t-90 -35q-51 0 -84.5 31.5t-33.5 103.5z" />
+<glyph unicode="&#x202f;" horiz-adv-x="381" />
+<glyph unicode="&#x2039;" horiz-adv-x="623" d="M82 551l342 407l119 -69l-289 -350l289 -351l-119 -71l-342 407v27z" />
+<glyph unicode="&#x203a;" horiz-adv-x="623" d="M541 524l-344 -407l-117 71l287 351l-287 350l117 69l344 -407v-27z" />
+<glyph unicode="&#x2044;" horiz-adv-x="266" d="M655 1462l-903 -1462h-143l903 1462h143z" />
+<glyph unicode="&#x205f;" horiz-adv-x="476" />
+<glyph unicode="&#x2074;" horiz-adv-x="711" d="M692 788h-125v-202h-145v202h-402v101l408 579h139v-563h125v-117zM422 905v195q0 134 6 209q-5 -12 -17 -31.5t-27 -42l-30 -45t-26 -39.5l-168 -246h262z" />
+<glyph unicode="&#x20ac;" horiz-adv-x="1208" d="M795 1333q-319 0 -398 -403h510v-129h-524l-2 -57v-64l2 -45h463v-129h-447q37 -180 138.5 -278.5t271.5 -98.5q156 0 309 66v-150q-146 -65 -317 -65q-237 0 -381.5 134.5t-190.5 391.5h-166v129h152l-2 42v44l2 80h-152v129h164q39 261 185 407t383 146q201 0 366 -97 l-71 -139q-166 86 -295 86z" />
+<glyph unicode="&#x2122;" horiz-adv-x="1589" d="M369 741h-123v615h-209v106h543v-106h-211v-615zM969 741l-201 559h-8l6 -129v-430h-119v721h187l196 -559l203 559h180v-721h-127v420l6 137h-8l-211 -557h-104z" />
+<glyph unicode="&#x2212;" d="M104 653v138h961v-138h-961z" />
+<glyph unicode="&#xe000;" horiz-adv-x="1095" d="M0 1095h1095v-1095h-1095v1095z" />
+<glyph horiz-adv-x="1255" d="M0 0z" />
+<hkern u1="&#x22;" u2="&#x178;" k="-20" />
+<hkern u1="&#x22;" u2="&#x153;" k="123" />
+<hkern u1="&#x22;" u2="&#xfc;" k="61" />
+<hkern u1="&#x22;" u2="&#xfb;" k="61" />
+<hkern u1="&#x22;" u2="&#xfa;" k="61" />
+<hkern u1="&#x22;" u2="&#xf9;" k="61" />
+<hkern u1="&#x22;" u2="&#xf8;" k="123" />
+<hkern u1="&#x22;" u2="&#xf6;" k="123" />
+<hkern u1="&#x22;" u2="&#xf5;" k="123" />
+<hkern u1="&#x22;" u2="&#xf4;" k="123" />
+<hkern u1="&#x22;" u2="&#xf3;" k="123" />
+<hkern u1="&#x22;" u2="&#xf2;" k="123" />
+<hkern u1="&#x22;" u2="&#xeb;" k="123" />
+<hkern u1="&#x22;" u2="&#xea;" k="123" />
+<hkern u1="&#x22;" u2="&#xe9;" k="123" />
+<hkern u1="&#x22;" u2="&#xe8;" k="123" />
+<hkern u1="&#x22;" u2="&#xe7;" k="123" />
+<hkern u1="&#x22;" u2="&#xe6;" k="82" />
+<hkern u1="&#x22;" u2="&#xe5;" k="82" />
+<hkern u1="&#x22;" u2="&#xe4;" k="82" />
+<hkern u1="&#x22;" u2="&#xe3;" k="82" />
+<hkern u1="&#x22;" u2="&#xe2;" k="82" />
+<hkern u1="&#x22;" u2="&#xe1;" k="82" />
+<hkern u1="&#x22;" u2="&#xe0;" k="123" />
+<hkern u1="&#x22;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x22;" u2="&#xc5;" k="143" />
+<hkern u1="&#x22;" u2="&#xc4;" k="143" />
+<hkern u1="&#x22;" u2="&#xc3;" k="143" />
+<hkern u1="&#x22;" u2="&#xc2;" k="143" />
+<hkern u1="&#x22;" u2="&#xc1;" k="143" />
+<hkern u1="&#x22;" u2="&#xc0;" k="143" />
+<hkern u1="&#x22;" u2="u" k="61" />
+<hkern u1="&#x22;" u2="s" k="61" />
+<hkern u1="&#x22;" u2="r" k="61" />
+<hkern u1="&#x22;" u2="q" k="123" />
+<hkern u1="&#x22;" u2="p" k="61" />
+<hkern u1="&#x22;" u2="o" k="123" />
+<hkern u1="&#x22;" u2="n" k="61" />
+<hkern u1="&#x22;" u2="m" k="61" />
+<hkern u1="&#x22;" u2="g" k="61" />
+<hkern u1="&#x22;" u2="e" k="123" />
+<hkern u1="&#x22;" u2="d" k="123" />
+<hkern u1="&#x22;" u2="c" k="123" />
+<hkern u1="&#x22;" u2="a" k="82" />
+<hkern u1="&#x22;" u2="Y" k="-20" />
+<hkern u1="&#x22;" u2="W" k="-41" />
+<hkern u1="&#x22;" u2="V" k="-41" />
+<hkern u1="&#x22;" u2="T" k="-41" />
+<hkern u1="&#x22;" u2="A" k="143" />
+<hkern u1="&#x27;" u2="&#x178;" k="-20" />
+<hkern u1="&#x27;" u2="&#x153;" k="123" />
+<hkern u1="&#x27;" u2="&#xfc;" k="61" />
+<hkern u1="&#x27;" u2="&#xfb;" k="61" />
+<hkern u1="&#x27;" u2="&#xfa;" k="61" />
+<hkern u1="&#x27;" u2="&#xf9;" k="61" />
+<hkern u1="&#x27;" u2="&#xf8;" k="123" />
+<hkern u1="&#x27;" u2="&#xf6;" k="123" />
+<hkern u1="&#x27;" u2="&#xf5;" k="123" />
+<hkern u1="&#x27;" u2="&#xf4;" k="123" />
+<hkern u1="&#x27;" u2="&#xf3;" k="123" />
+<hkern u1="&#x27;" u2="&#xf2;" k="123" />
+<hkern u1="&#x27;" u2="&#xeb;" k="123" />
+<hkern u1="&#x27;" u2="&#xea;" k="123" />
+<hkern u1="&#x27;" u2="&#xe9;" k="123" />
+<hkern u1="&#x27;" u2="&#xe8;" k="123" />
+<hkern u1="&#x27;" u2="&#xe7;" k="123" />
+<hkern u1="&#x27;" u2="&#xe6;" k="82" />
+<hkern u1="&#x27;" u2="&#xe5;" k="82" />
+<hkern u1="&#x27;" u2="&#xe4;" k="82" />
+<hkern u1="&#x27;" u2="&#xe3;" k="82" />
+<hkern u1="&#x27;" u2="&#xe2;" k="82" />
+<hkern u1="&#x27;" u2="&#xe1;" k="82" />
+<hkern u1="&#x27;" u2="&#xe0;" k="123" />
+<hkern u1="&#x27;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x27;" u2="&#xc5;" k="143" />
+<hkern u1="&#x27;" u2="&#xc4;" k="143" />
+<hkern u1="&#x27;" u2="&#xc3;" k="143" />
+<hkern u1="&#x27;" u2="&#xc2;" k="143" />
+<hkern u1="&#x27;" u2="&#xc1;" k="143" />
+<hkern u1="&#x27;" u2="&#xc0;" k="143" />
+<hkern u1="&#x27;" u2="u" k="61" />
+<hkern u1="&#x27;" u2="s" k="61" />
+<hkern u1="&#x27;" u2="r" k="61" />
+<hkern u1="&#x27;" u2="q" k="123" />
+<hkern u1="&#x27;" u2="p" k="61" />
+<hkern u1="&#x27;" u2="o" k="123" />
+<hkern u1="&#x27;" u2="n" k="61" />
+<hkern u1="&#x27;" u2="m" k="61" />
+<hkern u1="&#x27;" u2="g" k="61" />
+<hkern u1="&#x27;" u2="e" k="123" />
+<hkern u1="&#x27;" u2="d" k="123" />
+<hkern u1="&#x27;" u2="c" k="123" />
+<hkern u1="&#x27;" u2="a" k="82" />
+<hkern u1="&#x27;" u2="Y" k="-20" />
+<hkern u1="&#x27;" u2="W" k="-41" />
+<hkern u1="&#x27;" u2="V" k="-41" />
+<hkern u1="&#x27;" u2="T" k="-41" />
+<hkern u1="&#x27;" u2="A" k="143" />
+<hkern u1="&#x28;" u2="J" k="-184" />
+<hkern u1="&#x2c;" u2="&#x178;" k="123" />
+<hkern u1="&#x2c;" u2="&#x152;" k="102" />
+<hkern u1="&#x2c;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2c;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2c;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2c;" u2="&#xda;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2c;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2c;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2c;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2c;" u2="Y" k="123" />
+<hkern u1="&#x2c;" u2="W" k="123" />
+<hkern u1="&#x2c;" u2="V" k="123" />
+<hkern u1="&#x2c;" u2="U" k="41" />
+<hkern u1="&#x2c;" u2="T" k="143" />
+<hkern u1="&#x2c;" u2="Q" k="102" />
+<hkern u1="&#x2c;" u2="O" k="102" />
+<hkern u1="&#x2c;" u2="G" k="102" />
+<hkern u1="&#x2c;" u2="C" k="102" />
+<hkern u1="&#x2d;" u2="T" k="82" />
+<hkern u1="&#x2e;" u2="&#x178;" k="123" />
+<hkern u1="&#x2e;" u2="&#x152;" k="102" />
+<hkern u1="&#x2e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x2e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x2e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x2e;" u2="&#xda;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x2e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x2e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x2e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x2e;" u2="Y" k="123" />
+<hkern u1="&#x2e;" u2="W" k="123" />
+<hkern u1="&#x2e;" u2="V" k="123" />
+<hkern u1="&#x2e;" u2="U" k="41" />
+<hkern u1="&#x2e;" u2="T" k="143" />
+<hkern u1="&#x2e;" u2="Q" k="102" />
+<hkern u1="&#x2e;" u2="O" k="102" />
+<hkern u1="&#x2e;" u2="G" k="102" />
+<hkern u1="&#x2e;" u2="C" k="102" />
+<hkern u1="A" u2="&#x201d;" k="143" />
+<hkern u1="A" u2="&#x2019;" k="143" />
+<hkern u1="A" u2="&#x178;" k="123" />
+<hkern u1="A" u2="&#x152;" k="41" />
+<hkern u1="A" u2="&#xdd;" k="123" />
+<hkern u1="A" u2="&#xd8;" k="41" />
+<hkern u1="A" u2="&#xd6;" k="41" />
+<hkern u1="A" u2="&#xd5;" k="41" />
+<hkern u1="A" u2="&#xd4;" k="41" />
+<hkern u1="A" u2="&#xd3;" k="41" />
+<hkern u1="A" u2="&#xd2;" k="41" />
+<hkern u1="A" u2="&#xc7;" k="41" />
+<hkern u1="A" u2="Y" k="123" />
+<hkern u1="A" u2="W" k="82" />
+<hkern u1="A" u2="V" k="82" />
+<hkern u1="A" u2="T" k="143" />
+<hkern u1="A" u2="Q" k="41" />
+<hkern u1="A" u2="O" k="41" />
+<hkern u1="A" u2="J" k="-266" />
+<hkern u1="A" u2="G" k="41" />
+<hkern u1="A" u2="C" k="41" />
+<hkern u1="A" u2="&#x27;" k="143" />
+<hkern u1="A" u2="&#x22;" k="143" />
+<hkern u1="B" u2="&#x201e;" k="82" />
+<hkern u1="B" u2="&#x201a;" k="82" />
+<hkern u1="B" u2="&#x178;" k="20" />
+<hkern u1="B" u2="&#xdd;" k="20" />
+<hkern u1="B" u2="&#xc5;" k="41" />
+<hkern u1="B" u2="&#xc4;" k="41" />
+<hkern u1="B" u2="&#xc3;" k="41" />
+<hkern u1="B" u2="&#xc2;" k="41" />
+<hkern u1="B" u2="&#xc1;" k="41" />
+<hkern u1="B" u2="&#xc0;" k="41" />
+<hkern u1="B" u2="Z" k="20" />
+<hkern u1="B" u2="Y" k="20" />
+<hkern u1="B" u2="X" k="41" />
+<hkern u1="B" u2="W" k="20" />
+<hkern u1="B" u2="V" k="20" />
+<hkern u1="B" u2="T" k="61" />
+<hkern u1="B" u2="A" k="41" />
+<hkern u1="B" u2="&#x2e;" k="82" />
+<hkern u1="B" u2="&#x2c;" k="82" />
+<hkern u1="C" u2="&#x152;" k="41" />
+<hkern u1="C" u2="&#xd8;" k="41" />
+<hkern u1="C" u2="&#xd6;" k="41" />
+<hkern u1="C" u2="&#xd5;" k="41" />
+<hkern u1="C" u2="&#xd4;" k="41" />
+<hkern u1="C" u2="&#xd3;" k="41" />
+<hkern u1="C" u2="&#xd2;" k="41" />
+<hkern u1="C" u2="&#xc7;" k="41" />
+<hkern u1="C" u2="Q" k="41" />
+<hkern u1="C" u2="O" k="41" />
+<hkern u1="C" u2="G" k="41" />
+<hkern u1="C" u2="C" k="41" />
+<hkern u1="D" u2="&#x201e;" k="82" />
+<hkern u1="D" u2="&#x201a;" k="82" />
+<hkern u1="D" u2="&#x178;" k="20" />
+<hkern u1="D" u2="&#xdd;" k="20" />
+<hkern u1="D" u2="&#xc5;" k="41" />
+<hkern u1="D" u2="&#xc4;" k="41" />
+<hkern u1="D" u2="&#xc3;" k="41" />
+<hkern u1="D" u2="&#xc2;" k="41" />
+<hkern u1="D" u2="&#xc1;" k="41" />
+<hkern u1="D" u2="&#xc0;" k="41" />
+<hkern u1="D" u2="Z" k="20" />
+<hkern u1="D" u2="Y" k="20" />
+<hkern u1="D" u2="X" k="41" />
+<hkern u1="D" u2="W" k="20" />
+<hkern u1="D" u2="V" k="20" />
+<hkern u1="D" u2="T" k="61" />
+<hkern u1="D" u2="A" k="41" />
+<hkern u1="D" u2="&#x2e;" k="82" />
+<hkern u1="D" u2="&#x2c;" k="82" />
+<hkern u1="E" u2="J" k="-123" />
+<hkern u1="F" u2="&#x201e;" k="123" />
+<hkern u1="F" u2="&#x201a;" k="123" />
+<hkern u1="F" u2="&#xc5;" k="41" />
+<hkern u1="F" u2="&#xc4;" k="41" />
+<hkern u1="F" u2="&#xc3;" k="41" />
+<hkern u1="F" u2="&#xc2;" k="41" />
+<hkern u1="F" u2="&#xc1;" k="41" />
+<hkern u1="F" u2="&#xc0;" k="41" />
+<hkern u1="F" u2="A" k="41" />
+<hkern u1="F" u2="&#x3f;" k="-41" />
+<hkern u1="F" u2="&#x2e;" k="123" />
+<hkern u1="F" u2="&#x2c;" k="123" />
+<hkern u1="K" u2="&#x152;" k="41" />
+<hkern u1="K" u2="&#xd8;" k="41" />
+<hkern u1="K" u2="&#xd6;" k="41" />
+<hkern u1="K" u2="&#xd5;" k="41" />
+<hkern u1="K" u2="&#xd4;" k="41" />
+<hkern u1="K" u2="&#xd3;" k="41" />
+<hkern u1="K" u2="&#xd2;" k="41" />
+<hkern u1="K" u2="&#xc7;" k="41" />
+<hkern u1="K" u2="Q" k="41" />
+<hkern u1="K" u2="O" k="41" />
+<hkern u1="K" u2="G" k="41" />
+<hkern u1="K" u2="C" k="41" />
+<hkern u1="L" u2="&#x201d;" k="164" />
+<hkern u1="L" u2="&#x2019;" k="164" />
+<hkern u1="L" u2="&#x178;" k="61" />
+<hkern u1="L" u2="&#x152;" k="41" />
+<hkern u1="L" u2="&#xdd;" k="61" />
+<hkern u1="L" u2="&#xdc;" k="20" />
+<hkern u1="L" u2="&#xdb;" k="20" />
+<hkern u1="L" u2="&#xda;" k="20" />
+<hkern u1="L" u2="&#xd9;" k="20" />
+<hkern u1="L" u2="&#xd8;" k="41" />
+<hkern u1="L" u2="&#xd6;" k="41" />
+<hkern u1="L" u2="&#xd5;" k="41" />
+<hkern u1="L" u2="&#xd4;" k="41" />
+<hkern u1="L" u2="&#xd3;" k="41" />
+<hkern u1="L" u2="&#xd2;" k="41" />
+<hkern u1="L" u2="&#xc7;" k="41" />
+<hkern u1="L" u2="Y" k="61" />
+<hkern u1="L" u2="W" k="41" />
+<hkern u1="L" u2="V" k="41" />
+<hkern u1="L" u2="U" k="20" />
+<hkern u1="L" u2="T" k="41" />
+<hkern u1="L" u2="Q" k="41" />
+<hkern u1="L" u2="O" k="41" />
+<hkern u1="L" u2="G" k="41" />
+<hkern u1="L" u2="C" k="41" />
+<hkern u1="L" u2="&#x27;" k="164" />
+<hkern u1="L" u2="&#x22;" k="164" />
+<hkern u1="O" u2="&#x201e;" k="82" />
+<hkern u1="O" u2="&#x201a;" k="82" />
+<hkern u1="O" u2="&#x178;" k="20" />
+<hkern u1="O" u2="&#xdd;" k="20" />
+<hkern u1="O" u2="&#xc5;" k="41" />
+<hkern u1="O" u2="&#xc4;" k="41" />
+<hkern u1="O" u2="&#xc3;" k="41" />
+<hkern u1="O" u2="&#xc2;" k="41" />
+<hkern u1="O" u2="&#xc1;" k="41" />
+<hkern u1="O" u2="&#xc0;" k="41" />
+<hkern u1="O" u2="Z" k="20" />
+<hkern u1="O" u2="Y" k="20" />
+<hkern u1="O" u2="X" k="41" />
+<hkern u1="O" u2="W" k="20" />
+<hkern u1="O" u2="V" k="20" />
+<hkern u1="O" u2="T" k="61" />
+<hkern u1="O" u2="A" k="41" />
+<hkern u1="O" u2="&#x2e;" k="82" />
+<hkern u1="O" u2="&#x2c;" k="82" />
+<hkern u1="P" u2="&#x201e;" k="266" />
+<hkern u1="P" u2="&#x201a;" k="266" />
+<hkern u1="P" u2="&#xc5;" k="102" />
+<hkern u1="P" u2="&#xc4;" k="102" />
+<hkern u1="P" u2="&#xc3;" k="102" />
+<hkern u1="P" u2="&#xc2;" k="102" />
+<hkern u1="P" u2="&#xc1;" k="102" />
+<hkern u1="P" u2="&#xc0;" k="102" />
+<hkern u1="P" u2="Z" k="20" />
+<hkern u1="P" u2="X" k="41" />
+<hkern u1="P" u2="A" k="102" />
+<hkern u1="P" u2="&#x2e;" k="266" />
+<hkern u1="P" u2="&#x2c;" k="266" />
+<hkern u1="Q" u2="&#x201e;" k="82" />
+<hkern u1="Q" u2="&#x201a;" k="82" />
+<hkern u1="Q" u2="&#x178;" k="20" />
+<hkern u1="Q" u2="&#xdd;" k="20" />
+<hkern u1="Q" u2="&#xc5;" k="41" />
+<hkern u1="Q" u2="&#xc4;" k="41" />
+<hkern u1="Q" u2="&#xc3;" k="41" />
+<hkern u1="Q" u2="&#xc2;" k="41" />
+<hkern u1="Q" u2="&#xc1;" k="41" />
+<hkern u1="Q" u2="&#xc0;" k="41" />
+<hkern u1="Q" u2="Z" k="20" />
+<hkern u1="Q" u2="Y" k="20" />
+<hkern u1="Q" u2="X" k="41" />
+<hkern u1="Q" u2="W" k="20" />
+<hkern u1="Q" u2="V" k="20" />
+<hkern u1="Q" u2="T" k="61" />
+<hkern u1="Q" u2="A" k="41" />
+<hkern u1="Q" u2="&#x2e;" k="82" />
+<hkern u1="Q" u2="&#x2c;" k="82" />
+<hkern u1="T" u2="&#x201e;" k="123" />
+<hkern u1="T" u2="&#x201a;" k="123" />
+<hkern u1="T" u2="&#x2014;" k="82" />
+<hkern u1="T" u2="&#x2013;" k="82" />
+<hkern u1="T" u2="&#x153;" k="143" />
+<hkern u1="T" u2="&#x152;" k="41" />
+<hkern u1="T" u2="&#xfd;" k="41" />
+<hkern u1="T" u2="&#xfc;" k="102" />
+<hkern u1="T" u2="&#xfb;" k="102" />
+<hkern u1="T" u2="&#xfa;" k="102" />
+<hkern u1="T" u2="&#xf9;" k="102" />
+<hkern u1="T" u2="&#xf8;" k="143" />
+<hkern u1="T" u2="&#xf6;" k="143" />
+<hkern u1="T" u2="&#xf5;" k="143" />
+<hkern u1="T" u2="&#xf4;" k="143" />
+<hkern u1="T" u2="&#xf3;" k="143" />
+<hkern u1="T" u2="&#xf2;" k="143" />
+<hkern u1="T" u2="&#xeb;" k="143" />
+<hkern u1="T" u2="&#xea;" k="143" />
+<hkern u1="T" u2="&#xe9;" k="143" />
+<hkern u1="T" u2="&#xe8;" k="143" />
+<hkern u1="T" u2="&#xe7;" k="143" />
+<hkern u1="T" u2="&#xe6;" k="164" />
+<hkern u1="T" u2="&#xe5;" k="164" />
+<hkern u1="T" u2="&#xe4;" k="164" />
+<hkern u1="T" u2="&#xe3;" k="164" />
+<hkern u1="T" u2="&#xe2;" k="164" />
+<hkern u1="T" u2="&#xe1;" k="164" />
+<hkern u1="T" u2="&#xe0;" k="143" />
+<hkern u1="T" u2="&#xd8;" k="41" />
+<hkern u1="T" u2="&#xd6;" k="41" />
+<hkern u1="T" u2="&#xd5;" k="41" />
+<hkern u1="T" u2="&#xd4;" k="41" />
+<hkern u1="T" u2="&#xd3;" k="41" />
+<hkern u1="T" u2="&#xd2;" k="41" />
+<hkern u1="T" u2="&#xc7;" k="41" />
+<hkern u1="T" u2="&#xc5;" k="143" />
+<hkern u1="T" u2="&#xc4;" k="143" />
+<hkern u1="T" u2="&#xc3;" k="143" />
+<hkern u1="T" u2="&#xc2;" k="143" />
+<hkern u1="T" u2="&#xc1;" k="143" />
+<hkern u1="T" u2="&#xc0;" k="143" />
+<hkern u1="T" u2="z" k="82" />
+<hkern u1="T" u2="y" k="41" />
+<hkern u1="T" u2="x" k="41" />
+<hkern u1="T" u2="w" k="41" />
+<hkern u1="T" u2="v" k="41" />
+<hkern u1="T" u2="u" k="102" />
+<hkern u1="T" u2="s" k="123" />
+<hkern u1="T" u2="r" k="102" />
+<hkern u1="T" u2="q" k="143" />
+<hkern u1="T" u2="p" k="102" />
+<hkern u1="T" u2="o" k="143" />
+<hkern u1="T" u2="n" k="102" />
+<hkern u1="T" u2="m" k="102" />
+<hkern u1="T" u2="g" k="143" />
+<hkern u1="T" u2="e" k="143" />
+<hkern u1="T" u2="d" k="143" />
+<hkern u1="T" u2="c" k="143" />
+<hkern u1="T" u2="a" k="164" />
+<hkern u1="T" u2="T" k="-41" />
+<hkern u1="T" u2="Q" k="41" />
+<hkern u1="T" u2="O" k="41" />
+<hkern u1="T" u2="G" k="41" />
+<hkern u1="T" u2="C" k="41" />
+<hkern u1="T" u2="A" k="143" />
+<hkern u1="T" u2="&#x3f;" k="-41" />
+<hkern u1="T" u2="&#x2e;" k="123" />
+<hkern u1="T" u2="&#x2d;" k="82" />
+<hkern u1="T" u2="&#x2c;" k="123" />
+<hkern u1="U" u2="&#x201e;" k="41" />
+<hkern u1="U" u2="&#x201a;" k="41" />
+<hkern u1="U" u2="&#xc5;" k="20" />
+<hkern u1="U" u2="&#xc4;" k="20" />
+<hkern u1="U" u2="&#xc3;" k="20" />
+<hkern u1="U" u2="&#xc2;" k="20" />
+<hkern u1="U" u2="&#xc1;" k="20" />
+<hkern u1="U" u2="&#xc0;" k="20" />
+<hkern u1="U" u2="A" k="20" />
+<hkern u1="U" u2="&#x2e;" k="41" />
+<hkern u1="U" u2="&#x2c;" k="41" />
+<hkern u1="V" u2="&#x201e;" k="102" />
+<hkern u1="V" u2="&#x201a;" k="102" />
+<hkern u1="V" u2="&#x153;" k="41" />
+<hkern u1="V" u2="&#x152;" k="20" />
+<hkern u1="V" u2="&#xfc;" k="20" />
+<hkern u1="V" u2="&#xfb;" k="20" />
+<hkern u1="V" u2="&#xfa;" k="20" />
+<hkern u1="V" u2="&#xf9;" k="20" />
+<hkern u1="V" u2="&#xf8;" k="41" />
+<hkern u1="V" u2="&#xf6;" k="41" />
+<hkern u1="V" u2="&#xf5;" k="41" />
+<hkern u1="V" u2="&#xf4;" k="41" />
+<hkern u1="V" u2="&#xf3;" k="41" />
+<hkern u1="V" u2="&#xf2;" k="41" />
+<hkern u1="V" u2="&#xeb;" k="41" />
+<hkern u1="V" u2="&#xea;" k="41" />
+<hkern u1="V" u2="&#xe9;" k="41" />
+<hkern u1="V" u2="&#xe8;" k="41" />
+<hkern u1="V" u2="&#xe7;" k="41" />
+<hkern u1="V" u2="&#xe6;" k="41" />
+<hkern u1="V" u2="&#xe5;" k="41" />
+<hkern u1="V" u2="&#xe4;" k="41" />
+<hkern u1="V" u2="&#xe3;" k="41" />
+<hkern u1="V" u2="&#xe2;" k="41" />
+<hkern u1="V" u2="&#xe1;" k="41" />
+<hkern u1="V" u2="&#xe0;" k="41" />
+<hkern u1="V" u2="&#xd8;" k="20" />
+<hkern u1="V" u2="&#xd6;" k="20" />
+<hkern u1="V" u2="&#xd5;" k="20" />
+<hkern u1="V" u2="&#xd4;" k="20" />
+<hkern u1="V" u2="&#xd3;" k="20" />
+<hkern u1="V" u2="&#xd2;" k="20" />
+<hkern u1="V" u2="&#xc7;" k="20" />
+<hkern u1="V" u2="&#xc5;" k="82" />
+<hkern u1="V" u2="&#xc4;" k="82" />
+<hkern u1="V" u2="&#xc3;" k="82" />
+<hkern u1="V" u2="&#xc2;" k="82" />
+<hkern u1="V" u2="&#xc1;" k="82" />
+<hkern u1="V" u2="&#xc0;" k="82" />
+<hkern u1="V" u2="u" k="20" />
+<hkern u1="V" u2="s" k="20" />
+<hkern u1="V" u2="r" k="20" />
+<hkern u1="V" u2="q" k="41" />
+<hkern u1="V" u2="p" k="20" />
+<hkern u1="V" u2="o" k="41" />
+<hkern u1="V" u2="n" k="20" />
+<hkern u1="V" u2="m" k="20" />
+<hkern u1="V" u2="g" k="20" />
+<hkern u1="V" u2="e" k="41" />
+<hkern u1="V" u2="d" k="41" />
+<hkern u1="V" u2="c" k="41" />
+<hkern u1="V" u2="a" k="41" />
+<hkern u1="V" u2="Q" k="20" />
+<hkern u1="V" u2="O" k="20" />
+<hkern u1="V" u2="G" k="20" />
+<hkern u1="V" u2="C" k="20" />
+<hkern u1="V" u2="A" k="82" />
+<hkern u1="V" u2="&#x3f;" k="-41" />
+<hkern u1="V" u2="&#x2e;" k="102" />
+<hkern u1="V" u2="&#x2c;" k="102" />
+<hkern u1="W" u2="&#x201e;" k="102" />
+<hkern u1="W" u2="&#x201a;" k="102" />
+<hkern u1="W" u2="&#x153;" k="41" />
+<hkern u1="W" u2="&#x152;" k="20" />
+<hkern u1="W" u2="&#xfc;" k="20" />
+<hkern u1="W" u2="&#xfb;" k="20" />
+<hkern u1="W" u2="&#xfa;" k="20" />
+<hkern u1="W" u2="&#xf9;" k="20" />
+<hkern u1="W" u2="&#xf8;" k="41" />
+<hkern u1="W" u2="&#xf6;" k="41" />
+<hkern u1="W" u2="&#xf5;" k="41" />
+<hkern u1="W" u2="&#xf4;" k="41" />
+<hkern u1="W" u2="&#xf3;" k="41" />
+<hkern u1="W" u2="&#xf2;" k="41" />
+<hkern u1="W" u2="&#xeb;" k="41" />
+<hkern u1="W" u2="&#xea;" k="41" />
+<hkern u1="W" u2="&#xe9;" k="41" />
+<hkern u1="W" u2="&#xe8;" k="41" />
+<hkern u1="W" u2="&#xe7;" k="41" />
+<hkern u1="W" u2="&#xe6;" k="41" />
+<hkern u1="W" u2="&#xe5;" k="41" />
+<hkern u1="W" u2="&#xe4;" k="41" />
+<hkern u1="W" u2="&#xe3;" k="41" />
+<hkern u1="W" u2="&#xe2;" k="41" />
+<hkern u1="W" u2="&#xe1;" k="41" />
+<hkern u1="W" u2="&#xe0;" k="41" />
+<hkern u1="W" u2="&#xd8;" k="20" />
+<hkern u1="W" u2="&#xd6;" k="20" />
+<hkern u1="W" u2="&#xd5;" k="20" />
+<hkern u1="W" u2="&#xd4;" k="20" />
+<hkern u1="W" u2="&#xd3;" k="20" />
+<hkern u1="W" u2="&#xd2;" k="20" />
+<hkern u1="W" u2="&#xc7;" k="20" />
+<hkern u1="W" u2="&#xc5;" k="82" />
+<hkern u1="W" u2="&#xc4;" k="82" />
+<hkern u1="W" u2="&#xc3;" k="82" />
+<hkern u1="W" u2="&#xc2;" k="82" />
+<hkern u1="W" u2="&#xc1;" k="82" />
+<hkern u1="W" u2="&#xc0;" k="82" />
+<hkern u1="W" u2="u" k="20" />
+<hkern u1="W" u2="s" k="20" />
+<hkern u1="W" u2="r" k="20" />
+<hkern u1="W" u2="q" k="41" />
+<hkern u1="W" u2="p" k="20" />
+<hkern u1="W" u2="o" k="41" />
+<hkern u1="W" u2="n" k="20" />
+<hkern u1="W" u2="m" k="20" />
+<hkern u1="W" u2="g" k="20" />
+<hkern u1="W" u2="e" k="41" />
+<hkern u1="W" u2="d" k="41" />
+<hkern u1="W" u2="c" k="41" />
+<hkern u1="W" u2="a" k="41" />
+<hkern u1="W" u2="Q" k="20" />
+<hkern u1="W" u2="O" k="20" />
+<hkern u1="W" u2="G" k="20" />
+<hkern u1="W" u2="C" k="20" />
+<hkern u1="W" u2="A" k="82" />
+<hkern u1="W" u2="&#x3f;" k="-41" />
+<hkern u1="W" u2="&#x2e;" k="102" />
+<hkern u1="W" u2="&#x2c;" k="102" />
+<hkern u1="X" u2="&#x152;" k="41" />
+<hkern u1="X" u2="&#xd8;" k="41" />
+<hkern u1="X" u2="&#xd6;" k="41" />
+<hkern u1="X" u2="&#xd5;" k="41" />
+<hkern u1="X" u2="&#xd4;" k="41" />
+<hkern u1="X" u2="&#xd3;" k="41" />
+<hkern u1="X" u2="&#xd2;" k="41" />
+<hkern u1="X" u2="&#xc7;" k="41" />
+<hkern u1="X" u2="Q" k="41" />
+<hkern u1="X" u2="O" k="41" />
+<hkern u1="X" u2="G" k="41" />
+<hkern u1="X" u2="C" k="41" />
+<hkern u1="Y" u2="&#x201e;" k="123" />
+<hkern u1="Y" u2="&#x201a;" k="123" />
+<hkern u1="Y" u2="&#x153;" k="102" />
+<hkern u1="Y" u2="&#x152;" k="41" />
+<hkern u1="Y" u2="&#xfc;" k="61" />
+<hkern u1="Y" u2="&#xfb;" k="61" />
+<hkern u1="Y" u2="&#xfa;" k="61" />
+<hkern u1="Y" u2="&#xf9;" k="61" />
+<hkern u1="Y" u2="&#xf8;" k="102" />
+<hkern u1="Y" u2="&#xf6;" k="102" />
+<hkern u1="Y" u2="&#xf5;" k="102" />
+<hkern u1="Y" u2="&#xf4;" k="102" />
+<hkern u1="Y" u2="&#xf3;" k="102" />
+<hkern u1="Y" u2="&#xf2;" k="102" />
+<hkern u1="Y" u2="&#xeb;" k="102" />
+<hkern u1="Y" u2="&#xea;" k="102" />
+<hkern u1="Y" u2="&#xe9;" k="102" />
+<hkern u1="Y" u2="&#xe8;" k="102" />
+<hkern u1="Y" u2="&#xe7;" k="102" />
+<hkern u1="Y" u2="&#xe6;" k="102" />
+<hkern u1="Y" u2="&#xe5;" k="102" />
+<hkern u1="Y" u2="&#xe4;" k="102" />
+<hkern u1="Y" u2="&#xe3;" k="102" />
+<hkern u1="Y" u2="&#xe2;" k="102" />
+<hkern u1="Y" u2="&#xe1;" k="102" />
+<hkern u1="Y" u2="&#xe0;" k="102" />
+<hkern u1="Y" u2="&#xd8;" k="41" />
+<hkern u1="Y" u2="&#xd6;" k="41" />
+<hkern u1="Y" u2="&#xd5;" k="41" />
+<hkern u1="Y" u2="&#xd4;" k="41" />
+<hkern u1="Y" u2="&#xd3;" k="41" />
+<hkern u1="Y" u2="&#xd2;" k="41" />
+<hkern u1="Y" u2="&#xc7;" k="41" />
+<hkern u1="Y" u2="&#xc5;" k="123" />
+<hkern u1="Y" u2="&#xc4;" k="123" />
+<hkern u1="Y" u2="&#xc3;" k="123" />
+<hkern u1="Y" u2="&#xc2;" k="123" />
+<hkern u1="Y" u2="&#xc1;" k="123" />
+<hkern u1="Y" u2="&#xc0;" k="123" />
+<hkern u1="Y" u2="z" k="41" />
+<hkern u1="Y" u2="u" k="61" />
+<hkern u1="Y" u2="s" k="82" />
+<hkern u1="Y" u2="r" k="61" />
+<hkern u1="Y" u2="q" k="102" />
+<hkern u1="Y" u2="p" k="61" />
+<hkern u1="Y" u2="o" k="102" />
+<hkern u1="Y" u2="n" k="61" />
+<hkern u1="Y" u2="m" k="61" />
+<hkern u1="Y" u2="g" k="41" />
+<hkern u1="Y" u2="e" k="102" />
+<hkern u1="Y" u2="d" k="102" />
+<hkern u1="Y" u2="c" k="102" />
+<hkern u1="Y" u2="a" k="102" />
+<hkern u1="Y" u2="Q" k="41" />
+<hkern u1="Y" u2="O" k="41" />
+<hkern u1="Y" u2="G" k="41" />
+<hkern u1="Y" u2="C" k="41" />
+<hkern u1="Y" u2="A" k="123" />
+<hkern u1="Y" u2="&#x3f;" k="-41" />
+<hkern u1="Y" u2="&#x2e;" k="123" />
+<hkern u1="Y" u2="&#x2c;" k="123" />
+<hkern u1="Z" u2="&#x152;" k="20" />
+<hkern u1="Z" u2="&#xd8;" k="20" />
+<hkern u1="Z" u2="&#xd6;" k="20" />
+<hkern u1="Z" u2="&#xd5;" k="20" />
+<hkern u1="Z" u2="&#xd4;" k="20" />
+<hkern u1="Z" u2="&#xd3;" k="20" />
+<hkern u1="Z" u2="&#xd2;" k="20" />
+<hkern u1="Z" u2="&#xc7;" k="20" />
+<hkern u1="Z" u2="Q" k="20" />
+<hkern u1="Z" u2="O" k="20" />
+<hkern u1="Z" u2="G" k="20" />
+<hkern u1="Z" u2="C" k="20" />
+<hkern u1="[" u2="J" k="-184" />
+<hkern u1="a" u2="&#x201d;" k="20" />
+<hkern u1="a" u2="&#x2019;" k="20" />
+<hkern u1="a" u2="&#x27;" k="20" />
+<hkern u1="a" u2="&#x22;" k="20" />
+<hkern u1="b" u2="&#x201d;" k="20" />
+<hkern u1="b" u2="&#x2019;" k="20" />
+<hkern u1="b" u2="&#xfd;" k="41" />
+<hkern u1="b" u2="z" k="20" />
+<hkern u1="b" u2="y" k="41" />
+<hkern u1="b" u2="x" k="41" />
+<hkern u1="b" u2="w" k="41" />
+<hkern u1="b" u2="v" k="41" />
+<hkern u1="b" u2="&#x27;" k="20" />
+<hkern u1="b" u2="&#x22;" k="20" />
+<hkern u1="c" u2="&#x201d;" k="-41" />
+<hkern u1="c" u2="&#x2019;" k="-41" />
+<hkern u1="c" u2="&#x27;" k="-41" />
+<hkern u1="c" u2="&#x22;" k="-41" />
+<hkern u1="e" u2="&#x201d;" k="20" />
+<hkern u1="e" u2="&#x2019;" k="20" />
+<hkern u1="e" u2="&#xfd;" k="41" />
+<hkern u1="e" u2="z" k="20" />
+<hkern u1="e" u2="y" k="41" />
+<hkern u1="e" u2="x" k="41" />
+<hkern u1="e" u2="w" k="41" />
+<hkern u1="e" u2="v" k="41" />
+<hkern u1="e" u2="&#x27;" k="20" />
+<hkern u1="e" u2="&#x22;" k="20" />
+<hkern u1="f" u2="&#x201d;" k="-123" />
+<hkern u1="f" u2="&#x2019;" k="-123" />
+<hkern u1="f" u2="&#x27;" k="-123" />
+<hkern u1="f" u2="&#x22;" k="-123" />
+<hkern u1="h" u2="&#x201d;" k="20" />
+<hkern u1="h" u2="&#x2019;" k="20" />
+<hkern u1="h" u2="&#x27;" k="20" />
+<hkern u1="h" u2="&#x22;" k="20" />
+<hkern u1="k" u2="&#x153;" k="41" />
+<hkern u1="k" u2="&#xf8;" k="41" />
+<hkern u1="k" u2="&#xf6;" k="41" />
+<hkern u1="k" u2="&#xf5;" k="41" />
+<hkern u1="k" u2="&#xf4;" k="41" />
+<hkern u1="k" u2="&#xf3;" k="41" />
+<hkern u1="k" u2="&#xf2;" k="41" />
+<hkern u1="k" u2="&#xeb;" k="41" />
+<hkern u1="k" u2="&#xea;" k="41" />
+<hkern u1="k" u2="&#xe9;" k="41" />
+<hkern u1="k" u2="&#xe8;" k="41" />
+<hkern u1="k" u2="&#xe7;" k="41" />
+<hkern u1="k" u2="&#xe0;" k="41" />
+<hkern u1="k" u2="q" k="41" />
+<hkern u1="k" u2="o" k="41" />
+<hkern u1="k" u2="e" k="41" />
+<hkern u1="k" u2="d" k="41" />
+<hkern u1="k" u2="c" k="41" />
+<hkern u1="m" u2="&#x201d;" k="20" />
+<hkern u1="m" u2="&#x2019;" k="20" />
+<hkern u1="m" u2="&#x27;" k="20" />
+<hkern u1="m" u2="&#x22;" k="20" />
+<hkern u1="n" u2="&#x201d;" k="20" />
+<hkern u1="n" u2="&#x2019;" k="20" />
+<hkern u1="n" u2="&#x27;" k="20" />
+<hkern u1="n" u2="&#x22;" k="20" />
+<hkern u1="o" u2="&#x201d;" k="20" />
+<hkern u1="o" u2="&#x2019;" k="20" />
+<hkern u1="o" u2="&#xfd;" k="41" />
+<hkern u1="o" u2="z" k="20" />
+<hkern u1="o" u2="y" k="41" />
+<hkern u1="o" u2="x" k="41" />
+<hkern u1="o" u2="w" k="41" />
+<hkern u1="o" u2="v" k="41" />
+<hkern u1="o" u2="&#x27;" k="20" />
+<hkern u1="o" u2="&#x22;" k="20" />
+<hkern u1="p" u2="&#x201d;" k="20" />
+<hkern u1="p" u2="&#x2019;" k="20" />
+<hkern u1="p" u2="&#xfd;" k="41" />
+<hkern u1="p" u2="z" k="20" />
+<hkern u1="p" u2="y" k="41" />
+<hkern u1="p" u2="x" k="41" />
+<hkern u1="p" u2="w" k="41" />
+<hkern u1="p" u2="v" k="41" />
+<hkern u1="p" u2="&#x27;" k="20" />
+<hkern u1="p" u2="&#x22;" k="20" />
+<hkern u1="r" u2="&#x201d;" k="-82" />
+<hkern u1="r" u2="&#x2019;" k="-82" />
+<hkern u1="r" u2="&#x153;" k="41" />
+<hkern u1="r" u2="&#xf8;" k="41" />
+<hkern u1="r" u2="&#xf6;" k="41" />
+<hkern u1="r" u2="&#xf5;" k="41" />
+<hkern u1="r" u2="&#xf4;" k="41" />
+<hkern u1="r" u2="&#xf3;" k="41" />
+<hkern u1="r" u2="&#xf2;" k="41" />
+<hkern u1="r" u2="&#xeb;" k="41" />
+<hkern u1="r" u2="&#xea;" k="41" />
+<hkern u1="r" u2="&#xe9;" k="41" />
+<hkern u1="r" u2="&#xe8;" k="41" />
+<hkern u1="r" u2="&#xe7;" k="41" />
+<hkern u1="r" u2="&#xe6;" k="41" />
+<hkern u1="r" u2="&#xe5;" k="41" />
+<hkern u1="r" u2="&#xe4;" k="41" />
+<hkern u1="r" u2="&#xe3;" k="41" />
+<hkern u1="r" u2="&#xe2;" k="41" />
+<hkern u1="r" u2="&#xe1;" k="41" />
+<hkern u1="r" u2="&#xe0;" k="41" />
+<hkern u1="r" u2="q" k="41" />
+<hkern u1="r" u2="o" k="41" />
+<hkern u1="r" u2="g" k="20" />
+<hkern u1="r" u2="e" k="41" />
+<hkern u1="r" u2="d" k="41" />
+<hkern u1="r" u2="c" k="41" />
+<hkern u1="r" u2="a" k="41" />
+<hkern u1="r" u2="&#x27;" k="-82" />
+<hkern u1="r" u2="&#x22;" k="-82" />
+<hkern u1="t" u2="&#x201d;" k="-41" />
+<hkern u1="t" u2="&#x2019;" k="-41" />
+<hkern u1="t" u2="&#x27;" k="-41" />
+<hkern u1="t" u2="&#x22;" k="-41" />
+<hkern u1="v" u2="&#x201e;" k="82" />
+<hkern u1="v" u2="&#x201d;" k="-82" />
+<hkern u1="v" u2="&#x201a;" k="82" />
+<hkern u1="v" u2="&#x2019;" k="-82" />
+<hkern u1="v" u2="&#x3f;" k="-41" />
+<hkern u1="v" u2="&#x2e;" k="82" />
+<hkern u1="v" u2="&#x2c;" k="82" />
+<hkern u1="v" u2="&#x27;" k="-82" />
+<hkern u1="v" u2="&#x22;" k="-82" />
+<hkern u1="w" u2="&#x201e;" k="82" />
+<hkern u1="w" u2="&#x201d;" k="-82" />
+<hkern u1="w" u2="&#x201a;" k="82" />
+<hkern u1="w" u2="&#x2019;" k="-82" />
+<hkern u1="w" u2="&#x3f;" k="-41" />
+<hkern u1="w" u2="&#x2e;" k="82" />
+<hkern u1="w" u2="&#x2c;" k="82" />
+<hkern u1="w" u2="&#x27;" k="-82" />
+<hkern u1="w" u2="&#x22;" k="-82" />
+<hkern u1="x" u2="&#x153;" k="41" />
+<hkern u1="x" u2="&#xf8;" k="41" />
+<hkern u1="x" u2="&#xf6;" k="41" />
+<hkern u1="x" u2="&#xf5;" k="41" />
+<hkern u1="x" u2="&#xf4;" k="41" />
+<hkern u1="x" u2="&#xf3;" k="41" />
+<hkern u1="x" u2="&#xf2;" k="41" />
+<hkern u1="x" u2="&#xeb;" k="41" />
+<hkern u1="x" u2="&#xea;" k="41" />
+<hkern u1="x" u2="&#xe9;" k="41" />
+<hkern u1="x" u2="&#xe8;" k="41" />
+<hkern u1="x" u2="&#xe7;" k="41" />
+<hkern u1="x" u2="&#xe0;" k="41" />
+<hkern u1="x" u2="q" k="41" />
+<hkern u1="x" u2="o" k="41" />
+<hkern u1="x" u2="e" k="41" />
+<hkern u1="x" u2="d" k="41" />
+<hkern u1="x" u2="c" k="41" />
+<hkern u1="y" u2="&#x201e;" k="82" />
+<hkern u1="y" u2="&#x201d;" k="-82" />
+<hkern u1="y" u2="&#x201a;" k="82" />
+<hkern u1="y" u2="&#x2019;" k="-82" />
+<hkern u1="y" u2="&#x3f;" k="-41" />
+<hkern u1="y" u2="&#x2e;" k="82" />
+<hkern u1="y" u2="&#x2c;" k="82" />
+<hkern u1="y" u2="&#x27;" k="-82" />
+<hkern u1="y" u2="&#x22;" k="-82" />
+<hkern u1="&#x7b;" u2="J" k="-184" />
+<hkern u1="&#xc0;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc0;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc0;" u2="&#x178;" k="123" />
+<hkern u1="&#xc0;" u2="&#x152;" k="41" />
+<hkern u1="&#xc0;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc0;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc0;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc0;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc0;" u2="Y" k="123" />
+<hkern u1="&#xc0;" u2="W" k="82" />
+<hkern u1="&#xc0;" u2="V" k="82" />
+<hkern u1="&#xc0;" u2="T" k="143" />
+<hkern u1="&#xc0;" u2="Q" k="41" />
+<hkern u1="&#xc0;" u2="O" k="41" />
+<hkern u1="&#xc0;" u2="J" k="-266" />
+<hkern u1="&#xc0;" u2="G" k="41" />
+<hkern u1="&#xc0;" u2="C" k="41" />
+<hkern u1="&#xc0;" u2="&#x27;" k="143" />
+<hkern u1="&#xc0;" u2="&#x22;" k="143" />
+<hkern u1="&#xc1;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc1;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc1;" u2="&#x178;" k="123" />
+<hkern u1="&#xc1;" u2="&#x152;" k="41" />
+<hkern u1="&#xc1;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc1;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc1;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc1;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc1;" u2="Y" k="123" />
+<hkern u1="&#xc1;" u2="W" k="82" />
+<hkern u1="&#xc1;" u2="V" k="82" />
+<hkern u1="&#xc1;" u2="T" k="143" />
+<hkern u1="&#xc1;" u2="Q" k="41" />
+<hkern u1="&#xc1;" u2="O" k="41" />
+<hkern u1="&#xc1;" u2="J" k="-266" />
+<hkern u1="&#xc1;" u2="G" k="41" />
+<hkern u1="&#xc1;" u2="C" k="41" />
+<hkern u1="&#xc1;" u2="&#x27;" k="143" />
+<hkern u1="&#xc1;" u2="&#x22;" k="143" />
+<hkern u1="&#xc2;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc2;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc2;" u2="&#x178;" k="123" />
+<hkern u1="&#xc2;" u2="&#x152;" k="41" />
+<hkern u1="&#xc2;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc2;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc2;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc2;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc2;" u2="Y" k="123" />
+<hkern u1="&#xc2;" u2="W" k="82" />
+<hkern u1="&#xc2;" u2="V" k="82" />
+<hkern u1="&#xc2;" u2="T" k="143" />
+<hkern u1="&#xc2;" u2="Q" k="41" />
+<hkern u1="&#xc2;" u2="O" k="41" />
+<hkern u1="&#xc2;" u2="J" k="-266" />
+<hkern u1="&#xc2;" u2="G" k="41" />
+<hkern u1="&#xc2;" u2="C" k="41" />
+<hkern u1="&#xc2;" u2="&#x27;" k="143" />
+<hkern u1="&#xc2;" u2="&#x22;" k="143" />
+<hkern u1="&#xc3;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc3;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc3;" u2="&#x178;" k="123" />
+<hkern u1="&#xc3;" u2="&#x152;" k="41" />
+<hkern u1="&#xc3;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc3;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc3;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc3;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc3;" u2="Y" k="123" />
+<hkern u1="&#xc3;" u2="W" k="82" />
+<hkern u1="&#xc3;" u2="V" k="82" />
+<hkern u1="&#xc3;" u2="T" k="143" />
+<hkern u1="&#xc3;" u2="Q" k="41" />
+<hkern u1="&#xc3;" u2="O" k="41" />
+<hkern u1="&#xc3;" u2="J" k="-266" />
+<hkern u1="&#xc3;" u2="G" k="41" />
+<hkern u1="&#xc3;" u2="C" k="41" />
+<hkern u1="&#xc3;" u2="&#x27;" k="143" />
+<hkern u1="&#xc3;" u2="&#x22;" k="143" />
+<hkern u1="&#xc4;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc4;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc4;" u2="&#x178;" k="123" />
+<hkern u1="&#xc4;" u2="&#x152;" k="41" />
+<hkern u1="&#xc4;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc4;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc4;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc4;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc4;" u2="Y" k="123" />
+<hkern u1="&#xc4;" u2="W" k="82" />
+<hkern u1="&#xc4;" u2="V" k="82" />
+<hkern u1="&#xc4;" u2="T" k="143" />
+<hkern u1="&#xc4;" u2="Q" k="41" />
+<hkern u1="&#xc4;" u2="O" k="41" />
+<hkern u1="&#xc4;" u2="J" k="-266" />
+<hkern u1="&#xc4;" u2="G" k="41" />
+<hkern u1="&#xc4;" u2="C" k="41" />
+<hkern u1="&#xc4;" u2="&#x27;" k="143" />
+<hkern u1="&#xc4;" u2="&#x22;" k="143" />
+<hkern u1="&#xc5;" u2="&#x201d;" k="143" />
+<hkern u1="&#xc5;" u2="&#x2019;" k="143" />
+<hkern u1="&#xc5;" u2="&#x178;" k="123" />
+<hkern u1="&#xc5;" u2="&#x152;" k="41" />
+<hkern u1="&#xc5;" u2="&#xdd;" k="123" />
+<hkern u1="&#xc5;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc5;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc5;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc5;" u2="Y" k="123" />
+<hkern u1="&#xc5;" u2="W" k="82" />
+<hkern u1="&#xc5;" u2="V" k="82" />
+<hkern u1="&#xc5;" u2="T" k="143" />
+<hkern u1="&#xc5;" u2="Q" k="41" />
+<hkern u1="&#xc5;" u2="O" k="41" />
+<hkern u1="&#xc5;" u2="J" k="-266" />
+<hkern u1="&#xc5;" u2="G" k="41" />
+<hkern u1="&#xc5;" u2="C" k="41" />
+<hkern u1="&#xc5;" u2="&#x27;" k="143" />
+<hkern u1="&#xc5;" u2="&#x22;" k="143" />
+<hkern u1="&#xc6;" u2="J" k="-123" />
+<hkern u1="&#xc7;" u2="&#x152;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd8;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd6;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd5;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd4;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd3;" k="41" />
+<hkern u1="&#xc7;" u2="&#xd2;" k="41" />
+<hkern u1="&#xc7;" u2="&#xc7;" k="41" />
+<hkern u1="&#xc7;" u2="Q" k="41" />
+<hkern u1="&#xc7;" u2="O" k="41" />
+<hkern u1="&#xc7;" u2="G" k="41" />
+<hkern u1="&#xc7;" u2="C" k="41" />
+<hkern u1="&#xc8;" u2="J" k="-123" />
+<hkern u1="&#xc9;" u2="J" k="-123" />
+<hkern u1="&#xca;" u2="J" k="-123" />
+<hkern u1="&#xcb;" u2="J" k="-123" />
+<hkern u1="&#xd0;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd0;" u2="&#x178;" k="20" />
+<hkern u1="&#xd0;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd0;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd0;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd0;" u2="Z" k="20" />
+<hkern u1="&#xd0;" u2="Y" k="20" />
+<hkern u1="&#xd0;" u2="X" k="41" />
+<hkern u1="&#xd0;" u2="W" k="20" />
+<hkern u1="&#xd0;" u2="V" k="20" />
+<hkern u1="&#xd0;" u2="T" k="61" />
+<hkern u1="&#xd0;" u2="A" k="41" />
+<hkern u1="&#xd0;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd0;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd2;" u2="&#x178;" k="20" />
+<hkern u1="&#xd2;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd2;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd2;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd2;" u2="Z" k="20" />
+<hkern u1="&#xd2;" u2="Y" k="20" />
+<hkern u1="&#xd2;" u2="X" k="41" />
+<hkern u1="&#xd2;" u2="W" k="20" />
+<hkern u1="&#xd2;" u2="V" k="20" />
+<hkern u1="&#xd2;" u2="T" k="61" />
+<hkern u1="&#xd2;" u2="A" k="41" />
+<hkern u1="&#xd2;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd2;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd3;" u2="&#x178;" k="20" />
+<hkern u1="&#xd3;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd3;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd3;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd3;" u2="Z" k="20" />
+<hkern u1="&#xd3;" u2="Y" k="20" />
+<hkern u1="&#xd3;" u2="X" k="41" />
+<hkern u1="&#xd3;" u2="W" k="20" />
+<hkern u1="&#xd3;" u2="V" k="20" />
+<hkern u1="&#xd3;" u2="T" k="61" />
+<hkern u1="&#xd3;" u2="A" k="41" />
+<hkern u1="&#xd3;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd3;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd4;" u2="&#x178;" k="20" />
+<hkern u1="&#xd4;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd4;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd4;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd4;" u2="Z" k="20" />
+<hkern u1="&#xd4;" u2="Y" k="20" />
+<hkern u1="&#xd4;" u2="X" k="41" />
+<hkern u1="&#xd4;" u2="W" k="20" />
+<hkern u1="&#xd4;" u2="V" k="20" />
+<hkern u1="&#xd4;" u2="T" k="61" />
+<hkern u1="&#xd4;" u2="A" k="41" />
+<hkern u1="&#xd4;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd4;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd5;" u2="&#x178;" k="20" />
+<hkern u1="&#xd5;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd5;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd5;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd5;" u2="Z" k="20" />
+<hkern u1="&#xd5;" u2="Y" k="20" />
+<hkern u1="&#xd5;" u2="X" k="41" />
+<hkern u1="&#xd5;" u2="W" k="20" />
+<hkern u1="&#xd5;" u2="V" k="20" />
+<hkern u1="&#xd5;" u2="T" k="61" />
+<hkern u1="&#xd5;" u2="A" k="41" />
+<hkern u1="&#xd5;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd5;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd6;" u2="&#x178;" k="20" />
+<hkern u1="&#xd6;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd6;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd6;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd6;" u2="Z" k="20" />
+<hkern u1="&#xd6;" u2="Y" k="20" />
+<hkern u1="&#xd6;" u2="X" k="41" />
+<hkern u1="&#xd6;" u2="W" k="20" />
+<hkern u1="&#xd6;" u2="V" k="20" />
+<hkern u1="&#xd6;" u2="T" k="61" />
+<hkern u1="&#xd6;" u2="A" k="41" />
+<hkern u1="&#xd6;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd6;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x201a;" k="82" />
+<hkern u1="&#xd8;" u2="&#x178;" k="20" />
+<hkern u1="&#xd8;" u2="&#xdd;" k="20" />
+<hkern u1="&#xd8;" u2="&#xc5;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc4;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc3;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc2;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc1;" k="41" />
+<hkern u1="&#xd8;" u2="&#xc0;" k="41" />
+<hkern u1="&#xd8;" u2="Z" k="20" />
+<hkern u1="&#xd8;" u2="Y" k="20" />
+<hkern u1="&#xd8;" u2="X" k="41" />
+<hkern u1="&#xd8;" u2="W" k="20" />
+<hkern u1="&#xd8;" u2="V" k="20" />
+<hkern u1="&#xd8;" u2="T" k="61" />
+<hkern u1="&#xd8;" u2="A" k="41" />
+<hkern u1="&#xd8;" u2="&#x2e;" k="82" />
+<hkern u1="&#xd8;" u2="&#x2c;" k="82" />
+<hkern u1="&#xd9;" u2="&#x201e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x201a;" k="41" />
+<hkern u1="&#xd9;" u2="&#xc5;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc4;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc3;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc2;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc1;" k="20" />
+<hkern u1="&#xd9;" u2="&#xc0;" k="20" />
+<hkern u1="&#xd9;" u2="A" k="20" />
+<hkern u1="&#xd9;" u2="&#x2e;" k="41" />
+<hkern u1="&#xd9;" u2="&#x2c;" k="41" />
+<hkern u1="&#xda;" u2="&#x201e;" k="41" />
+<hkern u1="&#xda;" u2="&#x201a;" k="41" />
+<hkern u1="&#xda;" u2="&#xc5;" k="20" />
+<hkern u1="&#xda;" u2="&#xc4;" k="20" />
+<hkern u1="&#xda;" u2="&#xc3;" k="20" />
+<hkern u1="&#xda;" u2="&#xc2;" k="20" />
+<hkern u1="&#xda;" u2="&#xc1;" k="20" />
+<hkern u1="&#xda;" u2="&#xc0;" k="20" />
+<hkern u1="&#xda;" u2="A" k="20" />
+<hkern u1="&#xda;" u2="&#x2e;" k="41" />
+<hkern u1="&#xda;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdb;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdb;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdb;" u2="A" k="20" />
+<hkern u1="&#xdb;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdb;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x201a;" k="41" />
+<hkern u1="&#xdc;" u2="&#xc5;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc4;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc3;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc2;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc1;" k="20" />
+<hkern u1="&#xdc;" u2="&#xc0;" k="20" />
+<hkern u1="&#xdc;" u2="A" k="20" />
+<hkern u1="&#xdc;" u2="&#x2e;" k="41" />
+<hkern u1="&#xdc;" u2="&#x2c;" k="41" />
+<hkern u1="&#xdd;" u2="&#x201e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x201a;" k="123" />
+<hkern u1="&#xdd;" u2="&#x153;" k="102" />
+<hkern u1="&#xdd;" u2="&#x152;" k="41" />
+<hkern u1="&#xdd;" u2="&#xfc;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfb;" k="61" />
+<hkern u1="&#xdd;" u2="&#xfa;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf9;" k="61" />
+<hkern u1="&#xdd;" u2="&#xf8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xf2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xeb;" k="102" />
+<hkern u1="&#xdd;" u2="&#xea;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe9;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe8;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe7;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe6;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe5;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe4;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe3;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe2;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe1;" k="102" />
+<hkern u1="&#xdd;" u2="&#xe0;" k="102" />
+<hkern u1="&#xdd;" u2="&#xd8;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd6;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd5;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd4;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd3;" k="41" />
+<hkern u1="&#xdd;" u2="&#xd2;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc7;" k="41" />
+<hkern u1="&#xdd;" u2="&#xc5;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc4;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc3;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc2;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc1;" k="123" />
+<hkern u1="&#xdd;" u2="&#xc0;" k="123" />
+<hkern u1="&#xdd;" u2="z" k="41" />
+<hkern u1="&#xdd;" u2="u" k="61" />
+<hkern u1="&#xdd;" u2="s" k="82" />
+<hkern u1="&#xdd;" u2="r" k="61" />
+<hkern u1="&#xdd;" u2="q" k="102" />
+<hkern u1="&#xdd;" u2="p" k="61" />
+<hkern u1="&#xdd;" u2="o" k="102" />
+<hkern u1="&#xdd;" u2="n" k="61" />
+<hkern u1="&#xdd;" u2="m" k="61" />
+<hkern u1="&#xdd;" u2="g" k="41" />
+<hkern u1="&#xdd;" u2="e" k="102" />
+<hkern u1="&#xdd;" u2="d" k="102" />
+<hkern u1="&#xdd;" u2="c" k="102" />
+<hkern u1="&#xdd;" u2="a" k="102" />
+<hkern u1="&#xdd;" u2="Q" k="41" />
+<hkern u1="&#xdd;" u2="O" k="41" />
+<hkern u1="&#xdd;" u2="G" k="41" />
+<hkern u1="&#xdd;" u2="C" k="41" />
+<hkern u1="&#xdd;" u2="A" k="123" />
+<hkern u1="&#xdd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xdd;" u2="&#x2e;" k="123" />
+<hkern u1="&#xdd;" u2="&#x2c;" k="123" />
+<hkern u1="&#xde;" u2="&#x201e;" k="266" />
+<hkern u1="&#xde;" u2="&#x201a;" k="266" />
+<hkern u1="&#xde;" u2="&#xc5;" k="102" />
+<hkern u1="&#xde;" u2="&#xc4;" k="102" />
+<hkern u1="&#xde;" u2="&#xc3;" k="102" />
+<hkern u1="&#xde;" u2="&#xc2;" k="102" />
+<hkern u1="&#xde;" u2="&#xc1;" k="102" />
+<hkern u1="&#xde;" u2="&#xc0;" k="102" />
+<hkern u1="&#xde;" u2="Z" k="20" />
+<hkern u1="&#xde;" u2="X" k="41" />
+<hkern u1="&#xde;" u2="A" k="102" />
+<hkern u1="&#xde;" u2="&#x2e;" k="266" />
+<hkern u1="&#xde;" u2="&#x2c;" k="266" />
+<hkern u1="&#xe0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe0;" u2="&#x27;" k="20" />
+<hkern u1="&#xe0;" u2="&#x22;" k="20" />
+<hkern u1="&#xe1;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe1;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe1;" u2="&#x27;" k="20" />
+<hkern u1="&#xe1;" u2="&#x22;" k="20" />
+<hkern u1="&#xe2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe2;" u2="&#x27;" k="20" />
+<hkern u1="&#xe2;" u2="&#x22;" k="20" />
+<hkern u1="&#xe3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe3;" u2="&#x27;" k="20" />
+<hkern u1="&#xe3;" u2="&#x22;" k="20" />
+<hkern u1="&#xe4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe4;" u2="&#x27;" k="20" />
+<hkern u1="&#xe4;" u2="&#x22;" k="20" />
+<hkern u1="&#xe5;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe5;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe5;" u2="&#x27;" k="20" />
+<hkern u1="&#xe5;" u2="&#x22;" k="20" />
+<hkern u1="&#xe8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe8;" u2="z" k="20" />
+<hkern u1="&#xe8;" u2="y" k="41" />
+<hkern u1="&#xe8;" u2="x" k="41" />
+<hkern u1="&#xe8;" u2="w" k="41" />
+<hkern u1="&#xe8;" u2="v" k="41" />
+<hkern u1="&#xe8;" u2="&#x27;" k="20" />
+<hkern u1="&#xe8;" u2="&#x22;" k="20" />
+<hkern u1="&#xe9;" u2="&#x201d;" k="20" />
+<hkern u1="&#xe9;" u2="&#x2019;" k="20" />
+<hkern u1="&#xe9;" u2="&#xfd;" k="41" />
+<hkern u1="&#xe9;" u2="z" k="20" />
+<hkern u1="&#xe9;" u2="y" k="41" />
+<hkern u1="&#xe9;" u2="x" k="41" />
+<hkern u1="&#xe9;" u2="w" k="41" />
+<hkern u1="&#xe9;" u2="v" k="41" />
+<hkern u1="&#xe9;" u2="&#x27;" k="20" />
+<hkern u1="&#xe9;" u2="&#x22;" k="20" />
+<hkern u1="&#xea;" u2="&#x201d;" k="20" />
+<hkern u1="&#xea;" u2="&#x2019;" k="20" />
+<hkern u1="&#xea;" u2="&#xfd;" k="41" />
+<hkern u1="&#xea;" u2="z" k="20" />
+<hkern u1="&#xea;" u2="y" k="41" />
+<hkern u1="&#xea;" u2="x" k="41" />
+<hkern u1="&#xea;" u2="w" k="41" />
+<hkern u1="&#xea;" u2="v" k="41" />
+<hkern u1="&#xea;" u2="&#x27;" k="20" />
+<hkern u1="&#xea;" u2="&#x22;" k="20" />
+<hkern u1="&#xeb;" u2="&#x201d;" k="20" />
+<hkern u1="&#xeb;" u2="&#x2019;" k="20" />
+<hkern u1="&#xeb;" u2="&#xfd;" k="41" />
+<hkern u1="&#xeb;" u2="z" k="20" />
+<hkern u1="&#xeb;" u2="y" k="41" />
+<hkern u1="&#xeb;" u2="x" k="41" />
+<hkern u1="&#xeb;" u2="w" k="41" />
+<hkern u1="&#xeb;" u2="v" k="41" />
+<hkern u1="&#xeb;" u2="&#x27;" k="20" />
+<hkern u1="&#xeb;" u2="&#x22;" k="20" />
+<hkern u1="&#xf0;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf0;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf0;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf0;" u2="z" k="20" />
+<hkern u1="&#xf0;" u2="y" k="41" />
+<hkern u1="&#xf0;" u2="x" k="41" />
+<hkern u1="&#xf0;" u2="w" k="41" />
+<hkern u1="&#xf0;" u2="v" k="41" />
+<hkern u1="&#xf0;" u2="&#x27;" k="20" />
+<hkern u1="&#xf0;" u2="&#x22;" k="20" />
+<hkern u1="&#xf2;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf2;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf2;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf2;" u2="z" k="20" />
+<hkern u1="&#xf2;" u2="y" k="41" />
+<hkern u1="&#xf2;" u2="x" k="41" />
+<hkern u1="&#xf2;" u2="w" k="41" />
+<hkern u1="&#xf2;" u2="v" k="41" />
+<hkern u1="&#xf2;" u2="&#x27;" k="20" />
+<hkern u1="&#xf2;" u2="&#x22;" k="20" />
+<hkern u1="&#xf3;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf3;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf3;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf3;" u2="z" k="20" />
+<hkern u1="&#xf3;" u2="y" k="41" />
+<hkern u1="&#xf3;" u2="x" k="41" />
+<hkern u1="&#xf3;" u2="w" k="41" />
+<hkern u1="&#xf3;" u2="v" k="41" />
+<hkern u1="&#xf3;" u2="&#x27;" k="20" />
+<hkern u1="&#xf3;" u2="&#x22;" k="20" />
+<hkern u1="&#xf4;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf4;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf4;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf4;" u2="z" k="20" />
+<hkern u1="&#xf4;" u2="y" k="41" />
+<hkern u1="&#xf4;" u2="x" k="41" />
+<hkern u1="&#xf4;" u2="w" k="41" />
+<hkern u1="&#xf4;" u2="v" k="41" />
+<hkern u1="&#xf4;" u2="&#x27;" k="20" />
+<hkern u1="&#xf4;" u2="&#x22;" k="20" />
+<hkern u1="&#xf6;" u2="&#x201d;" k="41" />
+<hkern u1="&#xf6;" u2="&#x2019;" k="41" />
+<hkern u1="&#xf6;" u2="&#x27;" k="41" />
+<hkern u1="&#xf6;" u2="&#x22;" k="41" />
+<hkern u1="&#xf8;" u2="&#x201d;" k="20" />
+<hkern u1="&#xf8;" u2="&#x2019;" k="20" />
+<hkern u1="&#xf8;" u2="&#xfd;" k="41" />
+<hkern u1="&#xf8;" u2="z" k="20" />
+<hkern u1="&#xf8;" u2="y" k="41" />
+<hkern u1="&#xf8;" u2="x" k="41" />
+<hkern u1="&#xf8;" u2="w" k="41" />
+<hkern u1="&#xf8;" u2="v" k="41" />
+<hkern u1="&#xf8;" u2="&#x27;" k="20" />
+<hkern u1="&#xf8;" u2="&#x22;" k="20" />
+<hkern u1="&#xfd;" u2="&#x201e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x201a;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xfd;" u2="&#x2e;" k="82" />
+<hkern u1="&#xfd;" u2="&#x2c;" k="82" />
+<hkern u1="&#xfd;" u2="&#x27;" k="-82" />
+<hkern u1="&#xfd;" u2="&#x22;" k="-82" />
+<hkern u1="&#xfe;" u2="&#x201d;" k="20" />
+<hkern u1="&#xfe;" u2="&#x2019;" k="20" />
+<hkern u1="&#xfe;" u2="&#xfd;" k="41" />
+<hkern u1="&#xfe;" u2="z" k="20" />
+<hkern u1="&#xfe;" u2="y" k="41" />
+<hkern u1="&#xfe;" u2="x" k="41" />
+<hkern u1="&#xfe;" u2="w" k="41" />
+<hkern u1="&#xfe;" u2="v" k="41" />
+<hkern u1="&#xfe;" u2="&#x27;" k="20" />
+<hkern u1="&#xfe;" u2="&#x22;" k="20" />
+<hkern u1="&#xff;" u2="&#x201e;" k="82" />
+<hkern u1="&#xff;" u2="&#x201d;" k="-82" />
+<hkern u1="&#xff;" u2="&#x201a;" k="82" />
+<hkern u1="&#xff;" u2="&#x2019;" k="-82" />
+<hkern u1="&#xff;" u2="&#x3f;" k="-41" />
+<hkern u1="&#xff;" u2="&#x2e;" k="82" />
+<hkern u1="&#xff;" u2="&#x2c;" k="82" />
+<hkern u1="&#xff;" u2="&#x27;" k="-82" />
+<hkern u1="&#xff;" u2="&#x22;" k="-82" />
+<hkern u1="&#x152;" u2="J" k="-123" />
+<hkern u1="&#x178;" u2="&#x201e;" k="123" />
+<hkern u1="&#x178;" u2="&#x201a;" k="123" />
+<hkern u1="&#x178;" u2="&#x153;" k="102" />
+<hkern u1="&#x178;" u2="&#x152;" k="41" />
+<hkern u1="&#x178;" u2="&#xfc;" k="61" />
+<hkern u1="&#x178;" u2="&#xfb;" k="61" />
+<hkern u1="&#x178;" u2="&#xfa;" k="61" />
+<hkern u1="&#x178;" u2="&#xf9;" k="61" />
+<hkern u1="&#x178;" u2="&#xf8;" k="102" />
+<hkern u1="&#x178;" u2="&#xf6;" k="102" />
+<hkern u1="&#x178;" u2="&#xf5;" k="102" />
+<hkern u1="&#x178;" u2="&#xf4;" k="102" />
+<hkern u1="&#x178;" u2="&#xf3;" k="102" />
+<hkern u1="&#x178;" u2="&#xf2;" k="102" />
+<hkern u1="&#x178;" u2="&#xeb;" k="102" />
+<hkern u1="&#x178;" u2="&#xea;" k="102" />
+<hkern u1="&#x178;" u2="&#xe9;" k="102" />
+<hkern u1="&#x178;" u2="&#xe8;" k="102" />
+<hkern u1="&#x178;" u2="&#xe7;" k="102" />
+<hkern u1="&#x178;" u2="&#xe6;" k="102" />
+<hkern u1="&#x178;" u2="&#xe5;" k="102" />
+<hkern u1="&#x178;" u2="&#xe4;" k="102" />
+<hkern u1="&#x178;" u2="&#xe3;" k="102" />
+<hkern u1="&#x178;" u2="&#xe2;" k="102" />
+<hkern u1="&#x178;" u2="&#xe1;" k="102" />
+<hkern u1="&#x178;" u2="&#xe0;" k="102" />
+<hkern u1="&#x178;" u2="&#xd8;" k="41" />
+<hkern u1="&#x178;" u2="&#xd6;" k="41" />
+<hkern u1="&#x178;" u2="&#xd5;" k="41" />
+<hkern u1="&#x178;" u2="&#xd4;" k="41" />
+<hkern u1="&#x178;" u2="&#xd3;" k="41" />
+<hkern u1="&#x178;" u2="&#xd2;" k="41" />
+<hkern u1="&#x178;" u2="&#xc7;" k="41" />
+<hkern u1="&#x178;" u2="&#xc5;" k="123" />
+<hkern u1="&#x178;" u2="&#xc4;" k="123" />
+<hkern u1="&#x178;" u2="&#xc3;" k="123" />
+<hkern u1="&#x178;" u2="&#xc2;" k="123" />
+<hkern u1="&#x178;" u2="&#xc1;" k="123" />
+<hkern u1="&#x178;" u2="&#xc0;" k="123" />
+<hkern u1="&#x178;" u2="z" k="41" />
+<hkern u1="&#x178;" u2="u" k="61" />
+<hkern u1="&#x178;" u2="s" k="82" />
+<hkern u1="&#x178;" u2="r" k="61" />
+<hkern u1="&#x178;" u2="q" k="102" />
+<hkern u1="&#x178;" u2="p" k="61" />
+<hkern u1="&#x178;" u2="o" k="102" />
+<hkern u1="&#x178;" u2="n" k="61" />
+<hkern u1="&#x178;" u2="m" k="61" />
+<hkern u1="&#x178;" u2="g" k="41" />
+<hkern u1="&#x178;" u2="e" k="102" />
+<hkern u1="&#x178;" u2="d" k="102" />
+<hkern u1="&#x178;" u2="c" k="102" />
+<hkern u1="&#x178;" u2="a" k="102" />
+<hkern u1="&#x178;" u2="Q" k="41" />
+<hkern u1="&#x178;" u2="O" k="41" />
+<hkern u1="&#x178;" u2="G" k="41" />
+<hkern u1="&#x178;" u2="C" k="41" />
+<hkern u1="&#x178;" u2="A" k="123" />
+<hkern u1="&#x178;" u2="&#x3f;" k="-41" />
+<hkern u1="&#x178;" u2="&#x2e;" k="123" />
+<hkern u1="&#x178;" u2="&#x2c;" k="123" />
+<hkern u1="&#x2013;" u2="T" k="82" />
+<hkern u1="&#x2014;" u2="T" k="82" />
+<hkern u1="&#x2018;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2018;" u2="&#x153;" k="123" />
+<hkern u1="&#x2018;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2018;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2018;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2018;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2018;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2018;" u2="&#xea;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2018;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2018;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2018;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2018;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2018;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2018;" u2="u" k="61" />
+<hkern u1="&#x2018;" u2="s" k="61" />
+<hkern u1="&#x2018;" u2="r" k="61" />
+<hkern u1="&#x2018;" u2="q" k="123" />
+<hkern u1="&#x2018;" u2="p" k="61" />
+<hkern u1="&#x2018;" u2="o" k="123" />
+<hkern u1="&#x2018;" u2="n" k="61" />
+<hkern u1="&#x2018;" u2="m" k="61" />
+<hkern u1="&#x2018;" u2="g" k="61" />
+<hkern u1="&#x2018;" u2="e" k="123" />
+<hkern u1="&#x2018;" u2="d" k="123" />
+<hkern u1="&#x2018;" u2="c" k="123" />
+<hkern u1="&#x2018;" u2="a" k="82" />
+<hkern u1="&#x2018;" u2="Y" k="-20" />
+<hkern u1="&#x2018;" u2="W" k="-41" />
+<hkern u1="&#x2018;" u2="V" k="-41" />
+<hkern u1="&#x2018;" u2="T" k="-41" />
+<hkern u1="&#x2018;" u2="A" k="143" />
+<hkern u1="&#x2019;" u2="&#x178;" k="-20" />
+<hkern u1="&#x2019;" u2="&#x153;" k="123" />
+<hkern u1="&#x2019;" u2="&#xfc;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfb;" k="61" />
+<hkern u1="&#x2019;" u2="&#xfa;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf9;" k="61" />
+<hkern u1="&#x2019;" u2="&#xf8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf6;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf5;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf4;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf3;" k="123" />
+<hkern u1="&#x2019;" u2="&#xf2;" k="123" />
+<hkern u1="&#x2019;" u2="&#xeb;" k="123" />
+<hkern u1="&#x2019;" u2="&#xea;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe9;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe8;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe7;" k="123" />
+<hkern u1="&#x2019;" u2="&#xe6;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe5;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe4;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe3;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe2;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe1;" k="82" />
+<hkern u1="&#x2019;" u2="&#xe0;" k="123" />
+<hkern u1="&#x2019;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x2019;" u2="&#xc5;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc4;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc3;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc2;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc1;" k="143" />
+<hkern u1="&#x2019;" u2="&#xc0;" k="143" />
+<hkern u1="&#x2019;" u2="u" k="61" />
+<hkern u1="&#x2019;" u2="s" k="61" />
+<hkern u1="&#x2019;" u2="r" k="61" />
+<hkern u1="&#x2019;" u2="q" k="123" />
+<hkern u1="&#x2019;" u2="p" k="61" />
+<hkern u1="&#x2019;" u2="o" k="123" />
+<hkern u1="&#x2019;" u2="n" k="61" />
+<hkern u1="&#x2019;" u2="m" k="61" />
+<hkern u1="&#x2019;" u2="g" k="61" />
+<hkern u1="&#x2019;" u2="e" k="123" />
+<hkern u1="&#x2019;" u2="d" k="123" />
+<hkern u1="&#x2019;" u2="c" k="123" />
+<hkern u1="&#x2019;" u2="a" k="82" />
+<hkern u1="&#x2019;" u2="Y" k="-20" />
+<hkern u1="&#x2019;" u2="W" k="-41" />
+<hkern u1="&#x2019;" u2="V" k="-41" />
+<hkern u1="&#x2019;" u2="T" k="-41" />
+<hkern u1="&#x2019;" u2="A" k="143" />
+<hkern u1="&#x201a;" u2="&#x178;" k="123" />
+<hkern u1="&#x201a;" u2="&#x152;" k="102" />
+<hkern u1="&#x201a;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201a;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201a;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201a;" u2="&#xda;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201a;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201a;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201a;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201a;" u2="Y" k="123" />
+<hkern u1="&#x201a;" u2="W" k="123" />
+<hkern u1="&#x201a;" u2="V" k="123" />
+<hkern u1="&#x201a;" u2="U" k="41" />
+<hkern u1="&#x201a;" u2="T" k="143" />
+<hkern u1="&#x201a;" u2="Q" k="102" />
+<hkern u1="&#x201a;" u2="O" k="102" />
+<hkern u1="&#x201a;" u2="G" k="102" />
+<hkern u1="&#x201a;" u2="C" k="102" />
+<hkern u1="&#x201c;" u2="&#x178;" k="-20" />
+<hkern u1="&#x201c;" u2="&#x153;" k="123" />
+<hkern u1="&#x201c;" u2="&#xfc;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfb;" k="61" />
+<hkern u1="&#x201c;" u2="&#xfa;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf9;" k="61" />
+<hkern u1="&#x201c;" u2="&#xf8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf6;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf5;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf4;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf3;" k="123" />
+<hkern u1="&#x201c;" u2="&#xf2;" k="123" />
+<hkern u1="&#x201c;" u2="&#xeb;" k="123" />
+<hkern u1="&#x201c;" u2="&#xea;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe9;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe8;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe7;" k="123" />
+<hkern u1="&#x201c;" u2="&#xe6;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe5;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe4;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe3;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe2;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe1;" k="82" />
+<hkern u1="&#x201c;" u2="&#xe0;" k="123" />
+<hkern u1="&#x201c;" u2="&#xdd;" k="-20" />
+<hkern u1="&#x201c;" u2="&#xc5;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc4;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc3;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc2;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc1;" k="143" />
+<hkern u1="&#x201c;" u2="&#xc0;" k="143" />
+<hkern u1="&#x201c;" u2="u" k="61" />
+<hkern u1="&#x201c;" u2="s" k="61" />
+<hkern u1="&#x201c;" u2="r" k="61" />
+<hkern u1="&#x201c;" u2="q" k="123" />
+<hkern u1="&#x201c;" u2="p" k="61" />
+<hkern u1="&#x201c;" u2="o" k="123" />
+<hkern u1="&#x201c;" u2="n" k="61" />
+<hkern u1="&#x201c;" u2="m" k="61" />
+<hkern u1="&#x201c;" u2="g" k="61" />
+<hkern u1="&#x201c;" u2="e" k="123" />
+<hkern u1="&#x201c;" u2="d" k="123" />
+<hkern u1="&#x201c;" u2="c" k="123" />
+<hkern u1="&#x201c;" u2="a" k="82" />
+<hkern u1="&#x201c;" u2="Y" k="-20" />
+<hkern u1="&#x201c;" u2="W" k="-41" />
+<hkern u1="&#x201c;" u2="V" k="-41" />
+<hkern u1="&#x201c;" u2="T" k="-41" />
+<hkern u1="&#x201c;" u2="A" k="143" />
+<hkern u1="&#x201e;" u2="&#x178;" k="123" />
+<hkern u1="&#x201e;" u2="&#x152;" k="102" />
+<hkern u1="&#x201e;" u2="&#xdd;" k="123" />
+<hkern u1="&#x201e;" u2="&#xdc;" k="41" />
+<hkern u1="&#x201e;" u2="&#xdb;" k="41" />
+<hkern u1="&#x201e;" u2="&#xda;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd9;" k="41" />
+<hkern u1="&#x201e;" u2="&#xd8;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd6;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd5;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd4;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd3;" k="102" />
+<hkern u1="&#x201e;" u2="&#xd2;" k="102" />
+<hkern u1="&#x201e;" u2="&#xc7;" k="102" />
+<hkern u1="&#x201e;" u2="Y" k="123" />
+<hkern u1="&#x201e;" u2="W" k="123" />
+<hkern u1="&#x201e;" u2="V" k="123" />
+<hkern u1="&#x201e;" u2="U" k="41" />
+<hkern u1="&#x201e;" u2="T" k="143" />
+<hkern u1="&#x201e;" u2="Q" k="102" />
+<hkern u1="&#x201e;" u2="O" k="102" />
+<hkern u1="&#x201e;" u2="G" k="102" />
+<hkern u1="&#x201e;" u2="C" k="102" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff
new file mode 100644
index 0000000..e231183
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/fonts/OpenSans-Regular-webfont.woff
Binary files differ
diff --git a/doc/1.1.0/guacamole-common-js/index.html b/doc/1.1.0/guacamole-common-js/index.html
new file mode 100644
index 0000000..55997a3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/index.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="utf-8">
+    <title>JSDoc: Home</title>
+
+    <script src="scripts/prettify/prettify.js"> </script>
+    <script src="scripts/prettify/lang-css.js"> </script>
+    <!--[if lt IE 9]>
+      <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
+    <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
+    <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
+</head>
+
+<body>
+
+<div id="main">
+
+    <h1 class="page-title">Home</h1>
+
+    
+
+
+
+    
+
+
+    <h3> </h3>
+
+
+
+
+
+
+
+
+
+
+    
+
+
+
+
+
+
+
+
+
+</div>
+
+<nav>
+    <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="Guacamole.ArrayBufferReader.html">ArrayBufferReader</a></li><li><a href="Guacamole.ArrayBufferWriter.html">ArrayBufferWriter</a></li><li><a href="Guacamole.AudioPlayer.html">AudioPlayer</a></li><li><a href="Guacamole.AudioRecorder.html">AudioRecorder</a></li><li><a href="Guacamole.BlobReader.html">BlobReader</a></li><li><a href="Guacamole.BlobWriter.html">BlobWriter</a></li><li><a href="Guacamole.ChainedTunnel.html">ChainedTunnel</a></li><li><a href="Guacamole.Client.html">Client</a></li><li><a href="Guacamole.DataURIReader.html">DataURIReader</a></li><li><a href="Guacamole.Display.html">Display</a></li><li><a href="Guacamole.Display.VisibleLayer.html">VisibleLayer</a></li><li><a href="Guacamole.HTTPTunnel.html">HTTPTunnel</a></li><li><a href="Guacamole.InputSink.html">InputSink</a></li><li><a href="Guacamole.InputStream.html">InputStream</a></li><li><a href="Guacamole.IntegerPool.html">IntegerPool</a></li><li><a href="Guacamole.JSONReader.html">JSONReader</a></li><li><a href="Guacamole.Keyboard.html">Keyboard</a></li><li><a href="Guacamole.Keyboard.ModifierState.html">ModifierState</a></li><li><a href="Guacamole.Layer.html">Layer</a></li><li><a href="Guacamole.Layer.Pixel.html">Pixel</a></li><li><a href="Guacamole.Mouse.html">Mouse</a></li><li><a href="Guacamole.Mouse.State.html">State</a></li><li><a href="Guacamole.Mouse.Touchpad.html">Touchpad</a></li><li><a href="Guacamole.Mouse.Touchscreen.html">Touchscreen</a></li><li><a href="Guacamole.Object.html">Object</a></li><li><a href="Guacamole.OnScreenKeyboard.html">OnScreenKeyboard</a></li><li><a href="Guacamole.OnScreenKeyboard.Key.html">Key</a></li><li><a href="Guacamole.OnScreenKeyboard.Layout.html">Layout</a></li><li><a href="Guacamole.OutputStream.html">OutputStream</a></li><li><a href="Guacamole.Parser.html">Parser</a></li><li><a href="Guacamole.RawAudioFormat.html">RawAudioFormat</a></li><li><a href="Guacamole.RawAudioPlayer.html">RawAudioPlayer</a></li><li><a href="Guacamole.RawAudioRecorder.html">RawAudioRecorder</a></li><li><a href="Guacamole.SessionRecording.html">SessionRecording</a></li><li><a href="Guacamole.StaticHTTPTunnel.html">StaticHTTPTunnel</a></li><li><a href="Guacamole.Status.html">Status</a></li><li><a href="Guacamole.StringReader.html">StringReader</a></li><li><a href="Guacamole.StringWriter.html">StringWriter</a></li><li><a href="Guacamole.Tunnel.html">Tunnel</a></li><li><a href="Guacamole.VideoPlayer.html">VideoPlayer</a></li><li><a href="Guacamole.WebSocketTunnel.html">WebSocketTunnel</a></li></ul><h3>Events</h3><ul><li><a href="Guacamole.ArrayBufferReader.html#event:ondata">ondata</a></li><li><a href="Guacamole.ArrayBufferReader.html#event:onend">onend</a></li><li><a href="Guacamole.ArrayBufferWriter.html#event:onack">onack</a></li><li><a href="Guacamole.AudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.AudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobReader.html#event:onend">onend</a></li><li><a href="Guacamole.BlobReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.BlobWriter.html#event:onack">onack</a></li><li><a href="Guacamole.BlobWriter.html#event:oncomplete">oncomplete</a></li><li><a href="Guacamole.BlobWriter.html#event:onerror">onerror</a></li><li><a href="Guacamole.BlobWriter.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.ChainedTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.ChainedTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onargv">onargv</a></li><li><a href="Guacamole.Client.html#event:onaudio">onaudio</a></li><li><a href="Guacamole.Client.html#event:onclipboard">onclipboard</a></li><li><a href="Guacamole.Client.html#event:onerror">onerror</a></li><li><a href="Guacamole.Client.html#event:onfile">onfile</a></li><li><a href="Guacamole.Client.html#event:onfilesystem">onfilesystem</a></li><li><a href="Guacamole.Client.html#event:onname">onname</a></li><li><a href="Guacamole.Client.html#event:onpipe">onpipe</a></li><li><a href="Guacamole.Client.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.Client.html#event:onsync">onsync</a></li><li><a href="Guacamole.Client.html#event:onvideo">onvideo</a></li><li><a href="Guacamole.DataURIReader.html#event:onend">onend</a></li><li><a href="Guacamole.Display.html#event:oncursor">oncursor</a></li><li><a href="Guacamole.Display.html#event:onresize">onresize</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.HTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.HTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.InputStream.html#event:onblob">onblob</a></li><li><a href="Guacamole.InputStream.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onend">onend</a></li><li><a href="Guacamole.JSONReader.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.Keyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.Keyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchpad.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.Touchscreen.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Mouse.html#event:onmousedown">onmousedown</a></li><li><a href="Guacamole.Mouse.html#event:onmousemove">onmousemove</a></li><li><a href="Guacamole.Mouse.html#event:onmouseout">onmouseout</a></li><li><a href="Guacamole.Mouse.html#event:onmouseup">onmouseup</a></li><li><a href="Guacamole.Object.html#event:onbody">onbody</a></li><li><a href="Guacamole.Object.html#event:onundefine">onundefine</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeydown">onkeydown</a></li><li><a href="Guacamole.OnScreenKeyboard.html#event:onkeyup">onkeyup</a></li><li><a href="Guacamole.OutputStream.html#event:onack">onack</a></li><li><a href="Guacamole.Parser.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onclose">onclose</a></li><li><a href="Guacamole.RawAudioRecorder.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.SessionRecording._PlaybackTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.SessionRecording.html#event:onpause">onpause</a></li><li><a href="Guacamole.SessionRecording.html#event:onplay">onplay</a></li><li><a href="Guacamole.SessionRecording.html#event:onprogress">onprogress</a></li><li><a href="Guacamole.SessionRecording.html#event:onseek">onseek</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.StaticHTTPTunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.StringReader.html#event:onend">onend</a></li><li><a href="Guacamole.StringReader.html#event:ontext">ontext</a></li><li><a href="Guacamole.StringWriter.html#event:onack">onack</a></li><li><a href="Guacamole.Tunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.Tunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.Tunnel.html#event:onstatechange">onstatechange</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onerror">onerror</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:oninstruction">oninstruction</a></li><li><a href="Guacamole.WebSocketTunnel.html#event:onstatechange">onstatechange</a></li></ul><h3>Namespaces</h3><ul><li><a href="Guacamole.html">Guacamole</a></li><li><a href="Guacamole.AudioContextFactory.html">AudioContextFactory</a></li></ul>
+</nav>
+
+<br class="clear">
+
+<footer>
+    Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.5.5</a> on Sun Jan 26 2020 10:17:42 GMT-0800 (PST)
+</footer>
+
+<script> prettyPrint(); </script>
+<script src="scripts/linenumber.js"> </script>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
\ No newline at end of file
diff --git a/doc/1.1.0/guacamole-common-js/scripts/linenumber.js b/doc/1.1.0/guacamole-common-js/scripts/linenumber.js
new file mode 100644
index 0000000..8d52f7e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/linenumber.js
@@ -0,0 +1,25 @@
+/*global document */
+(function() {
+    var source = document.getElementsByClassName('prettyprint source linenums');
+    var i = 0;
+    var lineNumber = 0;
+    var lineId;
+    var lines;
+    var totalLines;
+    var anchorHash;
+
+    if (source && source[0]) {
+        anchorHash = document.location.hash.substring(1);
+        lines = source[0].getElementsByTagName('li');
+        totalLines = lines.length;
+
+        for (; i < totalLines; i++) {
+            lineNumber++;
+            lineId = 'line' + lineNumber;
+            lines[i].id = lineId;
+            if (lineId === anchorHash) {
+                lines[i].className += ' selected';
+            }
+        }
+    }
+})();
diff --git a/doc/1.1.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt b/doc/1.1.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/prettify/Apache-License-2.0.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/doc/1.1.0/guacamole-common-js/scripts/prettify/lang-css.js b/doc/1.1.0/guacamole-common-js/scripts/prettify/lang-css.js
new file mode 100644
index 0000000..041e1f5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/prettify/lang-css.js
@@ -0,0 +1,2 @@
+PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n"]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com",
+/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]);
diff --git a/doc/1.1.0/guacamole-common-js/scripts/prettify/prettify.js b/doc/1.1.0/guacamole-common-js/scripts/prettify/prettify.js
new file mode 100644
index 0000000..eef5ad7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/scripts/prettify/prettify.js
@@ -0,0 +1,28 @@
+var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
+(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
+[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
+f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
+(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
+{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
+t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
+"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
+l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
+q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
+q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
+"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
+a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
+for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
+m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
+a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
+j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
+"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
+H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
+J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
+I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
+["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
+/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
+["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
+hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
+!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
+250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
+PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();
diff --git a/doc/1.1.0/guacamole-common-js/styles/jsdoc-default.css b/doc/1.1.0/guacamole-common-js/styles/jsdoc-default.css
new file mode 100644
index 0000000..9207bc8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/styles/jsdoc-default.css
@@ -0,0 +1,358 @@
+@font-face {
+    font-family: 'Open Sans';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Regular-webfont.eot');
+    src:
+        local('Open Sans'),
+        local('OpenSans'),
+        url('../fonts/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Regular-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
+}
+
+@font-face {
+    font-family: 'Open Sans Light';
+    font-weight: normal;
+    font-style: normal;
+    src: url('../fonts/OpenSans-Light-webfont.eot');
+    src:
+        local('Open Sans Light'),
+        local('OpenSans Light'),
+        url('../fonts/OpenSans-Light-webfont.eot?#iefix') format('embedded-opentype'),
+        url('../fonts/OpenSans-Light-webfont.woff') format('woff'),
+        url('../fonts/OpenSans-Light-webfont.svg#open_sanslight') format('svg');
+}
+
+html
+{
+    overflow: auto;
+    background-color: #fff;
+    font-size: 14px;
+}
+
+body
+{
+    font-family: 'Open Sans', sans-serif;
+    line-height: 1.5;
+    color: #4d4e53;
+    background-color: white;
+}
+
+a, a:visited, a:active {
+    color: #0095dd;
+    text-decoration: none;
+}
+
+a:hover {
+    text-decoration: underline;
+}
+
+header
+{
+    display: block;
+    padding: 0px 4px;
+}
+
+tt, code, kbd, samp {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.class-description {
+    font-size: 130%;
+    line-height: 140%;
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.class-description:empty {
+    margin: 0;
+}
+
+#main {
+    float: left;
+    width: 70%;
+}
+
+article dl {
+    margin-bottom: 40px;
+}
+
+article img {
+  max-width: 100%;
+}
+
+section
+{
+    display: block;
+    background-color: #fff;
+    padding: 12px 24px;
+    border-bottom: 1px solid #ccc;
+    margin-right: 30px;
+}
+
+.variation {
+    display: none;
+}
+
+.signature-attributes {
+    font-size: 60%;
+    color: #aaa;
+    font-style: italic;
+    font-weight: lighter;
+}
+
+nav
+{
+    display: block;
+    float: right;
+    margin-top: 28px;
+    width: 30%;
+    box-sizing: border-box;
+    border-left: 1px solid #ccc;
+    padding-left: 16px;
+}
+
+nav ul {
+    font-family: 'Lucida Grande', 'Lucida Sans Unicode', arial, sans-serif;
+    font-size: 100%;
+    line-height: 17px;
+    padding: 0;
+    margin: 0;
+    list-style-type: none;
+}
+
+nav ul a, nav ul a:visited, nav ul a:active {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    line-height: 18px;
+    color: #4D4E53;
+}
+
+nav h3 {
+    margin-top: 12px;
+}
+
+nav li {
+    margin-top: 6px;
+}
+
+footer {
+    display: block;
+    padding: 6px;
+    margin-top: 12px;
+    font-style: italic;
+    font-size: 90%;
+}
+
+h1, h2, h3, h4 {
+    font-weight: 200;
+    margin: 0;
+}
+
+h1
+{
+    font-family: 'Open Sans Light', sans-serif;
+    font-size: 48px;
+    letter-spacing: -2px;
+    margin: 12px 24px 20px;
+}
+
+h2, h3.subsection-title
+{
+    font-size: 30px;
+    font-weight: 700;
+    letter-spacing: -1px;
+    margin-bottom: 12px;
+}
+
+h3
+{
+    font-size: 24px;
+    letter-spacing: -0.5px;
+    margin-bottom: 12px;
+}
+
+h4
+{
+    font-size: 18px;
+    letter-spacing: -0.33px;
+    margin-bottom: 12px;
+    color: #4d4e53;
+}
+
+h5, .container-overview .subsection-title
+{
+    font-size: 120%;
+    font-weight: bold;
+    letter-spacing: -0.01em;
+    margin: 8px 0 3px 0;
+}
+
+h6
+{
+    font-size: 100%;
+    letter-spacing: -0.01em;
+    margin: 6px 0 3px 0;
+    font-style: italic;
+}
+
+table
+{
+    border-spacing: 0;
+    border: 0;
+    border-collapse: collapse;
+}
+
+td, th
+{
+    border: 1px solid #ddd;
+    margin: 0px;
+    text-align: left;
+    vertical-align: top;
+    padding: 4px 6px;
+    display: table-cell;
+}
+
+thead tr
+{
+    background-color: #ddd;
+    font-weight: bold;
+}
+
+th { border-right: 1px solid #aaa; }
+tr > th:last-child { border-right: 1px solid #ddd; }
+
+.ancestors, .attribs { color: #999; }
+.ancestors a, .attribs a
+{
+    color: #999 !important;
+    text-decoration: none;
+}
+
+.clear
+{
+    clear: both;
+}
+
+.important
+{
+    font-weight: bold;
+    color: #950B02;
+}
+
+.yes-def {
+    text-indent: -1000px;
+}
+
+.type-signature {
+    color: #aaa;
+}
+
+.name, .signature {
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+}
+
+.details { margin-top: 14px; border-left: 2px solid #DDD; }
+.details dt { width: 120px; float: left; padding-left: 10px;  padding-top: 6px; }
+.details dd { margin-left: 70px; }
+.details ul { margin: 0; }
+.details ul { list-style-type: none; }
+.details li { margin-left: 30px; padding-top: 6px; }
+.details pre.prettyprint { margin: 0 }
+.details .object-value { padding-top: 0; }
+
+.description {
+    margin-bottom: 1em;
+    margin-top: 1em;
+}
+
+.code-caption
+{
+    font-style: italic;
+    font-size: 107%;
+    margin: 0;
+}
+
+.prettyprint
+{
+    border: 1px solid #ddd;
+    width: 80%;
+    overflow: auto;
+}
+
+.prettyprint.source {
+    width: inherit;
+}
+
+.prettyprint code
+{
+    font-size: 100%;
+    line-height: 18px;
+    display: block;
+    padding: 4px 12px;
+    margin: 0;
+    background-color: #fff;
+    color: #4D4E53;
+}
+
+.prettyprint code span.line
+{
+  display: inline-block;
+}
+
+.prettyprint.linenums
+{
+  padding-left: 70px;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+
+.prettyprint.linenums ol
+{
+  padding-left: 0;
+}
+
+.prettyprint.linenums li
+{
+  border-left: 3px #ddd solid;
+}
+
+.prettyprint.linenums li.selected,
+.prettyprint.linenums li.selected *
+{
+  background-color: lightyellow;
+}
+
+.prettyprint.linenums li *
+{
+  -webkit-user-select: text;
+  -moz-user-select: text;
+  -ms-user-select: text;
+  user-select: text;
+}
+
+.params .name, .props .name, .name code {
+    color: #4D4E53;
+    font-family: Consolas, Monaco, 'Andale Mono', monospace;
+    font-size: 100%;
+}
+
+.params td.description > p:first-child,
+.props td.description > p:first-child
+{
+    margin-top: 0;
+    padding-top: 0;
+}
+
+.params td.description > p:last-child,
+.props td.description > p:last-child
+{
+    margin-bottom: 0;
+    padding-bottom: 0;
+}
+
+.disabled {
+    color: #454545;
+}
diff --git a/doc/1.1.0/guacamole-common-js/styles/prettify-jsdoc.css b/doc/1.1.0/guacamole-common-js/styles/prettify-jsdoc.css
new file mode 100644
index 0000000..5a2526e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/styles/prettify-jsdoc.css
@@ -0,0 +1,111 @@
+/* JSDoc prettify.js theme */
+
+/* plain text */
+.pln {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* string content */
+.str {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a keyword */
+.kwd {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a comment */
+.com {
+  font-weight: normal;
+  font-style: italic;
+}
+
+/* a type name */
+.typ {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a literal value */
+.lit {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* punctuation */
+.pun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp open bracket */
+.opn {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* lisp close bracket */
+.clo {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a markup tag name */
+.tag {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute name */
+.atn {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a markup attribute value */
+.atv {
+  color: #006400;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a declaration */
+.dec {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* a variable name */
+.var {
+  color: #000000;
+  font-weight: normal;
+  font-style: normal;
+}
+
+/* a function name */
+.fun {
+  color: #000000;
+  font-weight: bold;
+  font-style: normal;
+}
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0;
+}
diff --git a/doc/1.1.0/guacamole-common-js/styles/prettify-tomorrow.css b/doc/1.1.0/guacamole-common-js/styles/prettify-tomorrow.css
new file mode 100644
index 0000000..b6f92a7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common-js/styles/prettify-tomorrow.css
@@ -0,0 +1,132 @@
+/* Tomorrow Theme */
+/* Original theme - https://github.com/chriskempson/tomorrow-theme */
+/* Pretty printing styles. Used with prettify.js. */
+/* SPAN elements with the classes below are added by prettyprint. */
+/* plain text */
+.pln {
+  color: #4d4d4c; }
+
+@media screen {
+  /* string content */
+  .str {
+    color: #718c00; }
+
+  /* a keyword */
+  .kwd {
+    color: #8959a8; }
+
+  /* a comment */
+  .com {
+    color: #8e908c; }
+
+  /* a type name */
+  .typ {
+    color: #4271ae; }
+
+  /* a literal value */
+  .lit {
+    color: #f5871f; }
+
+  /* punctuation */
+  .pun {
+    color: #4d4d4c; }
+
+  /* lisp open bracket */
+  .opn {
+    color: #4d4d4c; }
+
+  /* lisp close bracket */
+  .clo {
+    color: #4d4d4c; }
+
+  /* a markup tag name */
+  .tag {
+    color: #c82829; }
+
+  /* a markup attribute name */
+  .atn {
+    color: #f5871f; }
+
+  /* a markup attribute value */
+  .atv {
+    color: #3e999f; }
+
+  /* a declaration */
+  .dec {
+    color: #f5871f; }
+
+  /* a variable name */
+  .var {
+    color: #c82829; }
+
+  /* a function name */
+  .fun {
+    color: #4271ae; } }
+/* Use higher contrast and text-weight for printable form. */
+@media print, projection {
+  .str {
+    color: #060; }
+
+  .kwd {
+    color: #006;
+    font-weight: bold; }
+
+  .com {
+    color: #600;
+    font-style: italic; }
+
+  .typ {
+    color: #404;
+    font-weight: bold; }
+
+  .lit {
+    color: #044; }
+
+  .pun, .opn, .clo {
+    color: #440; }
+
+  .tag {
+    color: #006;
+    font-weight: bold; }
+
+  .atn {
+    color: #404; }
+
+  .atv {
+    color: #060; } }
+/* Style */
+/*
+pre.prettyprint {
+  background: white;
+  font-family: Consolas, Monaco, 'Andale Mono', monospace;
+  font-size: 12px;
+  line-height: 1.5;
+  border: 1px solid #ccc;
+  padding: 10px; }
+*/
+
+/* Specify class=linenums on a pre to get line numbering */
+ol.linenums {
+  margin-top: 0;
+  margin-bottom: 0; }
+
+/* IE indents via margin-left */
+li.L0,
+li.L1,
+li.L2,
+li.L3,
+li.L4,
+li.L5,
+li.L6,
+li.L7,
+li.L8,
+li.L9 {
+  /* */ }
+
+/* Alternate shading for lines */
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+  /* */ }
diff --git a/doc/1.1.0/guacamole-common/allclasses-frame.html b/doc/1.1.0/guacamole-common/allclasses-frame.html
new file mode 100644
index 0000000..b17b5e6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/allclasses-frame.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">AbstractGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">ConfiguredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FailoverGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleWriter</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleClientInformation</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleConfiguration</a></li>
+<li><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol" target="classFrame"><span class="interfaceName">GuacamoleFilter</span></a></li>
+<li><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet" target="classFrame">GuacamoleHTTPTunnelServlet</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleInstruction</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleParser</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolCapability</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolVersion</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleStatus</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket" target="classFrame">GuacamoleWebSocketTunnelEndpoint</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleWriter</span></a></li>
+<li><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">InetGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io" target="classFrame">ReaderGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">SimpleGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">SSLGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io" target="classFrame">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/allclasses-noframe.html b/doc/1.1.0/guacamole-common/allclasses-noframe.html
new file mode 100644
index 0000000..9d23cc4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/allclasses-noframe.html
@@ -0,0 +1,77 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></li>
+<li><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="interfaceName">GuacamoleFilter</span></a></li>
+<li><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></li>
+<li><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></li>
+<li><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></li>
+<li><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="interfaceName">GuacamoleWriter</span></a></li>
+<li><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></li>
+<li><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></li>
+<li><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></li>
+<li><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/constant-values.html b/doc/1.1.0/guacamole-common/constant-values.html
new file mode 100644
index 0000000..2ece72f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/constant-values.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Constant Field Values (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.apache">org.apache.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.apache">
+<!--   -->
+</a>
+<h2 title="org.apache">org.apache.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.GuacamoleTunnel.INTERNAL_DATA_OPCODE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></td>
+<td class="colLast"><code>""</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_DIGITS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></code></td>
+<td class="colLast"><code>5</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_ELEMENTS">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></code></td>
+<td class="colLast"><code>64</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_LENGTH">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></code></td>
+<td class="colLast"><code>8192</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/deprecated-list.html b/doc/1.1.0/guacamole-common/deprecated-list.html
new file mode 100644
index 0000000..a776786
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/deprecated-list.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/help-doc.html b/doc/1.1.0/guacamole-common/help-doc.html
new file mode 100644
index 0000000..f619cf0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/help-doc.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/index-all.html b/doc/1.1.0/guacamole-common/index-all.html
new file mode 100644
index 0000000..4e8b57e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/index-all.html
@@ -0,0 +1,1459 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#AbstractGuacamoleTunnel--">AbstractGuacamoleTunnel()</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append(char[], int, int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append(char[])</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast(GuacamoleProtocolVersion)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#available--">available()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#close--">close()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#close--">close()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#close--">close()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket(GuacamoleSocket, GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket(GuacamoleSocket, GuacamoleConfiguration, GuacamoleClientInformation)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel(Session, EndpointConfig)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>
+<div class="block">Returns a new tunnel for the given session.</div>
+</dd>
+</dl>
+<a name="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel(GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#destroy--">destroy()</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect(HttpServletRequest)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doGet(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doPost(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead(HttpServletRequest, HttpServletResponse, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite(HttpServletRequest, HttpServletResponse, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</dd>
+</dl>
+<a name="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket(GuacamoleSocket, int)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket(GuacamoleSocket)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter(GuacamoleInstruction)</a></span> - Method in interface org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></dt>
+<dd>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader(GuacamoleReader, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket(GuacamoleSocket, GuacamoleFilter, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter(GuacamoleWriter, GuacamoleFilter)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode(int)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#getArgs--">getArgs()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getAudioMimetypes--">getAudioMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of audio mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConnectionID--">getConnectionID()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getConnectionID--">getConnectionID()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the ID of the connection being joined, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getGuacamoleStatusCode--">getGuacamoleStatusCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getHttpStatusCode--">getHttpStatusCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getImageMimetypes--">getImageMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of image mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMajor--">getMajor()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the major version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMinor--">getMinor()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the minor version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#getOpcode--">getOpcode()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalResolution--">getOptimalResolution()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenHeight--">getOptimalScreenHeight()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenWidth--">getOptimalScreenWidth()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameter-java.lang.String-">getParameter(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameterNames--">getParameterNames()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns a set of all currently defined parameter names.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getPatch--">getPatch()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Return the patch version component of the protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#getProtocol--">getProtocol()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Returns the name of the protocol to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getTimezone--">getTimezone()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel(String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getUUID--">getUUID()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#getVideoMimetypes--">getVideoMimetypes()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Returns the list of video mimetypes supported by the client.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode()</a></span> - Method in exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#getWebSocketCode--">getWebSocketCode()</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">GuacamoleClientBadTypeException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-">GuacamoleClientBadTypeException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.Throwable-">GuacamoleClientBadTypeException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-java.lang.Throwable-">GuacamoleClientException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-">GuacamoleClientException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.Throwable-">GuacamoleClientException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#GuacamoleClientInformation--">GuacamoleClientInformation()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">GuacamoleClientOverrunException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-">GuacamoleClientOverrunException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.Throwable-">GuacamoleClientOverrunException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleClientTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-">GuacamoleClientTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.Throwable-">GuacamoleClientTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">GuacamoleClientTooManyException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-">GuacamoleClientTooManyException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.Throwable-">GuacamoleClientTooManyException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration--">GuacamoleConfiguration()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration(GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleConnectionClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-">GuacamoleConnectionClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.Throwable-">GuacamoleConnectionClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-java.lang.Throwable-">GuacamoleException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-">GuacamoleException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.Throwable-">GuacamoleException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a> - Interface in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a> - Class in <a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></dt>
+<dd>
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#GuacamoleHTTPTunnelServlet--">GuacamoleHTTPTunnelServlet()</a></span> - Constructor for class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.lang.String...-">GuacamoleInstruction(String, String...)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.util.List-">GuacamoleInstruction(String, List&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Parser for the Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#GuacamoleParser--">GuacamoleParser()</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a> - Enum in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a> - Class in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">Representation of a Guacamole protocol version.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#GuacamoleProtocolVersion-int-int-int-">GuacamoleProtocolVersion(int, int, int)</a></span> - Constructor for class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+</dd>
+<dt><a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a> - Interface in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">GuacamoleResourceClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-">GuacamoleResourceClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.Throwable-">GuacamoleResourceClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">GuacamoleResourceConflictException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-">GuacamoleResourceConflictException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.Throwable-">GuacamoleResourceConflictException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleResourceNotFoundException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-">GuacamoleResourceNotFoundException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.Throwable-">GuacamoleResourceNotFoundException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">GuacamoleSecurityException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-">GuacamoleSecurityException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.Throwable-">GuacamoleSecurityException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">GuacamoleServerBusyException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-">GuacamoleServerBusyException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.Throwable-">GuacamoleServerBusyException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-java.lang.Throwable-">GuacamoleServerException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-">GuacamoleServerException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.Throwable-">GuacamoleServerException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleSessionClosedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-">GuacamoleSessionClosedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.Throwable-">GuacamoleSessionClosedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">GuacamoleSessionConflictException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-">GuacamoleSessionConflictException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.Throwable-">GuacamoleSessionConflictException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleSessionTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-">GuacamoleSessionTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.Throwable-">GuacamoleSessionTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a> - Interface in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a> - Enum in <a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></dt>
+<dd>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a> - Interface in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">GuacamoleUnauthorizedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-">GuacamoleUnauthorizedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.Throwable-">GuacamoleUnauthorizedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">GuacamoleUnsupportedException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-">GuacamoleUnsupportedException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.Throwable-">GuacamoleUnsupportedException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-">GuacamoleUpstreamException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.Throwable-">GuacamoleUpstreamException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamNotFoundException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-">GuacamoleUpstreamNotFoundException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.Throwable-">GuacamoleUpstreamNotFoundException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamTimeoutException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-">GuacamoleUpstreamTimeoutException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.Throwable-">GuacamoleUpstreamTimeoutException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a> - Exception in <a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></dt>
+<dd>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamUnavailableException(String, Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-">GuacamoleUpstreamUnavailableException(String)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.Throwable-">GuacamoleUpstreamUnavailableException(Throwable)</a></span> - Constructor for exception org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+</dd>
+<dt><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a> - Class in <a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></dt>
+<dd>
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#GuacamoleWebSocketTunnelEndpoint--">GuacamoleWebSocketTunnelEndpoint()</a></span> - Constructor for class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a> - Interface in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</dd>
+</dl>
+<a name="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleTunnelRequest(HttpServletRequest, HttpServletResponse)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#hasNext--">hasNext()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</dd>
+</dl>
+<a name="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket(String, int)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>
+<div class="block">The maximum number of characters per instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></span> - Static variable in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/InetGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#isOpen--">isOpen()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported(GuacamoleProtocolVersion)</a></span> - Method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</dd>
+</dl>
+<a name="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</dd>
+</dl>
+<a name="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#next--">next()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onClose-javax.websocket.Session-javax.websocket.CloseReason-">onClose(Session, CloseReason)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onMessage-java.lang.String-">onMessage(String)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">onOpen(Session, EndpointConfig)</a></span> - Method in class org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a> - package org.apache.guacamole</dt>
+<dd>
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</dd>
+<dt><a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> - package org.apache.guacamole.io</dt>
+<dd>
+<div class="block">All classes relating directly to data input or output.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> - package org.apache.guacamole.net</dt>
+<dd>
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> - package org.apache.guacamole.protocol</dt>
+<dd>
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</dd>
+<dt><a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> - package org.apache.guacamole.servlet</dt>
+<dd>
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</dd>
+<dt><a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> - package org.apache.guacamole.websocket</dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion(String)</a></span> - Static method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</dd>
+</dl>
+<a name="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#read--">read()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> - Class in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#ReaderGuacamoleReader-java.io.Reader-">ReaderGuacamoleReader(Reader)</a></span> - Constructor for class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dt>
+<dd>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in class org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter()</a></span> - Method in interface org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleParser.html#remove--">remove()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">sendError(HttpServletResponse, int, int, String)</a></span> - Method in class org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></dt>
+<dd>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setConnectionID-java.lang.String-">setConnectionID(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the ID of the connection being joined, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalResolution-int-">setOptimalResolution(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenHeight-int-">setOptimalScreenHeight(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the client's optimal screen height.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenWidth-int-">setOptimalScreenWidth(int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Sets the client's optimal screen width.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameter-java.lang.String-java.lang.String-">setParameter(String, String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the value for the parameter with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#setProtocol-java.lang.String-">setProtocol(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Sets the name of the protocol to be used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html#setTimezone-java.lang.String-">setTimezone(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></dt>
+<dd>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel(GuacamoleSocket)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> - Class in <a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></dt>
+<dd>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket(String, int)</a></span> - Constructor for class org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dt>
+<dd>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</dd>
+</dl>
+<a name="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleInstruction.html#toString--">toString()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></dt>
+<dd>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#toString--">toString()</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html#unsetParameter-java.lang.String-">unsetParameter(String)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></dt>
+<dd>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+</dd>
+</dl>
+<a name="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span> - Static variable in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></dt>
+<dd>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</dd>
+</dl>
+<a name="I:W">
+<!--   -->
+</a>
+<h2 class="title">W</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write(char[], int, int)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write(char[])</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in interface org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dt>
+<dd>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction(GuacamoleInstruction)</a></span> - Method in class org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> - Class in <a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></dt>
+<dd>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/io/WriterGuacamoleWriter.html#WriterGuacamoleWriter-java.io.Writer-">WriterGuacamoleWriter(Writer)</a></span> - Constructor for class org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dt>
+<dd>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/index.html b/doc/1.1.0/guacamole-common/index.html
new file mode 100644
index 0000000..bb58d2a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/index.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>guacamole-common 1.1.0 API</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..ba1d926
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientBadTypeException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientBadTypeException" class="title">Class GuacamoleClientBadTypeException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientBadTypeException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientBadTypeException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientBadTypeException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#GuacamoleClientBadTypeException-java.lang.Throwable-">GuacamoleClientBadTypeException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientBadTypeException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientBadTypeException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientBadTypeException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientBadTypeException</h4>
+<pre>public&nbsp;GuacamoleClientBadTypeException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientBadTypeException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientBadTypeException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html
new file mode 100644
index 0000000..0e881da
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientException" class="title">Class GuacamoleClientException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a>, <a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a>, <a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request. Such an error, if correctable, usually
+ requires correction on the client side, not the server.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.String-java.lang.Throwable-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#GuacamoleClientException-java.lang.Throwable-">GuacamoleClientException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientException</h4>
+<pre>public&nbsp;GuacamoleClientException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html
new file mode 100644
index 0000000..6ef554f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientOverrunException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientOverrunException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientOverrunException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientOverrunException" class="title">Class GuacamoleClientOverrunException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientOverrunException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientOverrunException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when the client has sent too much data. This
+ usually indicates that a server-side buffer is not large enough to
+ accommodate the data, or protocol specifications prohibit data of the size
+ received.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientOverrunException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#GuacamoleClientOverrunException-java.lang.Throwable-">GuacamoleClientOverrunException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientOverrunException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientOverrunException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientOverrunException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientOverrunException</h4>
+<pre>public&nbsp;GuacamoleClientOverrunException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientOverrunException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientOverrunException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..09faa87
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTimeoutException.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientTimeoutException" class="title">Class GuacamoleClientTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#GuacamoleClientTimeoutException-java.lang.Throwable-">GuacamoleClientTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientTimeoutException</h4>
+<pre>public&nbsp;GuacamoleClientTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTimeoutException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html
new file mode 100644
index 0000000..5400e05
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleClientTooManyException.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientTooManyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientTooManyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleClientTooManyException" class="title">Class GuacamoleClientTooManyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientTooManyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientTooManyException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleClientTooManyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#GuacamoleClientTooManyException-java.lang.Throwable-">GuacamoleClientTooManyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientTooManyException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTooManyException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleClientTooManyException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientTooManyException</h4>
+<pre>public&nbsp;GuacamoleClientTooManyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleClientTooManyException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientTooManyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..7266633
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleConnectionClosedException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleConnectionClosedException" class="title">Class GuacamoleConnectionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleConnectionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleConnectionClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleConnectionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#GuacamoleConnectionClosedException-java.lang.Throwable-">GuacamoleConnectionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleConnectionClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleConnectionClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleConnectionClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleConnectionClosedException</h4>
+<pre>public&nbsp;GuacamoleConnectionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleConnectionClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConnectionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleException.html
new file mode 100644
index 0000000..8fbb735
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleException.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleException" class="title">Class GuacamoleException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a>, <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleException</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.String-java.lang.Throwable-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#GuacamoleException-java.lang.Throwable-">GuacamoleException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></span>()</code>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleException</h4>
+<pre>public&nbsp;GuacamoleException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHttpStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getHttpStatusCode()</pre>
+<div class="block">Returns the most applicable HTTP status code that can be associated
+ with this exception.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An integer representing the most applicable HTTP status code
+     associated with this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWebSocketCode--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getWebSocketCode</h4>
+<pre>public&nbsp;int&nbsp;getWebSocketCode()</pre>
+<div class="block">Returns the most applicable WebSocket status code that can be
+ associated with this exception.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An integer representing the most applicable WebSocket status
+     code associated with this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html
new file mode 100644
index 0000000..4293654
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceClosedException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceClosedException" class="title">Class GuacamoleResourceClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#GuacamoleResourceClosedException-java.lang.Throwable-">GuacamoleResourceClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceClosedException</h4>
+<pre>public&nbsp;GuacamoleResourceClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html
new file mode 100644
index 0000000..08e212a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceConflictException.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceConflictException" class="title">Class GuacamoleResourceConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceConflictException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#GuacamoleResourceConflictException-java.lang.Throwable-">GuacamoleResourceConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceConflictException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceConflictException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceConflictException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceConflictException</h4>
+<pre>public&nbsp;GuacamoleResourceConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceConflictException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..bb51e35
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleResourceNotFoundException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleResourceNotFoundException" class="title">Class GuacamoleResourceNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleResourceNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleResourceNotFoundException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleResourceNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#GuacamoleResourceNotFoundException-java.lang.Throwable-">GuacamoleResourceNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleResourceNotFoundException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceNotFoundException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleResourceNotFoundException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleResourceNotFoundException</h4>
+<pre>public&nbsp;GuacamoleResourceNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleResourceNotFoundException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleResourceNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html
new file mode 100644
index 0000000..78d6b54
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSecurityException.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSecurityException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSecurityException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSecurityException" class="title">Class GuacamoleSecurityException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSecurityException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></pre>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSecurityException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#GuacamoleSecurityException-java.lang.Throwable-">GuacamoleSecurityException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSecurityException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSecurityException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSecurityException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSecurityException</h4>
+<pre>public&nbsp;GuacamoleSecurityException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSecurityException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSecurityException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html
new file mode 100644
index 0000000..a5c5238
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerBusyException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleServerBusyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleServerBusyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleServerBusyException" class="title">Class GuacamoleServerBusyException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerBusyException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleServerBusyException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleServerBusyException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                            <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#GuacamoleServerBusyException-java.lang.Throwable-">GuacamoleServerBusyException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleServerBusyException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerBusyException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerBusyException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleServerBusyException</h4>
+<pre>public&nbsp;GuacamoleServerBusyException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerBusyException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerBusyException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html
new file mode 100644
index 0000000..bee4e58
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleServerException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleServerException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleServerException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleServerException" class="title">Class GuacamoleServerException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleServerException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a>, <a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleServerException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error. An internal error, if correctable, would
+ require correction on the server side, not the client.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleServerException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.String-java.lang.Throwable-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#GuacamoleServerException-java.lang.Throwable-">GuacamoleServerException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleServerException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleServerException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleServerException</h4>
+<pre>public&nbsp;GuacamoleServerException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleServerException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleServerException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html
new file mode 100644
index 0000000..c6ea4c9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionClosedException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionClosedException" class="title">Class GuacamoleSessionClosedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionClosedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionClosedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionClosedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                               <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#GuacamoleSessionClosedException-java.lang.Throwable-">GuacamoleSessionClosedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionClosedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionClosedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionClosedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionClosedException</h4>
+<pre>public&nbsp;GuacamoleSessionClosedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionClosedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionClosedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html
new file mode 100644
index 0000000..71a588e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionConflictException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionConflictException" class="title">Class GuacamoleSessionConflictException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionConflictException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionConflictException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionConflictException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                 <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#GuacamoleSessionConflictException-java.lang.Throwable-">GuacamoleSessionConflictException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionConflictException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionConflictException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionConflictException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionConflictException</h4>
+<pre>public&nbsp;GuacamoleSessionConflictException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionConflictException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionConflictException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..4aece4f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleSessionTimeoutException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleSessionTimeoutException" class="title">Class GuacamoleSessionTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSessionTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleSessionTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleSessionTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#GuacamoleSessionTimeoutException-java.lang.Throwable-">GuacamoleSessionTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleSessionTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                        <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleSessionTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleSessionTimeoutException</h4>
+<pre>public&nbsp;GuacamoleSessionTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleSessionTimeoutException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSessionTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..fdd6922
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnauthorizedException.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUnauthorizedException" class="title">Class GuacamoleUnauthorizedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSecurityException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUnauthorizedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></pre>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUnauthorizedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                              <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#GuacamoleUnauthorizedException-java.lang.Throwable-">GuacamoleUnauthorizedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUnauthorizedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnauthorizedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnauthorizedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUnauthorizedException</h4>
+<pre>public&nbsp;GuacamoleUnauthorizedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnauthorizedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnauthorizedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html
new file mode 100644
index 0000000..8e94bc0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUnsupportedException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUnsupportedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUnsupportedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUnsupportedException" class="title">Class GuacamoleUnsupportedException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnsupportedException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUnsupportedException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></pre>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUnsupportedException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#GuacamoleUnsupportedException-java.lang.Throwable-">GuacamoleUnsupportedException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUnsupportedException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnsupportedException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUnsupportedException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUnsupportedException</h4>
+<pre>public&nbsp;GuacamoleUnsupportedException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUnsupportedException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUnsupportedException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html
new file mode 100644
index 0000000..7400f95
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamException.html
@@ -0,0 +1,390 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamException" class="title">Class GuacamoleUpstreamException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a>, <a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a>, <a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a>, <a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#GuacamoleUpstreamException-java.lang.Throwable-">GuacamoleUpstreamException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamException</h4>
+<pre>public&nbsp;GuacamoleUpstreamException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..e64a2ec
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,389 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamNotFoundException" class="title">Class GuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamNotFoundException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamNotFoundException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamNotFoundException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                  <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#GuacamoleUpstreamNotFoundException-java.lang.Throwable-">GuacamoleUpstreamNotFoundException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                          <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message
+ and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamNotFoundException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamNotFoundException</h4>
+<pre>public&nbsp;GuacamoleUpstreamNotFoundException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamNotFoundException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamNotFoundException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..b407ac2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamTimeoutException" class="title">Class GuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamTimeoutException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamTimeoutException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamTimeoutException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                 <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#GuacamoleUpstreamTimeoutException-java.lang.Throwable-">GuacamoleUpstreamTimeoutException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message and
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that
+                occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamTimeoutException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamTimeoutException</h4>
+<pre>public&nbsp;GuacamoleUpstreamTimeoutException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamException with the given cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamTimeoutException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..3f9b825
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/GuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,393 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole</div>
+<h2 title="Class GuacamoleUpstreamUnavailableException" class="title">Class GuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUpstreamUnavailableException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleUpstreamUnavailableException</span>
+extends <a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../serialized-form.html#org.apache.guacamole.GuacamoleUpstreamUnavailableException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#GuacamoleUpstreamUnavailableException-java.lang.Throwable-">GuacamoleUpstreamUnavailableException</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</code>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></h3>
+<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getHttpStatusCode--">getHttpStatusCode</a>, <a href="../../../org/apache/guacamole/GuacamoleException.html#getWebSocketCode--">getWebSocketCode</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.String-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                             <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message and cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ message.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleUpstreamUnavailableException-java.lang.Throwable-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleUpstreamUnavailableException</h4>
+<pre>public&nbsp;GuacamoleUpstreamUnavailableException(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
+<div class="block">Creates a new GuacamoleUpstreamUnavailableException with the given
+ cause.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStatus--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getStatus</h4>
+<pre>public&nbsp;<a href="../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;getStatus()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleException.html#getStatus--">GuacamoleException</a></code></span></div>
+<div class="block">Returns the Guacamole status associated with this exception. This status
+ can then be easily translated into an HTTP error code or Guacamole
+ protocol error code.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></code>&nbsp;in class&nbsp;<code><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole status.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleUpstreamUnavailableException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html
new file mode 100644
index 0000000..048a74b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientBadTypeException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientBadTypeException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientBadTypeException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientBadTypeException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientBadTypeException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html
new file mode 100644
index 0000000..c7fc61f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientException.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></span></code>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></span></code>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></span></code>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></span></code>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></span></code>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></span></code>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html
new file mode 100644
index 0000000..9f9461b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientOverrunException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientOverrunException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientOverrunException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientOverrunException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientOverrunException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientOverrunException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientOverrunException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientOverrunException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html
new file mode 100644
index 0000000..78dde26
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html
new file mode 100644
index 0000000..41e760d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleClientTooManyException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleClientTooManyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleClientTooManyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleClientTooManyException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleClientTooManyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleClientTooManyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleClientTooManyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientTooManyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html
new file mode 100644
index 0000000..af85647
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleConnectionClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleConnectionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleConnectionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleConnectionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html
new file mode 100644
index 0000000..c5c9026
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleException.html
@@ -0,0 +1,684 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></span></code>
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></span></code>
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></span></code>
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></span></code>
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></span></code>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></span></code>
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></span></code>
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></span></code>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></span></code>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></span></code>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                   int&nbsp;port)</code>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                  int&nbsp;port)</code>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append</a></span>(char[]&nbsp;chunk,
+      int&nbsp;offset,
+      int&nbsp;length)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FailoverGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#close--">close</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;offset,
+     int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response,
+      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+       javax.servlet.http.HttpServletResponse&nbsp;response,
+       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> in <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint.</span><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html
new file mode 100644
index 0000000..c86b8db
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html
new file mode 100644
index 0000000..af4e0dc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceConflictException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceConflictException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html
new file mode 100644
index 0000000..4ab6cff
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleResourceNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleResourceNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleResourceNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleResourceNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html
new file mode 100644
index 0000000..338f17a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSecurityException.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSecurityException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSecurityException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSecurityException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSecurityException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></span></code>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSecurityException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSecurityException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html
new file mode 100644
index 0000000..8288e25
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerBusyException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleServerBusyException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleServerBusyException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleServerBusyException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleServerBusyException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleServerBusyException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerBusyException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerBusyException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html
new file mode 100644
index 0000000..97f0b40
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleServerException.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleServerException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleServerException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleServerException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleServerException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></span></code>
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></span></code>
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></span></code>
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleServerException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleServerException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html
new file mode 100644
index 0000000..9306387
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionClosedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionClosedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionClosedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionClosedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionClosedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionClosedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionClosedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionClosedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html
new file mode 100644
index 0000000..cd39c98
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionConflictException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionConflictException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionConflictException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionConflictException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionConflictException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionConflictException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionConflictException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionConflictException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html
new file mode 100644
index 0000000..d19eff9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleSessionTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleSessionTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleSessionTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleSessionTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html
new file mode 100644
index 0000000..0108a34
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUnauthorizedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUnauthorizedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUnauthorizedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnauthorizedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html
new file mode 100644
index 0000000..38d5bba
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUnsupportedException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUnsupportedException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUnsupportedException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUnsupportedException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUnsupportedException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUnsupportedException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUnsupportedException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUnsupportedException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html
new file mode 100644
index 0000000..d49c728
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamException.html
@@ -0,0 +1,252 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></span></code>
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></span></code>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></span></code>
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that throw <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html
new file mode 100644
index 0000000..dda9613
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamNotFoundException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamNotFoundException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamNotFoundException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamNotFoundException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html
new file mode 100644
index 0000000..3a22b60
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamTimeoutException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamTimeoutException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamTimeoutException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamTimeoutException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html
new file mode 100644
index 0000000..580abf9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.GuacamoleUpstreamUnavailableException" class="title">Uses of Class<br>org.apache.guacamole.GuacamoleUpstreamUnavailableException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.GuacamoleUpstreamUnavailableException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/class-use/GuacamoleUpstreamUnavailableException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html
new file mode 100644
index 0000000..9044405
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleReader.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Interface GuacamoleReader" class="title">Interface GuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a>, <a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleReader</span></pre>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>boolean&nbsp;available()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>char[]&nbsp;read()
+     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                              throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html
new file mode 100644
index 0000000..4a43d06
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/GuacamoleWriter.html
@@ -0,0 +1,312 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Interface GuacamoleWriter" class="title">Interface GuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a>, <a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleWriter</span></pre>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>void&nbsp;write(char[]&nbsp;chunk,
+           int&nbsp;off,
+           int&nbsp;len)
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>off</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>len</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>void&nbsp;write(char[]&nbsp;chunk)
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+               throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html
new file mode 100644
index 0000000..08c94e7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/ReaderGuacamoleReader.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ReaderGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ReaderGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Class ReaderGuacamoleReader" class="title">Class ReaderGuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.io.ReaderGuacamoleReader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ReaderGuacamoleReader</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></pre>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#ReaderGuacamoleReader-java.io.Reader-">ReaderGuacamoleReader</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>&nbsp;input)</code>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ReaderGuacamoleReader-java.io.Reader-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ReaderGuacamoleReader</h4>
+<pre>public&nbsp;ReaderGuacamoleReader(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Reader.html?is-external=true" title="class or interface in java.io">Reader</a>&nbsp;input)</pre>
+<div class="block">Creates a new ReaderGuacamoleReader which will use the given Reader as
+ the Guacamole instruction stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - The Reader to use as the Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>public&nbsp;boolean&nbsp;available()
+                  throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">GuacamoleReader</a></code></span></div>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;char[]&nbsp;read()
+            throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ReaderGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html
new file mode 100644
index 0000000..4eb0d5c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/WriterGuacamoleWriter.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>WriterGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WriterGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.io</div>
+<h2 title="Class WriterGuacamoleWriter" class="title">Class WriterGuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.io.WriterGuacamoleWriter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">WriterGuacamoleWriter</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></pre>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#WriterGuacamoleWriter-java.io.Writer-">WriterGuacamoleWriter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;output)</code>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;off,
+     int&nbsp;len)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="WriterGuacamoleWriter-java.io.Writer-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WriterGuacamoleWriter</h4>
+<pre>public&nbsp;WriterGuacamoleWriter(<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Writer.html?is-external=true" title="class or interface in java.io">Writer</a>&nbsp;output)</pre>
+<div class="block">Creates a new WriterGuacamoleWriter which will use the given Writer as
+ the Guacamole instruction stream.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>output</code> - The Writer to use as the Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk,
+                  int&nbsp;off,
+                  int&nbsp;len)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>off</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>len</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>public&nbsp;void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WriterGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html
new file mode 100644
index 0000000..7a1ac0c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleReader.html
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.io.GuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.io.GuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.io.GuacamoleReader" class="title">Uses of Interface<br>org.apache.guacamole.io.GuacamoleReader</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></span></code>
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></span></code>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FailoverGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html
new file mode 100644
index 0000000..1453885
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/GuacamoleWriter.html
@@ -0,0 +1,299 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.io.GuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.io.GuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.io.GuacamoleWriter" class="title">Uses of Interface<br>org.apache.guacamole.io.GuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></span></code>
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">InetGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SSLGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></span></code>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FailoverGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/GuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html
new file mode 100644
index 0000000..5349aba
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.io.ReaderGuacamoleReader" class="title">Uses of Class<br>org.apache.guacamole.io.ReaderGuacamoleReader</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.io.ReaderGuacamoleReader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/ReaderGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="ReaderGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html
new file mode 100644
index 0000000..4fa514c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.io.WriterGuacamoleWriter" class="title">Uses of Class<br>org.apache.guacamole.io.WriterGuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.io.WriterGuacamoleWriter</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/io/class-use/WriterGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="WriterGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-frame.html
new file mode 100644
index 0000000..4fe42cc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-frame.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/io/package-summary.html" target="classFrame">org.apache.guacamole.io</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleReader.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleReader</span></a></li>
+<li><a href="GuacamoleWriter.html" title="interface in org.apache.guacamole.io" target="classFrame"><span class="interfaceName">GuacamoleWriter</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io" target="classFrame">ReaderGuacamoleReader</a></li>
+<li><a href="WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io" target="classFrame">WriterGuacamoleWriter</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-summary.html
new file mode 100644
index 0000000..1673afb
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-summary.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.io (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.io</h1>
+<div class="docSummary">
+<div class="block">All classes relating directly to data input or output.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io">ReaderGuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleReader which wraps a standard Java Reader, using that Reader as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io">WriterGuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleWriter which wraps a standard Java Writer, using that Writer as
+ the Guacamole instruction stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.io Description">Package org.apache.guacamole.io Description</h2>
+<div class="block">All classes relating directly to data input or output.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-tree.html
new file mode 100644
index 0000000..b6c4b79
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-tree.html
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.io Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.io Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.io</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-use.html
new file mode 100644
index 0000000..6b990c9
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/io/package-use.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.io (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.io (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.io" class="title">Uses of Package<br>org.apache.guacamole.io</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.io">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.io">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.net">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.net">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleReader.html#org.apache.guacamole.protocol">GuacamoleReader</a>
+<div class="block">Provides abstract and raw character read access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/io/class-use/GuacamoleWriter.html#org.apache.guacamole.protocol">GuacamoleWriter</a>
+<div class="block">Provides abstract and raw character write access to a stream of Guacamole
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/io/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html
new file mode 100644
index 0000000..23483f3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/AbstractGuacamoleTunnel.html
@@ -0,0 +1,506 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class AbstractGuacamoleTunnel" class="title">Class AbstractGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.AbstractGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractGuacamoleTunnel</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></pre>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks. Implementations need only
+ provide the tunnel's UUID and socket.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#AbstractGuacamoleTunnel--">AbstractGuacamoleTunnel</a></span>()</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a>, <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractGuacamoleTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractGuacamoleTunnel</h4>
+<pre>public&nbsp;AbstractGuacamoleTunnel()</pre>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the underlying
+ GuacamoleSocket.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>public&nbsp;void&nbsp;releaseReader()</pre>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>public&nbsp;void&nbsp;releaseWriter()</pre>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html
new file mode 100644
index 0000000..ce9a9c4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/DelegatingGuacamoleTunnel.html
@@ -0,0 +1,549 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class DelegatingGuacamoleTunnel" class="title">Class DelegatingGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.DelegatingGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingGuacamoleTunnel</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></pre>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingGuacamoleTunnel</h4>
+<pre>public&nbsp;DelegatingGuacamoleTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The GuacamoleTunnel to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>public&nbsp;void&nbsp;releaseReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>public&nbsp;void&nbsp;releaseWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>public&nbsp;boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html
new file mode 100644
index 0000000..d91f621
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleSocket.html
@@ -0,0 +1,320 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Interface GuacamoleSocket" class="title">Interface GuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a>, <a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleSocket</span></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>boolean&nbsp;isOpen()</pre>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html
new file mode 100644
index 0000000..cb4debb
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/GuacamoleTunnel.html
@@ -0,0 +1,489 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Interface GuacamoleTunnel" class="title">Interface GuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a>, <a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a>, <a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleTunnel</span></pre>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></span></code>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireReader--">acquireReader</a></span>()</code>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#acquireWriter--">acquireWriter</a></span>()</code>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#close--">close</a></span>()</code>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a></span>()</code>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseReader--">releaseReader</a></span>()</code>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#releaseWriter--">releaseWriter</a></span>()</code>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="INTERNAL_DATA_OPCODE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>INTERNAL_DATA_OPCODE</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> INTERNAL_DATA_OPCODE</pre>
+<div class="block">The Guacamole protocol instruction opcode reserved for arbitrary
+ internal use by tunnel implementations. The value of this opcode is
+ guaranteed to be the empty string (""). Tunnel implementations may use
+ this opcode for any purpose. It is currently used by the HTTP tunnel to
+ mark the end of the HTTP response, and by the WebSocket tunnel to
+ transmit the tunnel UUID.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.net.GuacamoleTunnel.INTERNAL_DATA_OPCODE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="acquireReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireReader</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;acquireReader()</pre>
+<div class="block">Acquires exclusive read access to the Guacamole instruction stream
+ and returns a GuacamoleReader for reading from that stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader for reading from the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseReader</h4>
+<pre>void&nbsp;releaseReader()</pre>
+<div class="block">Relinquishes exclusive read access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleReader.</div>
+</li>
+</ul>
+<a name="hasQueuedReaderThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedReaderThreads</h4>
+<pre>boolean&nbsp;hasQueuedReaderThreads()</pre>
+<div class="block">Returns whether there are threads waiting for read access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for read access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="acquireWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>acquireWriter</h4>
+<pre><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;acquireWriter()</pre>
+<div class="block">Acquires exclusive write access to the Guacamole instruction stream
+ and returns a GuacamoleWriter for writing to that stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter for writing to the Guacamole instruction
+         stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="releaseWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>releaseWriter</h4>
+<pre>void&nbsp;releaseWriter()</pre>
+<div class="block">Relinquishes exclusive write access to the Guacamole instruction
+ stream. This function should be called whenever a thread finishes using
+ a GuacamoleTunnel's GuacamoleWriter.</div>
+</li>
+</ul>
+<a name="hasQueuedWriterThreads--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasQueuedWriterThreads</h4>
+<pre>boolean&nbsp;hasQueuedWriterThreads()</pre>
+<div class="block">Returns whether there are threads waiting for write access to the
+ Guacamole instruction stream.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if threads are waiting for write access the Guacamole
+         instruction stream, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>void&nbsp;close()
+    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Release all resources allocated to this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - if an error occurs while releasing
+                            resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>boolean&nbsp;isOpen()</pre>
+<div class="block">Returns whether this GuacamoleTunnel is open, or has been closed.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleTunnel is open, false if it is closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html
new file mode 100644
index 0000000..7eab040
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/InetGuacamoleSocket.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>InetGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="InetGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InetGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class InetGuacamoleSocket" class="title">Class InetGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.InetGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">InetGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#InetGuacamoleSocket-java.lang.String-int-">InetGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                   int&nbsp;port)</code>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="InetGuacamoleSocket-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>InetGuacamoleSocket</h4>
+<pre>public&nbsp;InetGuacamoleSocket(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port)
+                    throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new InetGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname of the Guacamole proxy server to connect to.</dd>
+<dd><code>port</code> - The port of the Guacamole proxy server to connect to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while connecting to the
+                            Guacamole proxy server.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/InetGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html
new file mode 100644
index 0000000..9ce12ac
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SSLGuacamoleSocket.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SSLGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SSLGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SSLGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class SSLGuacamoleSocket" class="title">Class SSLGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.SSLGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SSLGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#SSLGuacamoleSocket-java.lang.String-int-">SSLGuacamoleSocket</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                  int&nbsp;port)</code>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SSLGuacamoleSocket-java.lang.String-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SSLGuacamoleSocket</h4>
+<pre>public&nbsp;SSLGuacamoleSocket(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                          int&nbsp;port)
+                   throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new SSLGuacamoleSocket which reads and writes instructions
+ to the Guacamole instruction stream of the Guacamole proxy server
+ running at the given hostname and port using SSL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname of the Guacamole proxy server to connect to.</dd>
+<dd><code>port</code> - The port of the Guacamole proxy server to connect to.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while connecting to the
+                            Guacamole proxy server.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SSLGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html
new file mode 100644
index 0000000..b06ee23
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/SimpleGuacamoleTunnel.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net</div>
+<h2 title="Class SimpleGuacamoleTunnel" class="title">Class SimpleGuacamoleTunnel</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">org.apache.guacamole.net.AbstractGuacamoleTunnel</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.SimpleGuacamoleTunnel</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleGuacamoleTunnel</span>
+extends <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></pre>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket. The UUID of
+ the tunnel will be randomly generated.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.GuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#INTERNAL_DATA_OPCODE">INTERNAL_DATA_OPCODE</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getUUID--">getUUID</a></span>()</code>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.AbstractGuacamoleTunnel">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></h3>
+<code><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireReader--">acquireReader</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#acquireWriter--">acquireWriter</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#close--">close</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedReaderThreads--">hasQueuedReaderThreads</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#hasQueuedWriterThreads--">hasQueuedWriterThreads</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#isOpen--">isOpen</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseReader--">releaseReader</a>, <a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html#releaseWriter--">releaseWriter</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleGuacamoleTunnel</h4>
+<pre>public&nbsp;SimpleGuacamoleTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</pre>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to provide synchronized access for.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getUUID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUUID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;getUUID()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getUUID--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the unique identifier associated with this GuacamoleTunnel.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier associated with this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSocket--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSocket</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;getSocket()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">GuacamoleTunnel</a></code></span></div>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleSocket used by this GuacamoleTunnel.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleGuacamoleTunnel.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html
new file mode 100644
index 0000000..6331878
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.AbstractGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.AbstractGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="AbstractGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html
new file mode 100644
index 0000000..ad4365a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.DelegatingGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.DelegatingGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.DelegatingGuacamoleTunnel</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/DelegatingGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html
new file mode 100644
index 0000000..3975d66
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleSocket.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.GuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.GuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.GuacamoleSocket" class="title">Uses of Interface<br>org.apache.guacamole.net.GuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></span></code>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></span></code>
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>
+<div class="block">Returns the GuacamoleSocket used by this GuacamoleTunnel for reading
+ and writing.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleGuacamoleTunnel.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#getSocket--">getSocket</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html#SimpleGuacamoleTunnel-org.apache.guacamole.net.GuacamoleSocket-">SimpleGuacamoleTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new GuacamoleTunnel which synchronizes access to the
+ Guacamole instruction stream associated with the given GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></span></code>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></span></code>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></span></code>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html
new file mode 100644
index 0000000..7d6c6ee
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/GuacamoleTunnel.html
@@ -0,0 +1,292 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.GuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.GuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.GuacamoleTunnel" class="title">Uses of Interface<br>org.apache.guacamole.net.GuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> that implement <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></span></code>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></span></code>
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html#DelegatingGuacamoleTunnel-org.apache.guacamole.net.GuacamoleTunnel-">DelegatingGuacamoleTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Wraps the given tunnel such that all function calls against this tunnel
+ will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a> with parameters of type <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleHTTPTunnelServlet.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a> in <a href="../../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a> that return <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/GuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html
new file mode 100644
index 0000000..6a26125
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/InetGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.InetGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.InetGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.InetGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.net.InetGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.InetGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/InetGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="InetGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html
new file mode 100644
index 0000000..7131447
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.SSLGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.net.SSLGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.SSLGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SSLGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="SSLGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html
new file mode 100644
index 0000000..f6f2d3e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.SimpleGuacamoleTunnel" class="title">Uses of Class<br>org.apache.guacamole.net.SimpleGuacamoleTunnel</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.SimpleGuacamoleTunnel</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/class-use/SimpleGuacamoleTunnel.html" target="_top">Frames</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-frame.html
new file mode 100644
index 0000000..3976534
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-frame.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/net/package-summary.html" target="classFrame">org.apache.guacamole.net</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleSocket.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleSocket</span></a></li>
+<li><a href="GuacamoleTunnel.html" title="interface in org.apache.guacamole.net" target="classFrame"><span class="interfaceName">GuacamoleTunnel</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">AbstractGuacamoleTunnel</a></li>
+<li><a href="DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">DelegatingGuacamoleTunnel</a></li>
+<li><a href="InetGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">InetGuacamoleSocket</a></li>
+<li><a href="SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net" target="classFrame">SimpleGuacamoleTunnel</a></li>
+<li><a href="SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net" target="classFrame">SSLGuacamoleSocket</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-summary.html
new file mode 100644
index 0000000..72aec1e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-summary.html
@@ -0,0 +1,219 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net</h1>
+<div class="docSummary">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net">AbstractGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net">DelegatingGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">GuacamoleTunnel implementation which simply delegates all function calls to
+ an underlying GuacamoleTunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net">InetGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection over a given
+ hostname and port.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net">SimpleGuacamoleTunnel</a></td>
+<td class="colLast">
+<div class="block">GuacamoleTunnel implementation which uses a provided socket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net">SSLGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Provides abstract socket-like access to a Guacamole connection over SSL to
+ a given hostname and port.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net Description">Package org.apache.guacamole.net Description</h2>
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-tree.html
new file mode 100644
index 0000000..bc32f23
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-tree.html
@@ -0,0 +1,161 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/io/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-use.html
new file mode 100644
index 0000000..b218fc5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/net/package-use.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net" class="title">Uses of Package<br>org.apache.guacamole.net</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/AbstractGuacamoleTunnel.html#org.apache.guacamole.net">AbstractGuacamoleTunnel</a>
+<div class="block">Base GuacamoleTunnel implementation which synchronizes access to the
+ underlying reader and writer with reentrant locks.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleSocket.html#org.apache.guacamole.net">GuacamoleSocket</a>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.net">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleSocket.html#org.apache.guacamole.protocol">GuacamoleSocket</a>
+<div class="block">Provides abstract socket-like access to a Guacamole connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.servlet">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a> used by <a href="../../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/net/class-use/GuacamoleTunnel.html#org.apache.guacamole.websocket">GuacamoleTunnel</a>
+<div class="block">Provides a unique identifier and synchronized access to the GuacamoleReader
+ and GuacamoleWriter associated with a GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/net/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-frame.html
new file mode 100644
index 0000000..97774bf
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-frame.html
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../org/apache/guacamole/package-summary.html" target="classFrame">org.apache.guacamole</a></h1>
+<div class="indexContainer">
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientBadTypeException</a></li>
+<li><a href="GuacamoleClientException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientException</a></li>
+<li><a href="GuacamoleClientOverrunException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientOverrunException</a></li>
+<li><a href="GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTimeoutException</a></li>
+<li><a href="GuacamoleClientTooManyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleClientTooManyException</a></li>
+<li><a href="GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleConnectionClosedException</a></li>
+<li><a href="GuacamoleException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleException</a></li>
+<li><a href="GuacamoleResourceClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceClosedException</a></li>
+<li><a href="GuacamoleResourceConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceConflictException</a></li>
+<li><a href="GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleResourceNotFoundException</a></li>
+<li><a href="GuacamoleSecurityException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSecurityException</a></li>
+<li><a href="GuacamoleServerBusyException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerBusyException</a></li>
+<li><a href="GuacamoleServerException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleServerException</a></li>
+<li><a href="GuacamoleSessionClosedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionClosedException</a></li>
+<li><a href="GuacamoleSessionConflictException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionConflictException</a></li>
+<li><a href="GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleSessionTimeoutException</a></li>
+<li><a href="GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnauthorizedException</a></li>
+<li><a href="GuacamoleUnsupportedException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUnsupportedException</a></li>
+<li><a href="GuacamoleUpstreamException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamException</a></li>
+<li><a href="GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamNotFoundException</a></li>
+<li><a href="GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamTimeoutException</a></li>
+<li><a href="GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole" target="classFrame">GuacamoleUpstreamUnavailableException</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-summary.html
new file mode 100644
index 0000000..bd06e20
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-summary.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../org/apache/guacamole/io/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole</h1>
+<div class="docSummary">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">GuacamoleClientBadTypeException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when data has been submitted with an unsupported
+ mimetype.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">GuacamoleClientOverrunException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the client has sent too much data.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">GuacamoleClientTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the client is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">GuacamoleClientTooManyException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when too many requests have been received
+ by the current client, and further requests are being rejected, either
+ temporarily or permanently.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">GuacamoleConnectionClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when an operation cannot be performed because
+ its corresponding connection is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">GuacamoleResourceClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when a resource is no longer available because
+ it is closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">GuacamoleResourceConflictException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when a resource has been requested, but that
+ resource is locked or currently in use, and cannot be accessed by the
+ current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">GuacamoleResourceNotFoundException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API fails to find
+ a requested resource, such as a configuration or tunnel.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">GuacamoleServerBusyException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the server is too busy to service the
+ request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a></td>
+<td class="colLast">
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">GuacamoleSessionClosedException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">GuacamoleSessionConflictException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it conflicted with another session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">GuacamoleSessionTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that a session within an upstream server (such
+ as the remote desktop) has ended because it appeared to be inactive.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">GuacamoleUnauthorizedException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource, but access MAY be granted were the user
+ authorized (logged in).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">GuacamoleUnsupportedException</a></td>
+<td class="colLast">
+<div class="block">An exception which is thrown when the requested operation is unsupported
+ or unimplemented.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">GuacamoleUpstreamNotFoundException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) does not appear to exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">GuacamoleUpstreamTimeoutException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is taking too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">GuacamoleUpstreamUnavailableException</a></td>
+<td class="colLast">
+<div class="block">An exception which indicates that an upstream server (such as the remote
+ desktop) is not available to service the request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole Description">Package org.apache.guacamole Description</h2>
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../org/apache/guacamole/io/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-tree.html
new file mode 100644
index 0000000..6911f2e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-tree.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/apache/guacamole/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../org/apache/guacamole/io/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-use.html
new file mode 100644
index 0000000..504a8e8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/package-use.html
@@ -0,0 +1,326 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole" class="title">Uses of Package<br>org.apache.guacamole</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.servlet">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.websocket">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleClientException.html#org.apache.guacamole">GuacamoleClientException</a>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an error in the client's request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleSecurityException.html#org.apache.guacamole">GuacamoleSecurityException</a>
+<div class="block">A security-related exception thrown when parts of the Guacamole API is
+ denying access to a resource.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleServerException.html#org.apache.guacamole">GuacamoleServerException</a>
+<div class="block">A generic exception thrown when part of the Guacamole API encounters
+ an unexpected, internal error.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleUpstreamException.html#org.apache.guacamole">GuacamoleUpstreamException</a>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.io">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.net">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.protocol">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleUpstreamException.html#org.apache.guacamole.protocol">GuacamoleUpstreamException</a>
+<div class="block">An exception which indicates than an upstream server (such as the remote
+ desktop) is returning an error or is otherwise unreachable.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.servlet">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.servlet">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.websocket">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> used by <a href="../../../org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../org/apache/guacamole/class-use/GuacamoleException.html#org.apache.guacamole.websocket">GuacamoleException</a>
+<div class="block">A generic exception thrown when parts of the Guacamole API encounter
+ errors.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../index-all.html">Index</a></li>
+<li><a href="../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../index.html?org/apache/guacamole/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html
new file mode 100644
index 0000000..56506fa
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfiguredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class ConfiguredGuacamoleSocket" class="title">Class ConfiguredGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ConfiguredGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.
+
+ This is useful for forcing a connection to the Guacamole proxy server with
+ a specific configuration while disallowing the client that will be using
+ this GuacamoleSocket from manually controlling the initial protocol
+ handshake.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConnectionID--">getConnectionID</a></span>()</code>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion</a></span>()</code>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ConfiguredGuacamoleSocket</h4>
+<pre>public&nbsp;ConfiguredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)
+                          throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket. A default GuacamoleClientInformation object
+ is used to provide basic client information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>config</code> - The GuacamoleConfiguration to use to complete the initial
+               protocol handshake.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while completing the
+                            initial protocol handshake.</dd>
+</dl>
+</li>
+</ul>
+<a name="ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ConfiguredGuacamoleSocket</h4>
+<pre>public&nbsp;ConfiguredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                                 <a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)
+                          throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>config</code> - The GuacamoleConfiguration to use to complete the initial
+               protocol handshake.</dd>
+<dd><code>info</code> - The GuacamoleClientInformation to use to complete the initial
+             protocol handshake.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while completing the
+                            initial protocol handshake.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;getConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration used to configure this
+         ConfiguredGuacamoleSocket.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionID()</pre>
+<div class="block">Returns the unique ID associated with the Guacamole connection
+ negotiated by this ConfiguredGuacamoleSocket. The ID is provided by
+ the "ready" instruction returned by the Guacamole proxy.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the negotiated Guacamole connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocolVersion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocolVersion</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;getProtocolVersion()</pre>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket. This
+ version is the lowest version common to both ConfiguredGuacamoleSocket
+ and the relevant Guacamole proxy instance (guacd).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol version that this ConfiguredGuacamoleSocket will use to
+     communicate with guacd.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConfiguredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html
new file mode 100644
index 0000000..a4c38f2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FailoverGuacamoleSocket.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FailoverGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FailoverGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FailoverGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FailoverGuacamoleSocket" class="title">Class FailoverGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FailoverGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FailoverGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session. Upstream errors which are intercepted early enough result in
+ exceptions thrown immediately within the FailoverGuacamoleSocket's
+ constructor, allowing a different socket to be substituted prior to
+ fulfilling the connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">FailoverGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       int&nbsp;instructionQueueLimit)</code>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FailoverGuacamoleSocket</h4>
+<pre>public&nbsp;FailoverGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                               int&nbsp;instructionQueueLimit)
+                        throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a>,
+                               <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until the given instruction queue limit is reached. If an
+ upstream error is encountered, it is thrown as a
+ GuacamoleUpstreamException. This constructor will block until an error
+ is encountered, until insufficient space remains in the instruction
+ queue, or until the connection appears to have been successful.
+ Once the FailoverGuacamoleSocket has been created, all reads, writes,
+ etc. will be delegated to the provided socket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket of the Guacamole connection this
+     FailoverGuacamoleSocket should handle.</dd>
+<dd><code>instructionQueueLimit</code> - The maximum number of characters of Guacamole instruction data to
+     store within the instruction queue while searching for errors. Once
+     this limit is exceeded, the connection is assumed to be successful.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading data from the provided socket.</dd>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code> - If the connection to guacd succeeded, but an error occurred while
+     connecting to the remote desktop.</dd>
+</dl>
+</li>
+</ul>
+<a name="FailoverGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FailoverGuacamoleSocket</h4>
+<pre>public&nbsp;FailoverGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket)
+                        throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a>,
+                               <a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></pre>
+<div class="block">Creates a new FailoverGuacamoleSocket which reads Guacamole instructions
+ from the given socket, searching for errors from the upstream remote
+ desktop until a maximum of 128KB of instruction data has been queued. If
+ an upstream error is encountered, it is thrown as a
+ GuacamoleUpstreamException. This constructor will block until an error
+ is encountered, until insufficient space remains in the instruction
+ queue, or until the connection appears to have been successful.
+ Once the FailoverGuacamoleSocket has been created, all reads, writes,
+ etc. will be delegated to the provided socket.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket of the Guacamole connection this
+     FailoverGuacamoleSocket should handle.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading data from the provided socket.</dd>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a></code> - If the connection to guacd succeeded, but an error occurred while
+     connecting to the remote desktop.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FailoverGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html
new file mode 100644
index 0000000..d182b54
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleReader.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleReader" class="title">Class FilteredGuacamoleReader</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleReader</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleReader</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></pre>
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions. Instructions may also be dropped or denied by the the
+ filter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#available--">available</a></span>()</code>
+<div class="block">Returns whether instruction data is available for reading.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>char[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#read--">read</a></span>()</code>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleReader</h4>
+<pre>public&nbsp;FilteredGuacamoleReader(<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</pre>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions. Future reads will return only instructions which pass
+ the filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>reader</code> - The GuacamoleReader to wrap.</dd>
+<dd><code>filter</code> - The filter which dictates which instructions are read, and
+               how.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="available--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>available</h4>
+<pre>public&nbsp;boolean&nbsp;available()
+                  throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">GuacamoleReader</a></code></span></div>
+<div class="block">Returns whether instruction data is available for reading. Note that
+ this does not guarantee an entire instruction is available. If a full
+ instruction is not available, this function can return true, and a call
+ to read() will still block.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#available--">available</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if instruction data is available for reading, false
+         otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while checking for
+                            available data.</dd>
+</dl>
+</li>
+</ul>
+<a name="read--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>read</h4>
+<pre>public&nbsp;char[]&nbsp;read()
+            throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads at least one complete Guacamole instruction, returning a buffer
+ containing one or more complete Guacamole instructions and no
+ incomplete Guacamole instructions. This function will block until at
+ least one complete instruction is available.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#read--">read</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A buffer containing at least one complete Guacamole instruction,
+         or null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="readInstruction--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>readInstruction</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;readInstruction()
+                                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">GuacamoleReader</a></code></span></div>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The next complete instruction from the stream, fully parsed, or
+         null if no more instructions are available for reading.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while reading from the
+                            stream, or if the instruction cannot be
+                            parsed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleReader.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html
new file mode 100644
index 0000000..29d6e22
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleSocket.html
@@ -0,0 +1,404 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleSocket" class="title">Class FilteredGuacamoleSocket</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleSocket</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleSocket</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></pre>
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#close--">close</a></span>()</code>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getReader--">getReader</a></span>()</code>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#getWriter--">getWriter</a></span>()</code>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#isOpen--">isOpen</a></span>()</code>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleSocket</h4>
+<pre>public&nbsp;FilteredGuacamoleSocket(<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</pre>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc. If reads or writes should be unfiltered, simply specify
+ null rather than a particular filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>socket</code> - The GuacamoleSocket to wrap.</dd>
+<dd><code>readFilter</code> - The GuacamoleFilter to apply to all read instructions,
+                   if any.</dd>
+<dd><code>writeFilter</code> - The GuacamoleFilter to apply to all written 
+                    instructions, if any.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getReader--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getReader</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;getReader()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleReader which can be used to read from the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getReader--">getReader</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleReader which can be used to read from the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWriter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWriter</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;getWriter()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns a GuacamoleWriter which can be used to write to the
+ Guacamole instruction stream associated with the connection
+ represented by this GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#getWriter--">getWriter</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A GuacamoleWriter which can be used to write to the
+         Guacamole instruction stream.</dd>
+</dl>
+</li>
+</ul>
+<a name="close--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>close</h4>
+<pre>public&nbsp;void&nbsp;close()
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">GuacamoleSocket</a></code></span></div>
+<div class="block">Releases all resources in use by the connection represented by this
+ GuacamoleSocket.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#close--">close</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while releasing resources.</dd>
+</dl>
+</li>
+</ul>
+<a name="isOpen--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isOpen</h4>
+<pre>public&nbsp;boolean&nbsp;isOpen()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">GuacamoleSocket</a></code></span></div>
+<div class="block">Returns whether this GuacamoleSocket is open and can be used for reading
+ and writing.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html#isOpen--">isOpen</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this GuacamoleSocket is open, false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleSocket.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html
new file mode 100644
index 0000000..0b225f5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/FilteredGuacamoleWriter.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FilteredGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FilteredGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class FilteredGuacamoleWriter" class="title">Class FilteredGuacamoleWriter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.FilteredGuacamoleWriter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FilteredGuacamoleWriter</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></pre>
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions. Instructions may also be dropped or denied by
+ the filter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-">write</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#write-char:A-int-int-">write</a></span>(char[]&nbsp;chunk,
+     int&nbsp;offset,
+     int&nbsp;length)</code>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FilteredGuacamoleWriter</h4>
+<pre>public&nbsp;FilteredGuacamoleWriter(<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                               <a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</pre>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions. Future writes will only write instructions which pass
+ the filter.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>writer</code> - The GuacamoleWriter to wrap.</dd>
+<dd><code>filter</code> - The filter which dictates which instructions are written,
+               and how.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="write-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk,
+                  int&nbsp;offset,
+                  int&nbsp;length)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes a portion of the given array of characters to the Guacamole
+ instruction stream. The portion must contain only complete Guacamole
+ instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-int-int-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters containing Guacamole instructions.</dd>
+<dd><code>offset</code> - The start offset of the portion of the array to write.</dd>
+<dd><code>length</code> - The length of the portion of the array to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            portion of the array specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="write-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>write</h4>
+<pre>public&nbsp;void&nbsp;write(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the entire given array of characters to the Guacamole instruction
+ stream. The array must consist only of complete Guacamole instructions.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#write-char:A-">write</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - An array of characters consisting only of complete
+              Guacamole instructions.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            the specified array.</dd>
+</dl>
+</li>
+</ul>
+<a name="writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>writeInstruction</h4>
+<pre>public&nbsp;void&nbsp;writeInstruction(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">GuacamoleWriter</a></code></span></div>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The Guacamole instruction to write.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurred while writing the
+                            instruction.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FilteredGuacamoleWriter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html
new file mode 100644
index 0000000..dc1fc2c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleClientInformation.html
@@ -0,0 +1,510 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleClientInformation (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleClientInformation (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientInformation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleClientInformation" class="title">Class GuacamoleClientInformation</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleClientInformation</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleClientInformation</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#GuacamoleClientInformation--">GuacamoleClientInformation</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getAudioMimetypes--">getAudioMimetypes</a></span>()</code>
+<div class="block">Returns the list of audio mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getImageMimetypes--">getImageMimetypes</a></span>()</code>
+<div class="block">Returns the list of image mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalResolution--">getOptimalResolution</a></span>()</code>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenHeight--">getOptimalScreenHeight</a></span>()</code>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getOptimalScreenWidth--">getOptimalScreenWidth</a></span>()</code>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getTimezone--">getTimezone</a></span>()</code>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#getVideoMimetypes--">getVideoMimetypes</a></span>()</code>
+<div class="block">Returns the list of video mimetypes supported by the client.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalResolution-int-">setOptimalResolution</a></span>(int&nbsp;optimalResolution)</code>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenHeight-int-">setOptimalScreenHeight</a></span>(int&nbsp;optimalScreenHeight)</code>
+<div class="block">Sets the client's optimal screen height.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setOptimalScreenWidth-int-">setOptimalScreenWidth</a></span>(int&nbsp;optimalScreenWidth)</code>
+<div class="block">Sets the client's optimal screen width.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html#setTimezone-java.lang.String-">setTimezone</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timezone)</code>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleClientInformation--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleClientInformation</h4>
+<pre>public&nbsp;GuacamoleClientInformation()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOptimalScreenWidth--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalScreenWidth</h4>
+<pre>public&nbsp;int&nbsp;getOptimalScreenWidth()</pre>
+<div class="block">Returns the optimal screen width requested by the client, in pixels.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen width requested by the client, in pixels.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalScreenWidth-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalScreenWidth</h4>
+<pre>public&nbsp;void&nbsp;setOptimalScreenWidth(int&nbsp;optimalScreenWidth)</pre>
+<div class="block">Sets the client's optimal screen width.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalScreenWidth</code> - The optimal screen width of the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptimalScreenHeight--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalScreenHeight</h4>
+<pre>public&nbsp;int&nbsp;getOptimalScreenHeight()</pre>
+<div class="block">Returns the optimal screen height requested by the client, in pixels.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen height requested by the client, in pixels.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalScreenHeight-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalScreenHeight</h4>
+<pre>public&nbsp;void&nbsp;setOptimalScreenHeight(int&nbsp;optimalScreenHeight)</pre>
+<div class="block">Sets the client's optimal screen height.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalScreenHeight</code> - The optimal screen height of the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptimalResolution--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptimalResolution</h4>
+<pre>public&nbsp;int&nbsp;getOptimalResolution()</pre>
+<div class="block">Returns the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The optimal screen resolution.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptimalResolution-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setOptimalResolution</h4>
+<pre>public&nbsp;void&nbsp;setOptimalResolution(int&nbsp;optimalResolution)</pre>
+<div class="block">Sets the resolution of the screen if the optimal width and height are
+ used, in DPI.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>optimalResolution</code> - The optimal screen resolution in DPI.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAudioMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAudioMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAudioMimetypes()</pre>
+<div class="block">Returns the list of audio mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of audio mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getVideoMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getVideoMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getVideoMimetypes()</pre>
+<div class="block">Returns the list of video mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of video mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getImageMimetypes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getImageMimetypes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getImageMimetypes()</pre>
+<div class="block">Returns the list of image mimetypes supported by the client. To add or
+ removed supported mimetypes, the list returned by this function can be
+ modified.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of image mimetypes supported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTimezone--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTimezone</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getTimezone()</pre>
+<div class="block">Return the timezone as reported by the client, or null if the timezone
+ is not set.  Valid timezones are specified in IANA zone key format,
+ also known as Olson time zone database or TZ Database.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A string value of the timezone reported by the client.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTimezone-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTimezone</h4>
+<pre>public&nbsp;void&nbsp;setTimezone(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timezone)</pre>
+<div class="block">Set the string value of the timezone, or null if the timezone will not
+ be provided by the client.  Valid timezones are specified in IANA zone
+ key format (aka Olson time zone database or tz database).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timezone</code> - The string value of the timezone reported by the client, in tz
+     database format, or null if the timezone is not provided by the
+     client.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleClientInformation.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html
new file mode 100644
index 0000000..e1d2d1c
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleConfiguration.html
@@ -0,0 +1,529 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleConfiguration (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleConfiguration (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleConfiguration" class="title">Class GuacamoleConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleConfiguration</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.protocol.GuacamoleConfiguration">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration--">GuacamoleConfiguration</a></span>()</code>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getConnectionID--">getConnectionID</a></span>()</code>
+<div class="block">Returns the ID of the connection being joined, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameter-java.lang.String-">getParameter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameterNames--">getParameterNames</a></span>()</code>
+<div class="block">Returns a set of all currently defined parameter names.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#getProtocol--">getProtocol</a></span>()</code>
+<div class="block">Returns the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setConnectionID-java.lang.String-">setConnectionID</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connectionID)</code>
+<div class="block">Sets the ID of the connection being joined, if any.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameter-java.lang.String-java.lang.String-">setParameter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value for the parameter with the given name.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#setProtocol-java.lang.String-">setProtocol</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;protocol)</code>
+<div class="block">Sets the name of the protocol to be used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#unsetParameter-java.lang.String-">unsetParameter</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleConfiguration</h4>
+<pre>public&nbsp;GuacamoleConfiguration()</pre>
+<div class="block">Creates a new, blank GuacamoleConfiguration with its protocol, connection
+ ID, and parameters unset.</div>
+</li>
+</ul>
+<a name="GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleConfiguration</h4>
+<pre>public&nbsp;GuacamoleConfiguration(<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</pre>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to copy.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionID--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionID</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionID()</pre>
+<div class="block">Returns the ID of the connection being joined, if any. If no connection
+ is being joined, this returns null, and the protocol must be set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the connection being joined, or null if no connection
+         is being joined.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionID-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionID</h4>
+<pre>public&nbsp;void&nbsp;setConnectionID(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connectionID)</pre>
+<div class="block">Sets the ID of the connection being joined, if any. If no connection
+ is being joined, this value must be omitted, and the protocol must be
+ set instead.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionID</code> - The ID of the connection being joined.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getProtocol()</pre>
+<div class="block">Returns the name of the protocol to be used.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the protocol to be used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setProtocol</h4>
+<pre>public&nbsp;void&nbsp;setProtocol(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;protocol)</pre>
+<div class="block">Sets the name of the protocol to be used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>protocol</code> - The name of the protocol to be used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParameter(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value set for the parameter with the given name, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to return the value for.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the parameter with the given name, or null if
+         that parameter has not been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameter-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameter</h4>
+<pre>public&nbsp;void&nbsp;setParameter(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value for the parameter with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to set the value for.</dd>
+<dd><code>value</code> - The value to set for the parameter with the given name.</dd>
+</dl>
+</li>
+</ul>
+<a name="unsetParameter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsetParameter</h4>
+<pre>public&nbsp;void&nbsp;unsetParameter(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes the value set for the parameter with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the parameter to remove the value of.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameterNames--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameterNames</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameterNames()</pre>
+<div class="block">Returns a set of all currently defined parameter names. Each name
+ corresponds to a parameter that has a value set on this
+ GuacamoleConfiguration via setParameter().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all currently defined parameter names.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Returns a map which contains parameter name/value pairs as key/value
+ pairs. Changes to this map will affect the parameters stored within
+ this configuration.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all parameter name/value pairs as key/value
+     pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all parameter name/value pairs as key/value
+     pairs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html
new file mode 100644
index 0000000..b7c4b94
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleFilter.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleFilter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleFilter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Interface GuacamoleFilter" class="title">Interface GuacamoleFilter</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleFilter</span></pre>
+<div class="block">Interface which provides for the filtering of individual instructions. Each
+ filtered instruction may be allowed through untouched, modified, replaced,
+ dropped, or explicitly denied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="filter-org.apache.guacamole.protocol.GuacamoleInstruction-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filter</h4>
+<pre><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;filter(<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)
+                     throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>instruction</code> - The instruction to filter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The original instruction, if the instruction is to be allowed,
+         a modified version of the instruction, if the instruction is
+         to be overridden, or null, if the instruction is to be dropped.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs filtering the instruction,
+                            or if the instruction must be explicitly
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html
new file mode 100644
index 0000000..f637db7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleInstruction.html
@@ -0,0 +1,380 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInstruction (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInstruction (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInstruction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleInstruction" class="title">Class GuacamoleInstruction</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleInstruction</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInstruction</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.util.List-">GuacamoleInstruction</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                    <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</code>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#GuacamoleInstruction-java.lang.String-java.lang.String...-">GuacamoleInstruction</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                    <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</code>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#getArgs--">getArgs</a></span>()</code>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#getOpcode--">getOpcode</a></span>()</code>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html#toString--">toString</a></span>()</code>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInstruction-java.lang.String-java.lang.String...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInstruction</h4>
+<pre>public&nbsp;GuacamoleInstruction(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                            <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>...&nbsp;args)</pre>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>opcode</code> - The opcode of the instruction to create.</dd>
+<dd><code>args</code> - The list of argument values to provide in the new
+             instruction if any.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInstruction-java.lang.String-java.util.List-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInstruction</h4>
+<pre>public&nbsp;GuacamoleInstruction(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;opcode,
+                            <a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;args)</pre>
+<div class="block">Creates a new GuacamoleInstruction having the given Operation and
+ list of arguments values. The list given will be used to back the
+ internal list of arguments and the list returned by getArgs().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>opcode</code> - The opcode of the instruction to create.</dd>
+<dd><code>args</code> - The list of argument values to provide in the new
+             instruction if any.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getOpcode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOpcode</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getOpcode()</pre>
+<div class="block">Returns the opcode associated with this GuacamoleInstruction.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The opcode associated with this GuacamoleInstruction.</dd>
+</dl>
+</li>
+</ul>
+<a name="getArgs--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getArgs</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getArgs()</pre>
+<div class="block">Returns a List of all argument values specified for this
+ GuacamoleInstruction. Note that the List returned is immutable.
+ Attempts to modify the list will result in exceptions.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A List of all argument values specified for this
+         GuacamoleInstruction.</dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<div class="block">Returns this GuacamoleInstruction in the form it would be sent over the
+ Guacamole protocol.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>This GuacamoleInstruction in the form it would be sent over the
+     Guacamole protocol.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInstruction.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html
new file mode 100644
index 0000000..9281d08
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleParser.html
@@ -0,0 +1,479 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleParser (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleParser (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleParser" class="title">Class GuacamoleParser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleParser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleParser</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</pre>
+<div class="block">Parser for the Guacamole protocol. Arbitrary instruction data is appended,
+ and instructions are returned as a result. Invalid instructions result in
+ exceptions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_DIGITS">INSTRUCTION_MAX_DIGITS</a></span></code>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_ELEMENTS">INSTRUCTION_MAX_ELEMENTS</a></span></code>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#INSTRUCTION_MAX_LENGTH">INSTRUCTION_MAX_LENGTH</a></span></code>
+<div class="block">The maximum number of characters per instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#GuacamoleParser--">GuacamoleParser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-">append</a></span>(char[]&nbsp;chunk)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#append-char:A-int-int-">append</a></span>(char[]&nbsp;chunk,
+      int&nbsp;offset,
+      int&nbsp;length)</code>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#hasNext--">hasNext</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#next--">next</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html#remove--">remove</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.util.Iterator">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;java.util.<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#forEachRemaining-java.util.function.Consumer-" title="class or interface in java.util">forEachRemaining</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="INSTRUCTION_MAX_LENGTH">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_LENGTH</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_LENGTH</pre>
+<div class="block">The maximum number of characters per instruction.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_LENGTH">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="INSTRUCTION_MAX_DIGITS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_DIGITS</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_DIGITS</pre>
+<div class="block">The maximum number of digits to allow per length prefix.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_DIGITS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="INSTRUCTION_MAX_ELEMENTS">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>INSTRUCTION_MAX_ELEMENTS</h4>
+<pre>public static final&nbsp;int INSTRUCTION_MAX_ELEMENTS</pre>
+<div class="block">The maximum number of elements per instruction, including the opcode.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.protocol.GuacamoleParser.INSTRUCTION_MAX_ELEMENTS">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleParser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleParser</h4>
+<pre>public&nbsp;GuacamoleParser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="append-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public&nbsp;int&nbsp;append(char[]&nbsp;chunk,
+                  int&nbsp;offset,
+                  int&nbsp;length)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - The buffer containing the data to append.</dd>
+<dd><code>offset</code> - The offset within the buffer where the data begins.</dd>
+<dd><code>length</code> - The length of the data to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of characters appended, or 0 if complete instructions
+         have already been parsed and must be read via next() before
+         more data can be appended.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while parsing the new data.</dd>
+</dl>
+</li>
+</ul>
+<a name="append-char:A-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>append</h4>
+<pre>public&nbsp;int&nbsp;append(char[]&nbsp;chunk)
+           throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Appends data from the given buffer to the current instruction.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>chunk</code> - The data to append.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of characters appended, or 0 if complete instructions
+         have already been parsed and must be read via next() before
+         more data can be appended.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while parsing the new data.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasNext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasNext</h4>
+<pre>public&nbsp;boolean&nbsp;hasNext()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#hasNext--" title="class or interface in java.util">hasNext</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="next--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>next</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;next()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#next--" title="class or interface in java.util">next</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+<a name="remove--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true#remove--" title="class or interface in java.util">remove</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&gt;</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleParser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html
new file mode 100644
index 0000000..3e6153d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolCapability.html
@@ -0,0 +1,413 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProtocolCapability (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProtocolCapability (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolCapability.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Enum GuacamoleProtocolCapability" class="title">Enum GuacamoleProtocolCapability</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleProtocolCapability</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <span class="typeNameLabel">GuacamoleProtocolCapability</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&gt;</pre>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#ARBITRARY_HANDSHAKE_ORDER">ARBITRARY_HANDSHAKE_ORDER</a></span></code>
+<div class="block">The protocol does not require handshake instructions to be sent in a
+ specific order, nor that all handshake instructions be sent.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#PROTOCOL_VERSION_DETECTION">PROTOCOL_VERSION_DETECTION</a></span></code>
+<div class="block">Negotiation of Guacamole protocol version between client and server
+ during the protocol handshake.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#TIMEZONE_HANDSHAKE">TIMEZONE_HANDSHAKE</a></span></code>
+<div class="block">Support for the "timezone" handshake instruction.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</code>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="ARBITRARY_HANDSHAKE_ORDER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ARBITRARY_HANDSHAKE_ORDER</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> ARBITRARY_HANDSHAKE_ORDER</pre>
+<div class="block">The protocol does not require handshake instructions to be sent in a
+ specific order, nor that all handshake instructions be sent. Arbitrary
+ handshake order was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+<a name="PROTOCOL_VERSION_DETECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PROTOCOL_VERSION_DETECTION</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> PROTOCOL_VERSION_DETECTION</pre>
+<div class="block">Negotiation of Guacamole protocol version between client and server
+ during the protocol handshake. The ability to negotiate protocol
+ versions was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+<a name="TIMEZONE_HANDSHAKE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TIMEZONE_HANDSHAKE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> TIMEZONE_HANDSHAKE</pre>
+<div class="block">Support for the "timezone" handshake instruction. The "timezone"
+ instruction allows the client to request that the server forward their
+ local timezone for use within the remote desktop session. Support for
+ forwarding the client timezone was introduced in
+ <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0"><code>GuacamoleProtocolVersion.VERSION_1_1_0</code></a>.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleProtocolCapability c : GuacamoleProtocolCapability.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a name="isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isSupported</h4>
+<pre>public&nbsp;boolean&nbsp;isSupported(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</pre>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>version</code> - The Guacamole protocol version to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this capability is supported by the given protocol version,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolCapability.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html
new file mode 100644
index 0000000..e3ed5eb
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleProtocolVersion.html
@@ -0,0 +1,532 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProtocolVersion (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProtocolVersion (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":9,"i7":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolVersion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Class GuacamoleProtocolVersion" class="title">Class GuacamoleProtocolVersion</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleProtocolVersion</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleProtocolVersion</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Representation of a Guacamole protocol version. Convenience methods are
+ provided for parsing and comparing versions, as is necessary when
+ determining the version of the Guacamole protocol common to guacd and a
+ client.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span></code>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span></code>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span></code>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#GuacamoleProtocolVersion-int-int-int-">GuacamoleProtocolVersion</a></span>(int&nbsp;major,
+                        int&nbsp;minor,
+                        int&nbsp;patch)</code>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast</a></span>(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</code>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMajor--">getMajor</a></span>()</code>
+<div class="block">Return the major version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getMinor--">getMinor</a></span>()</code>
+<div class="block">Return the minor version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#getPatch--">getPatch</a></span>()</code>
+<div class="block">Return the patch version component of the protocol version.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</code>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#toString--">toString</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="VERSION_1_0_0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VERSION_1_0_0</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> VERSION_1_0_0</pre>
+<div class="block">Protocol version 1.0.0 and older.  Any client that doesn't explicitly
+ set the protocol version will negotiate down to this protocol version.
+ This requires that handshake instructions be ordered correctly, and
+ lacks support for certain protocol-related features introduced in later
+ versions.</div>
+</li>
+</ul>
+<a name="VERSION_1_1_0">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>VERSION_1_1_0</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> VERSION_1_1_0</pre>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</li>
+</ul>
+<a name="LATEST">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LATEST</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> LATEST</pre>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleProtocolVersion-int-int-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleProtocolVersion</h4>
+<pre>public&nbsp;GuacamoleProtocolVersion(int&nbsp;major,
+                                int&nbsp;minor,
+                                int&nbsp;patch)</pre>
+<div class="block">Generate a new GuacamoleProtocolVersion object with the given
+ major version, minor version, and patch version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>major</code> - The integer representation of the major version component.</dd>
+<dd><code>minor</code> - The integer representation of the minor version component.</dd>
+<dd><code>patch</code> - The integer representation of the patch version component.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getMajor--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMajor</h4>
+<pre>public&nbsp;int&nbsp;getMajor()</pre>
+<div class="block">Return the major version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer major version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMinor--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMinor</h4>
+<pre>public&nbsp;int&nbsp;getMinor()</pre>
+<div class="block">Return the minor version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer minor version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPatch--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPatch</h4>
+<pre>public&nbsp;int&nbsp;getPatch()</pre>
+<div class="block">Return the patch version component of the protocol version.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer patch version component.</dd>
+</dl>
+</li>
+</ul>
+<a name="atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>atLeast</h4>
+<pre>public&nbsp;boolean&nbsp;atLeast(<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</pre>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>otherVersion</code> - The version to which this GuacamoleProtocolVersion should be compared.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if this object is at least as recent as the given version,
+     false if the given version is newer.</dd>
+</dl>
+</li>
+</ul>
+<a name="parseVersion-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parseVersion</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;parseVersion(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</pre>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.  If no value is provided, return
+ null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>version</code> - The String format of the version to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The enum value that matches the specified version, VERSION_1_0_0
+     if no match is found, or null if no comparison version is provided.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="toString--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toString</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProtocolVersion.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html
new file mode 100644
index 0000000..b0e64d4
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/GuacamoleStatus.html
@@ -0,0 +1,759 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:09 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleStatus (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleStatus (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocol</div>
+<h2 title="Enum GuacamoleStatus" class="title">Enum GuacamoleStatus</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocol.GuacamoleStatus</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public enum <span class="typeNameLabel">GuacamoleStatus</span>
+extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&gt;</pre>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_BAD_REQUEST">CLIENT_BAD_REQUEST</a></span></code>
+<div class="block">The operation could not be performed because bad parameters were given.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_BAD_TYPE">CLIENT_BAD_TYPE</a></span></code>
+<div class="block">The client sent data of an unsupported or unexpected type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_FORBIDDEN">CLIENT_FORBIDDEN</a></span></code>
+<div class="block">Permission was denied to perform the operation, and this operation will
+ not be granted even if the user is authorized.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_OVERRUN">CLIENT_OVERRUN</a></span></code>
+<div class="block">The client sent too much data.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_TIMEOUT">CLIENT_TIMEOUT</a></span></code>
+<div class="block">The client took too long to respond.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_TOO_MANY">CLIENT_TOO_MANY</a></span></code>
+<div class="block">The operation failed because the current client is already using too
+ many resources.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#CLIENT_UNAUTHORIZED">CLIENT_UNAUTHORIZED</a></span></code>
+<div class="block">Permission was denied to perform the operation, as the user is not yet
+ authorized (not yet logged in, for example).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_CLOSED">RESOURCE_CLOSED</a></span></code>
+<div class="block">The operation could not be performed as the requested resource is now
+ closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_CONFLICT">RESOURCE_CONFLICT</a></span></code>
+<div class="block">The operation could not be performed as the requested resource is already
+ in use.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#RESOURCE_NOT_FOUND">RESOURCE_NOT_FOUND</a></span></code>
+<div class="block">The operation could not be performed as the requested resource does not
+ exist.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SERVER_BUSY">SERVER_BUSY</a></span></code>
+<div class="block">The operation could not be performed as the server is busy.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SERVER_ERROR">SERVER_ERROR</a></span></code>
+<div class="block">The operation could not be performed due to an internal failure.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_CLOSED">SESSION_CLOSED</a></span></code>
+<div class="block">The session within the upstream server has been forcibly terminated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_CONFLICT">SESSION_CONFLICT</a></span></code>
+<div class="block">The session within the upstream server has ended because it conflicted
+ with another session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SESSION_TIMEOUT">SESSION_TIMEOUT</a></span></code>
+<div class="block">The session within the upstream server has ended because it appeared to
+ be inactive.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#SUCCESS">SUCCESS</a></span></code>
+<div class="block">The operation succeeded.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UNSUPPORTED">UNSUPPORTED</a></span></code>
+<div class="block">The requested operation is unsupported.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_ERROR">UPSTREAM_ERROR</a></span></code>
+<div class="block">The operation was unsuccessful due to an error or otherwise unexpected
+ condition of the upstream server.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_NOT_FOUND">UPSTREAM_NOT_FOUND</a></span></code>
+<div class="block">The operation could not be performed because the upstream server does
+ not appear to exist.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_TIMEOUT">UPSTREAM_TIMEOUT</a></span></code>
+<div class="block">The operation could not be performed because the upstream server is not
+ responding.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#UPSTREAM_UNAVAILABLE">UPSTREAM_UNAVAILABLE</a></span></code>
+<div class="block">The operation could not be performed because the upstream server is not
+ available to service the request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode</a></span>(int&nbsp;code)</code>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getGuacamoleStatusCode--">getGuacamoleStatusCode</a></span>()</code>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getHttpStatusCode--">getHttpStatusCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#getWebSocketCode--">getWebSocketCode</a></span>()</code>
+<div class="block">Returns the most applicable HTTP error code.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="SUCCESS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SUCCESS</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SUCCESS</pre>
+<div class="block">The operation succeeded.</div>
+</li>
+</ul>
+<a name="UNSUPPORTED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UNSUPPORTED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UNSUPPORTED</pre>
+<div class="block">The requested operation is unsupported.</div>
+</li>
+</ul>
+<a name="SERVER_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_ERROR</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SERVER_ERROR</pre>
+<div class="block">The operation could not be performed due to an internal failure.</div>
+</li>
+</ul>
+<a name="SERVER_BUSY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SERVER_BUSY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SERVER_BUSY</pre>
+<div class="block">The operation could not be performed as the server is busy.</div>
+</li>
+</ul>
+<a name="UPSTREAM_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_TIMEOUT</pre>
+<div class="block">The operation could not be performed because the upstream server is not
+ responding.</div>
+</li>
+</ul>
+<a name="UPSTREAM_ERROR">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_ERROR</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_ERROR</pre>
+<div class="block">The operation was unsuccessful due to an error or otherwise unexpected
+ condition of the upstream server.</div>
+</li>
+</ul>
+<a name="RESOURCE_NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_NOT_FOUND</pre>
+<div class="block">The operation could not be performed as the requested resource does not
+ exist.</div>
+</li>
+</ul>
+<a name="RESOURCE_CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_CONFLICT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_CONFLICT</pre>
+<div class="block">The operation could not be performed as the requested resource is already
+ in use.</div>
+</li>
+</ul>
+<a name="RESOURCE_CLOSED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RESOURCE_CLOSED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> RESOURCE_CLOSED</pre>
+<div class="block">The operation could not be performed as the requested resource is now
+ closed.</div>
+</li>
+</ul>
+<a name="UPSTREAM_NOT_FOUND">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_NOT_FOUND</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_NOT_FOUND</pre>
+<div class="block">The operation could not be performed because the upstream server does
+ not appear to exist.</div>
+</li>
+</ul>
+<a name="UPSTREAM_UNAVAILABLE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPSTREAM_UNAVAILABLE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> UPSTREAM_UNAVAILABLE</pre>
+<div class="block">The operation could not be performed because the upstream server is not
+ available to service the request.</div>
+</li>
+</ul>
+<a name="SESSION_CONFLICT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_CONFLICT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_CONFLICT</pre>
+<div class="block">The session within the upstream server has ended because it conflicted
+ with another session.</div>
+</li>
+</ul>
+<a name="SESSION_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_TIMEOUT</pre>
+<div class="block">The session within the upstream server has ended because it appeared to
+ be inactive.</div>
+</li>
+</ul>
+<a name="SESSION_CLOSED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SESSION_CLOSED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> SESSION_CLOSED</pre>
+<div class="block">The session within the upstream server has been forcibly terminated.</div>
+</li>
+</ul>
+<a name="CLIENT_BAD_REQUEST">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_BAD_REQUEST</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_BAD_REQUEST</pre>
+<div class="block">The operation could not be performed because bad parameters were given.</div>
+</li>
+</ul>
+<a name="CLIENT_UNAUTHORIZED">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_UNAUTHORIZED</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_UNAUTHORIZED</pre>
+<div class="block">Permission was denied to perform the operation, as the user is not yet
+ authorized (not yet logged in, for example). As HTTP 401 has implications
+ for HTTP-specific authorization schemes, this status continues to map to
+ HTTP 403 ("Forbidden"). To do otherwise would risk unintended effects.</div>
+</li>
+</ul>
+<a name="CLIENT_FORBIDDEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_FORBIDDEN</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_FORBIDDEN</pre>
+<div class="block">Permission was denied to perform the operation, and this operation will
+ not be granted even if the user is authorized.</div>
+</li>
+</ul>
+<a name="CLIENT_TIMEOUT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_TIMEOUT</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_TIMEOUT</pre>
+<div class="block">The client took too long to respond.</div>
+</li>
+</ul>
+<a name="CLIENT_OVERRUN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_OVERRUN</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_OVERRUN</pre>
+<div class="block">The client sent too much data.</div>
+</li>
+</ul>
+<a name="CLIENT_BAD_TYPE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_BAD_TYPE</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_BAD_TYPE</pre>
+<div class="block">The client sent data of an unsupported or unexpected type.</div>
+</li>
+</ul>
+<a name="CLIENT_TOO_MANY">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CLIENT_TOO_MANY</h4>
+<pre>public static final&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> CLIENT_TOO_MANY</pre>
+<div class="block">The operation failed because the current client is already using too
+ many resources.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleStatus c : GuacamoleStatus.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+<a name="getHttpStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHttpStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getHttpStatusCode()</pre>
+<div class="block">Returns the most applicable HTTP error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The most applicable HTTP error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="getWebSocketCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getWebSocketCode</h4>
+<pre>public&nbsp;int&nbsp;getWebSocketCode()</pre>
+<div class="block">Returns the most applicable HTTP error code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The most applicable HTTP error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="getGuacamoleStatusCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleStatusCode</h4>
+<pre>public&nbsp;int&nbsp;getGuacamoleStatusCode()</pre>
+<div class="block">Returns the corresponding Guacamole protocol status code.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The corresponding Guacamole protocol status code.</dd>
+</dl>
+</li>
+</ul>
+<a name="fromGuacamoleStatusCode-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>fromGuacamoleStatusCode</h4>
+<pre>public static&nbsp;<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>&nbsp;fromGuacamoleStatusCode(int&nbsp;code)</pre>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code. If no such GuacamoleStatus is defined, null is
+ returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>code</code> - The Guacamole protocol status code to translate into a
+     GuacamoleStatus.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleStatus corresponding to the given Guacamole protocol
+     status code, or null if no such GuacamoleStatus is defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleStatus.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html
new file mode 100644
index 0000000..2a88c1e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.ConfiguredGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.ConfiguredGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/ConfiguredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="ConfiguredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html
new file mode 100644
index 0000000..697b408
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FailoverGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.FailoverGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FailoverGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FailoverGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FailoverGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html
new file mode 100644
index 0000000..e4d57eb
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleReader" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleReader</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleReader</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleReader.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleReader.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html
new file mode 100644
index 0000000..6d08b30
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleSocket" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleSocket</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleSocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleSocket.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleSocket.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html
new file mode 100644
index 0000000..748a6e6
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.FilteredGuacamoleWriter" class="title">Uses of Class<br>org.apache.guacamole.protocol.FilteredGuacamoleWriter</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.FilteredGuacamoleWriter</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/FilteredGuacamoleWriter.html" target="_top">Frames</a></li>
+<li><a href="FilteredGuacamoleWriter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html
new file mode 100644
index 0000000..e6fdfd8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleClientInformation" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleClientInformation</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleClientInformation.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html
new file mode 100644
index 0000000..475422f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleConfiguration" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleConfiguration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration used to configure this
+ ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration to complete the initial protocol handshake over
+ the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#ConfiguredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleClientInformation-">ConfiguredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config,
+                         <a href="../../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a>&nbsp;info)</code>
+<div class="block">Creates a new ConfiguredGuacamoleSocket which uses the given
+ GuacamoleConfiguration and GuacamoleClientInformation to complete the
+ initial protocol handshake over the given GuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html#GuacamoleConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">GuacamoleConfiguration</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a>&nbsp;config)</code>
+<div class="block">Copies the given GuacamoleConfiguration, creating a new, indepedent
+ GuacamoleConfiguration containing the same protocol, connection ID,
+ and parameter values, if any.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html
new file mode 100644
index 0000000..de8bbf5
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleFilter.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.protocol.GuacamoleFilter" class="title">Uses of Interface<br>org.apache.guacamole.protocol.GuacamoleFilter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#FilteredGuacamoleReader-org.apache.guacamole.io.GuacamoleReader-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleReader</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>&nbsp;reader,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleReader, applying the given filter to all read
+ instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html#FilteredGuacamoleSocket-org.apache.guacamole.net.GuacamoleSocket-org.apache.guacamole.protocol.GuacamoleFilter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleSocket</a></span>(<a href="../../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>&nbsp;socket,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;readFilter,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;writeFilter)</code>
+<div class="block">Creates a new FilteredGuacamoleSocket which uses the given filters to
+ determine whether instructions read/written are allowed through,
+ modified, etc.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#FilteredGuacamoleWriter-org.apache.guacamole.io.GuacamoleWriter-org.apache.guacamole.protocol.GuacamoleFilter-">FilteredGuacamoleWriter</a></span>(<a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>&nbsp;writer,
+                       <a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a>&nbsp;filter)</code>
+<div class="block">Wraps the given GuacamoleWriter, applying the given filter to all written 
+ instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleFilter.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html
new file mode 100644
index 0000000..7743505
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleInstruction" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleInstruction</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a> in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/GuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>
+<div class="block">Reads exactly one complete Guacamole instruction and returns the fully
+ parsed instruction.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ReaderGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/ReaderGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">WriterGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/WriterGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/io/GuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Writes the given fully parsed instruction to the Guacamole instruction
+ stream.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleParser.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html#next--">next</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleReader.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html#readInstruction--">readInstruction</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleFilter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleFilter.html#filter-org.apache.guacamole.protocol.GuacamoleInstruction-">filter</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>
+<div class="block">Applies the filter to the given instruction, returning the original
+ instruction, a modified version of the original, or null, depending
+ on the implementation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">FilteredGuacamoleWriter.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html#writeInstruction-org.apache.guacamole.protocol.GuacamoleInstruction-">writeInstruction</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a>&nbsp;instruction)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInstruction.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html
new file mode 100644
index 0000000..ee984f7
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleParser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleParser (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleParser (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleParser" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleParser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.protocol.GuacamoleParser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleParser.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleParser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html
new file mode 100644
index 0000000..f19295f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolCapability" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleProtocolCapability</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolCapability.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html
new file mode 100644
index 0000000..3f42f34
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleProtocolVersion" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleProtocolVersion</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> declared as <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#LATEST">LATEST</a></span></code>
+<div class="block">The most recent version of the Guacamole protocol at the time this
+ version of GuacamoleProtocolVersion was built.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_0_0">VERSION_1_0_0</a></span></code>
+<div class="block">Protocol version 1.0.0 and older.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#VERSION_1_1_0">VERSION_1_1_0</a></span></code>
+<div class="block">Protocol version 1.1.0, which introduces Client-Server version
+ detection, arbitrary handshake instruction order, and support
+ for passing the client timezone to the server during the handshake.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConfiguredGuacamoleSocket.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html#getProtocolVersion--">getProtocolVersion</a></span>()</code>
+<div class="block">Returns the version of the Guacamole protocol associated with the
+ Guacamole connection negotiated by this ConfiguredGuacamoleSocket.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#parseVersion-java.lang.String-">parseVersion</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;version)</code>
+<div class="block">Parse the String format of the version provided and return the
+ the enum value matching that version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> with parameters of type <a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolVersion.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html#atLeast-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">atLeast</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;otherVersion)</code>
+<div class="block">Returns whether this GuacamoleProtocolVersion is at least as recent as
+ (greater than or equal to) the given version.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProtocolCapability.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html#isSupported-org.apache.guacamole.protocol.GuacamoleProtocolVersion-">isSupported</a></span>(<a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>&nbsp;version)</code>
+<div class="block">Returns whether this capability is supported in the given Guacamole
+ protocol version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProtocolVersion.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html
new file mode 100644
index 0000000..40740c1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/class-use/GuacamoleStatus.html
@@ -0,0 +1,306 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocol.GuacamoleStatus (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocol.GuacamoleStatus (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocol.GuacamoleStatus" class="title">Uses of Class<br>org.apache.guacamole.protocol.GuacamoleStatus</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> in <a href="../../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleServerBusyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleServerBusyException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamNotFoundException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientOverrunException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientOverrunException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleServerException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleServerException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUnsupportedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUnsupportedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientBadTypeException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientBadTypeException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamUnavailableException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamUnavailableException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleException.html#getStatus--">getStatus</a></span>()</code>
+<div class="block">Returns the Guacamole status associated with this exception.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSecurityException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSecurityException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceNotFoundException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceNotFoundException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUnauthorizedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUnauthorizedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientTooManyException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientTooManyException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionConflictException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleClientException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleClientException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleResourceConflictException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleResourceConflictException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleConnectionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleConnectionClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionClosedException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionClosedException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleSessionTimeoutException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleSessionTimeoutException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleUpstreamException.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/GuacamoleUpstreamException.html#getStatus--">getStatus</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a> in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> that return <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#fromGuacamoleStatusCode-int-">fromGuacamoleStatusCode</a></span>(int&nbsp;code)</code>
+<div class="block">Returns the GuacamoleStatus corresponding to the given Guacamole
+ protocol status code.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleStatus.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocol/class-use/GuacamoleStatus.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleStatus.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html
new file mode 100644
index 0000000..9e3959f
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-frame.html
@@ -0,0 +1,49 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/protocol/package-summary.html" target="classFrame">org.apache.guacamole.protocol</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol" target="classFrame"><span class="interfaceName">GuacamoleFilter</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">ConfiguredGuacamoleSocket</a></li>
+<li><a href="FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FailoverGuacamoleSocket</a></li>
+<li><a href="FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleReader</a></li>
+<li><a href="FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleSocket</a></li>
+<li><a href="FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol" target="classFrame">FilteredGuacamoleWriter</a></li>
+<li><a href="GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleClientInformation</a></li>
+<li><a href="GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleConfiguration</a></li>
+<li><a href="GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleInstruction</a></li>
+<li><a href="GuacamoleParser.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleParser</a></li>
+<li><a href="GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolVersion</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleProtocolCapability</a></li>
+<li><a href="GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol" target="classFrame">GuacamoleStatus</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html
new file mode 100644
index 0000000..4735544
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-summary.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocol (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.protocol</h1>
+<div class="docSummary">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol">GuacamoleFilter</a></td>
+<td class="colLast">
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">ConfiguredGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleSocket which pre-configures the connection based on a given
+ GuacamoleConfiguration, completing the initial protocol handshake before
+ accepting data for read or write.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FailoverGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">GuacamoleSocket which intercepts errors received early in the Guacamole
+ session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleReader</a></td>
+<td class="colLast">
+<div class="block">GuacamoleReader which applies a given GuacamoleFilter to observe or alter all
+ read instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleSocket</a></td>
+<td class="colLast">
+<div class="block">Implementation of GuacamoleSocket which allows individual instructions to be
+ intercepted, overridden, etc.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol">FilteredGuacamoleWriter</a></td>
+<td class="colLast">
+<div class="block">GuacamoleWriter which applies a given GuacamoleFilter to observe or alter
+ all written instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol">GuacamoleClientInformation</a></td>
+<td class="colLast">
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">GuacamoleConfiguration</a></td>
+<td class="colLast">
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol">GuacamoleInstruction</a></td>
+<td class="colLast">
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol">GuacamoleParser</a></td>
+<td class="colLast">
+<div class="block">Parser for the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol">GuacamoleProtocolVersion</a></td>
+<td class="colLast">
+<div class="block">Representation of a Guacamole protocol version.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol">GuacamoleProtocolCapability</a></td>
+<td class="colLast">
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol">GuacamoleStatus</a></td>
+<td class="colLast">
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.protocol Description">Package org.apache.guacamole.protocol Description</h2>
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html
new file mode 100644
index 0000000..5e4df5b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-tree.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocol Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocol Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.protocol</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="../../../../org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="../../../../org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="../../../../org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-use.html
new file mode 100644
index 0000000..a1b7cbc
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/protocol/package-use.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.protocol (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.protocol (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.protocol" class="title">Uses of Package<br>org.apache.guacamole.protocol</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.io">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocol">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/package-summary.html">org.apache.guacamole</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleStatus.html#org.apache.guacamole">GuacamoleStatus</a>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.io">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html#org.apache.guacamole.io">GuacamoleInstruction</a>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocol">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a> used by <a href="../../../../org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleClientInformation.html#org.apache.guacamole.protocol">GuacamoleClientInformation</a>
+<div class="block">An abstract representation of Guacamole client information, including all
+ information required by the Guacamole protocol during the preamble.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleConfiguration.html#org.apache.guacamole.protocol">GuacamoleConfiguration</a>
+<div class="block">All information necessary to complete the initial protocol handshake of a
+ Guacamole session.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleFilter.html#org.apache.guacamole.protocol">GuacamoleFilter</a>
+<div class="block">Interface which provides for the filtering of individual instructions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleInstruction.html#org.apache.guacamole.protocol">GuacamoleInstruction</a>
+<div class="block">An abstract representation of a Guacamole instruction, as defined by the
+ Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleProtocolCapability.html#org.apache.guacamole.protocol">GuacamoleProtocolCapability</a>
+<div class="block">Capabilities which may not be present in all versions of the Guacamole
+ protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleProtocolVersion.html#org.apache.guacamole.protocol">GuacamoleProtocolVersion</a>
+<div class="block">Representation of a Guacamole protocol version.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocol/class-use/GuacamoleStatus.html#org.apache.guacamole.protocol">GuacamoleStatus</a>
+<div class="block">All possible statuses returned by various Guacamole instructions, each having
+ a corresponding code.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocol/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html
new file mode 100644
index 0000000..f27c1af
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html
@@ -0,0 +1,606 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":6,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleHTTPTunnelServlet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.servlet</div>
+<h2 title="Class GuacamoleHTTPTunnelServlet" class="title">Class GuacamoleHTTPTunnelServlet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.servlet.GenericServlet</li>
+<li>
+<ul class="inheritance">
+<li>javax.servlet.http.HttpServlet</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">GuacamoleHTTPTunnelServlet</span>
+extends javax.servlet.http.HttpServlet</pre>
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../serialized-form.html#org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#GuacamoleHTTPTunnelServlet--">GuacamoleHTTPTunnelServlet</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">deregisterTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#destroy--">destroy</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doConnect-javax.servlet.http.HttpServletRequest-">doConnect</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doGet</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+     javax.servlet.http.HttpServletResponse&nbsp;response)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">doPost</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doRead</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+      javax.servlet.http.HttpServletResponse&nbsp;response,
+      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">doWrite</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+       javax.servlet.http.HttpServletResponse&nbsp;response,
+       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#getTunnel-java.lang.String-">getTunnel</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)</code>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">handleTunnelRequest</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request,
+                   javax.servlet.http.HttpServletResponse&nbsp;response)</code>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">registerTunnel</a></span>(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</code>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html#sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">sendError</a></span>(javax.servlet.http.HttpServletResponse&nbsp;response,
+         int&nbsp;guacamoleStatusCode,
+         int&nbsp;guacamoleHttpCode,
+         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.http.HttpServlet">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.servlet.http.HttpServlet</h3>
+<code>doDelete, doHead, doOptions, doPut, doTrace, getLastModified, service, service</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.servlet.GenericServlet">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.servlet.GenericServlet</h3>
+<code>getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, init, log, log</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleHTTPTunnelServlet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleHTTPTunnelServlet</h4>
+<pre>public&nbsp;GuacamoleHTTPTunnelServlet()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="registerTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerTunnel</h4>
+<pre>protected&nbsp;void&nbsp;registerTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Registers the given tunnel such that future read/write requests to that
+ tunnel will be properly directed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The tunnel to register.</dd>
+</dl>
+</li>
+</ul>
+<a name="deregisterTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deregisterTunnel</h4>
+<pre>protected&nbsp;void&nbsp;deregisterTunnel(<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;tunnel)</pre>
+<div class="block">Deregisters the given tunnel such that future read/write requests to
+ that tunnel will be rejected.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The tunnel to deregister.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>protected&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;getTunnel(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+                             throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns the tunnel with the given UUID, if it has been registered with
+ registerTunnel() and not yet deregistered with deregisterTunnel().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnelUUID</code> - The UUID of registered tunnel.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel corresponding to the given UUID.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If the requested tunnel does not exist because it has not yet been
+     registered or it has been deregistered.</dd>
+</dl>
+</li>
+</ul>
+<a name="doGet-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doGet</h4>
+<pre>protected&nbsp;void&nbsp;doGet(javax.servlet.http.HttpServletRequest&nbsp;request,
+                     javax.servlet.http.HttpServletResponse&nbsp;response)
+              throws javax.servlet.ServletException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>doGet</code>&nbsp;in class&nbsp;<code>javax.servlet.http.HttpServlet</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code></dd>
+</dl>
+</li>
+</ul>
+<a name="doPost-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doPost</h4>
+<pre>protected&nbsp;void&nbsp;doPost(javax.servlet.http.HttpServletRequest&nbsp;request,
+                      javax.servlet.http.HttpServletResponse&nbsp;response)
+               throws javax.servlet.ServletException</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>doPost</code>&nbsp;in class&nbsp;<code>javax.servlet.http.HttpServlet</code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code></dd>
+</dl>
+</li>
+</ul>
+<a name="sendError-javax.servlet.http.HttpServletResponse-int-int-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>sendError</h4>
+<pre>protected&nbsp;void&nbsp;sendError(javax.servlet.http.HttpServletResponse&nbsp;response,
+                         int&nbsp;guacamoleStatusCode,
+                         int&nbsp;guacamoleHttpCode,
+                         <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)
+                  throws javax.servlet.ServletException</pre>
+<div class="block">Sends an error on the given HTTP response using the information within
+ the given GuacamoleStatus.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>response</code> - The HTTP response to use to send the error.</dd>
+<dd><code>guacamoleStatusCode</code> - The GuacamoleStatus code to send.</dd>
+<dd><code>guacamoleHttpCode</code> - The numeric HTTP code to send.</dd>
+<dd><code>message</code> - The human-readable error message to send.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code> - If an error prevents sending of the error code.</dd>
+</dl>
+</li>
+</ul>
+<a name="handleTunnelRequest-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>handleTunnelRequest</h4>
+<pre>protected&nbsp;void&nbsp;handleTunnelRequest(javax.servlet.http.HttpServletRequest&nbsp;request,
+                                   javax.servlet.http.HttpServletResponse&nbsp;response)
+                            throws javax.servlet.ServletException</pre>
+<div class="block">Dispatches every HTTP GET and POST request to the appropriate handler
+ function based on the query string.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the GET or POST request
+     received.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the GET or POST request
+     received.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>javax.servlet.ServletException</code> - If an error occurs while servicing the request.</dd>
+</dl>
+</li>
+</ul>
+<a name="doConnect-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doConnect</h4>
+<pre>protected abstract&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;doConnect(javax.servlet.http.HttpServletRequest&nbsp;request)
+                                      throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a connection
+ request via HTTP. It it up to the implementor of this function to define
+ what conditions must be met for a tunnel to be configured and returned
+ as a result of this connection request (whether some sort of credentials
+ must be specified, for example).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the connection request
+     received. Any parameters specified along with the connection request
+     can be read from this object.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A newly constructed GuacamoleTunnel if successful, null otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while constructing the GuacamoleTunnel, or if the
+     conditions required for connection are not met.</dd>
+</dl>
+</li>
+</ul>
+<a name="doRead-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doRead</h4>
+<pre>protected&nbsp;void&nbsp;doRead(javax.servlet.http.HttpServletRequest&nbsp;request,
+                      javax.servlet.http.HttpServletResponse&nbsp;response,
+                      <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+               throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a read request.
+ This function should in general not be overridden, as it already
+ contains a proper implementation of the read operation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the read request received.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the write request received.
+     Any data to be sent to the client in response to the write request
+     should be written to the response body of this HttpServletResponse.</dd>
+<dd><code>tunnelUUID</code> - The UUID of the tunnel to read from, as specified in the write
+     request. This tunnel must have been created by a previous call to
+     doConnect().</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while handling the read request.</dd>
+</dl>
+</li>
+</ul>
+<a name="doWrite-javax.servlet.http.HttpServletRequest-javax.servlet.http.HttpServletResponse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>doWrite</h4>
+<pre>protected&nbsp;void&nbsp;doWrite(javax.servlet.http.HttpServletRequest&nbsp;request,
+                       javax.servlet.http.HttpServletResponse&nbsp;response,
+                       <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tunnelUUID)
+                throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Called whenever the JavaScript Guacamole client makes a write request.
+ This function should in general not be overridden, as it already
+ contains a proper implementation of the write operation.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest associated with the write request received.
+     Any data to be written will be specified within the body of this
+     request.</dd>
+<dd><code>response</code> - The HttpServletResponse associated with the write request received.</dd>
+<dd><code>tunnelUUID</code> - The UUID of the tunnel to write to, as specified in the write
+     request. This tunnel must have been created by a previous call to
+     doConnect().</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while handling the write request.</dd>
+</dl>
+</li>
+</ul>
+<a name="destroy--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>destroy</h4>
+<pre>public&nbsp;void&nbsp;destroy()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>destroy</code>&nbsp;in interface&nbsp;<code>javax.servlet.Servlet</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>destroy</code>&nbsp;in class&nbsp;<code>javax.servlet.GenericServlet</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleHTTPTunnelServlet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html
new file mode 100644
index 0000000..da9950a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet" class="title">Uses of Class<br>org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/servlet/class-use/GuacamoleHTTPTunnelServlet.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleHTTPTunnelServlet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html
new file mode 100644
index 0000000..ab8800b
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/servlet/package-summary.html" target="classFrame">org.apache.guacamole.servlet</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet" target="classFrame">GuacamoleHTTPTunnelServlet</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html
new file mode 100644
index 0000000..0ce141d
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-summary.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.servlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.servlet</h1>
+<div class="docSummary">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">GuacamoleHTTPTunnelServlet</a></td>
+<td class="colLast">
+<div class="block">A HttpServlet implementing and abstracting the operations required by the
+ HTTP implementation of the JavaScript Guacamole client's tunnel.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.servlet Description">Package org.apache.guacamole.servlet Description</h2>
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html
new file mode 100644
index 0000000..8267d0a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-tree.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.servlet Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.servlet Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.servlet</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">javax.servlet.GenericServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig)
+<ul>
+<li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.servlet.<a href="../../../../org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocol/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/websocket/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-use.html
new file mode 100644
index 0000000..9e6ae58
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/servlet/package-use.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.servlet (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.servlet (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.servlet" class="title">Uses of Package<br>org.apache.guacamole.servlet</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.servlet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/servlet/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html
new file mode 100644
index 0000000..16acb24
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html
@@ -0,0 +1,369 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWebSocketTunnelEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.websocket</div>
+<h2 title="Class GuacamoleWebSocketTunnelEndpoint" class="title">Class GuacamoleWebSocketTunnelEndpoint</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>javax.websocket.Endpoint</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">GuacamoleWebSocketTunnelEndpoint</span>
+extends javax.websocket.Endpoint</pre>
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.
+ Messages sent/received are simply chunks of the Guacamole protocol
+ instruction stream.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#GuacamoleWebSocketTunnelEndpoint--">GuacamoleWebSocketTunnelEndpoint</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">createTunnel</a></span>(javax.websocket.Session&nbsp;session,
+            javax.websocket.EndpointConfig&nbsp;config)</code>
+<div class="block">Returns a new tunnel for the given session.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onClose-javax.websocket.Session-javax.websocket.CloseReason-">onClose</a></span>(javax.websocket.Session&nbsp;session,
+       javax.websocket.CloseReason&nbsp;closeReason)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onMessage-java.lang.String-">onMessage</a></span>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html#onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">onOpen</a></span>(javax.websocket.Session&nbsp;session,
+      javax.websocket.EndpointConfig&nbsp;config)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.javax.websocket.Endpoint">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;javax.websocket.Endpoint</h3>
+<code>onError</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleWebSocketTunnelEndpoint--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleWebSocketTunnelEndpoint</h4>
+<pre>public&nbsp;GuacamoleWebSocketTunnelEndpoint()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="createTunnel-javax.websocket.Session-javax.websocket.EndpointConfig-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTunnel</h4>
+<pre>protected abstract&nbsp;<a href="../../../../org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>&nbsp;createTunnel(javax.websocket.Session&nbsp;session,
+                                                javax.websocket.EndpointConfig&nbsp;config)
+                                         throws <a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></pre>
+<div class="block">Returns a new tunnel for the given session. How this tunnel is created
+ or retrieved is implementation-dependent.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The session associated with the active WebSocket
+                connection.</dd>
+<dd><code>config</code> - Configuration information associated with the instance of
+               the endpoint created for handling this single connection.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connected tunnel, or null if no such tunnel exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a></code> - If an error occurs while retrieving the
+                            tunnel, or if access to the tunnel is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="onOpen-javax.websocket.Session-javax.websocket.EndpointConfig-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onOpen</h4>
+<pre>public&nbsp;void&nbsp;onOpen(javax.websocket.Session&nbsp;session,
+                   javax.websocket.EndpointConfig&nbsp;config)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code>onOpen</code>&nbsp;in class&nbsp;<code>javax.websocket.Endpoint</code></dd>
+</dl>
+</li>
+</ul>
+<a name="onMessage-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>onMessage</h4>
+<pre>public&nbsp;void&nbsp;onMessage(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message)</pre>
+</li>
+</ul>
+<a name="onClose-javax.websocket.Session-javax.websocket.CloseReason-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>onClose</h4>
+<pre>public&nbsp;void&nbsp;onClose(javax.websocket.Session&nbsp;session,
+                    javax.websocket.CloseReason&nbsp;closeReason)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code>onClose</code>&nbsp;in class&nbsp;<code>javax.websocket.Endpoint</code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleWebSocketTunnelEndpoint.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html
new file mode 100644
index 0000000..ba09cc1
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint" class="title">Uses of Class<br>org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.websocket.GuacamoleWebSocketTunnelEndpoint</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/websocket/class-use/GuacamoleWebSocketTunnelEndpoint.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html
new file mode 100644
index 0000000..109a98e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/websocket/package-summary.html" target="classFrame">org.apache.guacamole.websocket</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket" target="classFrame">GuacamoleWebSocketTunnelEndpoint</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html
new file mode 100644
index 0000000..d606b8a
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-summary.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.websocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.websocket</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket">GuacamoleWebSocketTunnelEndpoint</a></td>
+<td class="colLast">
+<div class="block">A WebSocket implementation of GuacamoleTunnel functionality, compatible with
+ the Guacamole.WebSocketTunnel object included with the JavaScript API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html
new file mode 100644
index 0000000..5b7d8e0
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-tree.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.websocket Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.websocket Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.websocket</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">javax.websocket.Endpoint
+<ul>
+<li type="circle">org.apache.guacamole.websocket.<a href="../../../../org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/servlet/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-use.html b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-use.html
new file mode 100644
index 0000000..303ffdd
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/org/apache/guacamole/websocket/package-use.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.websocket (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.websocket (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.websocket" class="title">Uses of Package<br>org.apache.guacamole.websocket</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.websocket</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/websocket/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/overview-frame.html b/doc/1.1.0/guacamole-common/overview-frame.html
new file mode 100644
index 0000000..a77eeee
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/overview-frame.html
@@ -0,0 +1,37 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/guacamole/package-frame.html" target="packageFrame">org.apache.guacamole</a></li>
+<li><a href="org/apache/guacamole/io/package-frame.html" target="packageFrame">org.apache.guacamole.io</a></li>
+<li><a href="org/apache/guacamole/net/package-frame.html" target="packageFrame">org.apache.guacamole.net</a></li>
+<li><a href="org/apache/guacamole/protocol/package-frame.html" target="packageFrame">org.apache.guacamole.protocol</a></li>
+<li><a href="org/apache/guacamole/servlet/package-frame.html" target="packageFrame">org.apache.guacamole.servlet</a></li>
+<li><a href="org/apache/guacamole/websocket/package-frame.html" target="packageFrame">org.apache.guacamole.websocket</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/overview-summary.html b/doc/1.1.0/guacamole-common/overview-summary.html
new file mode 100644
index 0000000..4de6cd8
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/overview-summary.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">guacamole-common 1.1.0 API</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/package-summary.html">org.apache.guacamole</a></td>
+<td class="colLast">
+<div class="block">All classes which apply generally across the Guacamole web application
+ and all other web applications which use the API provided by the
+ Guacamole project.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/io/package-summary.html">org.apache.guacamole.io</a></td>
+<td class="colLast">
+<div class="block">All classes relating directly to data input or output.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/package-summary.html">org.apache.guacamole.net</a></td>
+<td class="colLast">
+<div class="block">Classes which apply to network-specific concepts, such as low-level sockets
+ and tunnels.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/protocol/package-summary.html">org.apache.guacamole.protocol</a></td>
+<td class="colLast">
+<div class="block">Classes relating directly to the Guacamole protocol.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/servlet/package-summary.html">org.apache.guacamole.servlet</a></td>
+<td class="colLast">
+<div class="block">Classes which build upon the Java Servlet API, providing an HTTP-based
+ tunnel and session management.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/websocket/package-summary.html">org.apache.guacamole.websocket</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/overview-tree.html b/doc/1.1.0/guacamole-common/overview-tree.html
new file mode 100644
index 0000000..5dfd6ef
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/overview-tree.html
@@ -0,0 +1,253 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/guacamole/package-tree.html">org.apache.guacamole</a>, </li>
+<li><a href="org/apache/guacamole/io/package-tree.html">org.apache.guacamole.io</a>, </li>
+<li><a href="org/apache/guacamole/net/package-tree.html">org.apache.guacamole.net</a>, </li>
+<li><a href="org/apache/guacamole/protocol/package-tree.html">org.apache.guacamole.protocol</a>, </li>
+<li><a href="org/apache/guacamole/servlet/package-tree.html">org.apache.guacamole.servlet</a>, </li>
+<li><a href="org/apache/guacamole/websocket/package-tree.html">org.apache.guacamole.websocket</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/AbstractGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">AbstractGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/SimpleGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SimpleGuacamoleTunnel</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/ConfiguredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">ConfiguredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/DelegatingGuacamoleTunnel.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">DelegatingGuacamoleTunnel</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net">GuacamoleTunnel</a>)</li>
+<li type="circle">javax.websocket.Endpoint
+<ul>
+<li type="circle">org.apache.guacamole.websocket.<a href="org/apache/guacamole/websocket/GuacamoleWebSocketTunnelEndpoint.html" title="class in org.apache.guacamole.websocket"><span class="typeNameLink">GuacamoleWebSocketTunnelEndpoint</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FailoverGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FailoverGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleReader.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleSocket.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/FilteredGuacamoleWriter.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">FilteredGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+<li type="circle">javax.servlet.GenericServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig)
+<ul>
+<li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.servlet.<a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet"><span class="typeNameLink">GuacamoleHTTPTunnelServlet</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleClientInformation.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleClientInformation</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleConfiguration</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleInstruction.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleInstruction</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleParser.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleParser</span></a> (implements java.util.<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;E&gt;)</li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolVersion.html" title="class in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolVersion</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/InetGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">InetGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/ReaderGuacamoleReader.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">ReaderGuacamoleReader</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io">GuacamoleReader</a>)</li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/SSLGuacamoleSocket.html" title="class in org.apache.guacamole.net"><span class="typeNameLink">SSLGuacamoleSocket</span></a> (implements org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net">GuacamoleSocket</a>)</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientBadTypeException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientOverrunException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleClientTooManyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleResourceNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSecurityException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnauthorizedException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleConnectionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleServerBusyException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUnsupportedException</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionClosedException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionConflictException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleSessionTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamNotFoundException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamTimeoutException</span></a></li>
+<li type="circle">org.apache.guacamole.<a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole"><span class="typeNameLink">GuacamoleUpstreamUnavailableException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/WriterGuacamoleWriter.html" title="class in org.apache.guacamole.io"><span class="typeNameLink">WriterGuacamoleWriter</span></a> (implements org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io">GuacamoleWriter</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleFilter.html" title="interface in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleFilter</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleReader.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleReader</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleSocket.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleSocket</span></a></li>
+<li type="circle">org.apache.guacamole.net.<a href="org/apache/guacamole/net/GuacamoleTunnel.html" title="interface in org.apache.guacamole.net"><span class="typeNameLink">GuacamoleTunnel</span></a></li>
+<li type="circle">org.apache.guacamole.io.<a href="org/apache/guacamole/io/GuacamoleWriter.html" title="interface in org.apache.guacamole.io"><span class="typeNameLink">GuacamoleWriter</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleProtocolCapability.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleProtocolCapability</span></a></li>
+<li type="circle">org.apache.guacamole.protocol.<a href="org/apache/guacamole/protocol/GuacamoleStatus.html" title="enum in org.apache.guacamole.protocol"><span class="typeNameLink">GuacamoleStatus</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/package-list b/doc/1.1.0/guacamole-common/package-list
new file mode 100644
index 0000000..a64bfa3
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/package-list
@@ -0,0 +1,6 @@
+org.apache.guacamole
+org.apache.guacamole.io
+org.apache.guacamole.net
+org.apache.guacamole.protocol
+org.apache.guacamole.servlet
+org.apache.guacamole.websocket
diff --git a/doc/1.1.0/guacamole-common/script.js b/doc/1.1.0/guacamole-common/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/doc/1.1.0/guacamole-common/serialized-form.html b/doc/1.1.0/guacamole-common/serialized-form.html
new file mode 100644
index 0000000..015d38e
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/serialized-form.html
@@ -0,0 +1,318 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:10 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (guacamole-common 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (guacamole-common 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientBadTypeException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientBadTypeException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientBadTypeException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientOverrunException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientOverrunException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientOverrunException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleClientTooManyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleClientTooManyException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleClientTooManyException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleConnectionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleConnectionClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleConnectionClosedException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleException</a> extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceClosedException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceConflictException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceConflictException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleResourceNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleResourceNotFoundException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleResourceNotFoundException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSecurityException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSecurityException</a> extends <a href="org/apache/guacamole/GuacamoleClientException.html" title="class in org.apache.guacamole">GuacamoleClientException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleServerBusyException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleServerBusyException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerBusyException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleServerException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleServerException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionClosedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionClosedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionClosedException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionConflictException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionConflictException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionConflictException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleSessionTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleSessionTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleSessionTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUnauthorizedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUnauthorizedException</a> extends <a href="org/apache/guacamole/GuacamoleSecurityException.html" title="class in org.apache.guacamole">GuacamoleSecurityException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUnsupportedException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUnsupportedException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUnsupportedException</a> extends <a href="org/apache/guacamole/GuacamoleServerException.html" title="class in org.apache.guacamole">GuacamoleServerException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamException</a> extends <a href="org/apache/guacamole/GuacamoleException.html" title="class in org.apache.guacamole">GuacamoleException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamNotFoundException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamNotFoundException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamNotFoundException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamTimeoutException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamTimeoutException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamTimeoutException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.GuacamoleUpstreamUnavailableException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/GuacamoleUpstreamUnavailableException.html" title="class in org.apache.guacamole">org.apache.guacamole.GuacamoleUpstreamUnavailableException</a> extends <a href="org/apache/guacamole/GuacamoleUpstreamException.html" title="class in org.apache.guacamole">GuacamoleUpstreamException</a> implements Serializable</h3>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.protocol</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.protocol.GuacamoleConfiguration">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/protocol/GuacamoleConfiguration.html" title="class in org.apache.guacamole.protocol">org.apache.guacamole.protocol.GuacamoleConfiguration</a> extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>connectionID</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> connectionID</pre>
+<div class="block">The ID of the connection being joined. If this value is present,
+ the protocol need not be specified.</div>
+</li>
+<li class="blockList">
+<h4>protocol</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> protocol</pre>
+<div class="block">The name of the protocol associated with this configuration.</div>
+</li>
+<li class="blockListLast">
+<h4>parameters</h4>
+<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">K</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">V</a>&gt; parameters</pre>
+<div class="block">Map of all associated parameter values, indexed by parameter name.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.servlet</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/servlet/GuacamoleHTTPTunnelServlet.html" title="class in org.apache.guacamole.servlet">org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet</a> extends javax.servlet.http.HttpServlet implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>logger</h4>
+<pre>org.slf4j.Logger logger</pre>
+<div class="block">Logger for this class.</div>
+</li>
+<li class="blockListLast">
+<h4>tunnels</h4>
+<pre>org.apache.guacamole.servlet.GuacamoleHTTPTunnelMap tunnels</pre>
+<div class="block">Map of absolutely all active tunnels using HTTP, indexed by tunnel UUID.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-common/stylesheet.css b/doc/1.1.0/guacamole-common/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/doc/1.1.0/guacamole-common/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/doc/1.1.0/guacamole-ext/allclasses-frame.html b/doc/1.1.0/guacamole-ext/allclasses-frame.html
new file mode 100644
index 0000000..c706ff5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/allclasses-frame.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractActiveConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticatedUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractIdentifiable</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationFailureEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationSuccessEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form" target="classFrame">BooleanField</a></li>
+<li><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">BooleanGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ConnectionGroup.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth" target="classFrame">Credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">CredentialsInfo</a></li>
+<li><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form" target="classFrame">DateField</a></li>
+<li><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DecoratingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Directory</span></a></li>
+<li><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml" target="classFrame">DocumentHandler</a></li>
+<li><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form" target="classFrame">EmailField</a></li>
+<li><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form" target="classFrame">EnumField</a></li>
+<li><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment" target="classFrame"><span class="interfaceName">Environment</span></a></li>
+<li><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form" target="classFrame">Field</a></li>
+<li><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form" target="classFrame">Field.Type</a></li>
+<li><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form" target="classFrame">FieldOption</a></li>
+<li><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">FileGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form" target="classFrame">Form</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties" target="classFrame"><span class="interfaceName">GuacamoleProperty</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration</a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+<li><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">IntegerGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form" target="classFrame">LanguageField</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">Listener</span></a></li>
+<li><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment" target="classFrame">LocalEnvironment</a></li>
+<li><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">LongGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form" target="classFrame">MultilineField</a></li>
+<li><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form" target="classFrame">NumericField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form" target="classFrame">PasswordField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">Permission</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols" target="classFrame">ProtocolInfo</a></li>
+<li><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleActivityRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroupDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleObjectPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleRelatedObjectSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleSystemPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserGroup</a></li>
+<li><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token" target="classFrame">StandardTokens</a></li>
+<li><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">StringGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">SystemPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml" target="classFrame"><span class="interfaceName">TagHandler</span></a></li>
+<li><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form" target="classFrame">TerminalColorSchemeField</a></li>
+<li><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form" target="classFrame">TextField</a></li>
+<li><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeField</a></li>
+<li><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeZoneField</a></li>
+<li><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token" target="classFrame">TokenFilter</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingUserContext</a></li>
+<li><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token" target="classFrame">TokenName</a></li>
+<li><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language" target="classFrame"><span class="interfaceName">Translatable</span></a></li>
+<li><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableMessage</a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelCloseEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelConnectEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelConnectListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">User</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth" target="classFrame">User.Attribute</a></li>
+<li><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">UserCredentials</a></li>
+<li><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">UserEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserGroup</span></a></li>
+<li><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form" target="classFrame">UsernameField</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/allclasses-noframe.html b/doc/1.1.0/guacamole-ext/allclasses-noframe.html
new file mode 100644
index 0000000..bb6ed48
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/allclasses-noframe.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>All Classes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<h1 class="bar">All&nbsp;Classes</h1>
+<div class="indexContainer">
+<ul>
+<li><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></li>
+<li><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Connection</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></li>
+<li><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></li>
+<li><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Directory</span></a></li>
+<li><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></li>
+<li><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></li>
+<li><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></li>
+<li><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="interfaceName">Environment</span></a></li>
+<li><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></li>
+<li><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></li>
+<li><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></li>
+<li><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></li>
+<li><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="interfaceName">GuacamoleProperty</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></li>
+<li><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+<li><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">Listener</span></a></li>
+<li><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></li>
+<li><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></li>
+<li><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">Permission</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></li>
+<li><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></li>
+<li><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></li>
+<li><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="interfaceName">SystemPermissionSet</span></a></li>
+<li><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="interfaceName">TagHandler</span></a></li>
+<li><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></li>
+<li><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></li>
+<li><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></li>
+<li><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></li>
+<li><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></li>
+<li><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></li>
+<li><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></li>
+<li><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="interfaceName">Translatable</span></a></li>
+<li><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="interfaceName">TunnelConnectListener</span></a></li>
+<li><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">User</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></li>
+<li><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></li>
+<li><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="interfaceName">UserEvent</span></a></li>
+<li><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="interfaceName">UserGroup</span></a></li>
+<li><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/constant-values.html b/doc/1.1.0/guacamole-ext/constant-values.html
new file mode 100644
index 0000000..6bf9fd3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/constant-values.html
@@ -0,0 +1,280 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Constant Field Values (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Constant Field Values (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Constant Field Values" class="title">Constant Field Values</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#org.apache">org.apache.*</a></li>
+</ul>
+</div>
+<div class="constantValuesContainer"><a name="org.apache">
+<!--   -->
+</a>
+<h2 title="org.apache">org.apache.*</h2>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.DateField.FORMAT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></code></td>
+<td class="colLast"><code>"yyyy-MM-dd"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.form.TimeField.FORMAT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></code></td>
+<td class="colLast"><code>"HH:mm:ss"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.auth.AbstractUserContext.DEFAULT_ROOT_CONNECTION_GROUP">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></code></td>
+<td class="colLast"><code>"ROOT"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.net.auth.AuthenticatedUser.ANONYMOUS_IDENTIFIER">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></code></td>
+<td class="colLast"><code>""</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<ul class="blockList">
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.CLIENT_ADDRESS_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_CLIENT_ADDRESS"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.CLIENT_HOSTNAME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_CLIENT_HOSTNAME"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.DATE_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_DATE"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.PASSWORD_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_PASSWORD"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.TIME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_TIME"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.guacamole.token.StandardTokens.USERNAME_TOKEN">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></code></td>
+<td class="colLast"><code>"GUAC_USERNAME"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?constant-values.html" target="_top">Frames</a></li>
+<li><a href="constant-values.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/deprecated-list.html b/doc/1.1.0/guacamole-ext/deprecated-list.html
new file mode 100644
index 0000000..55e6f63
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/deprecated-list.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Deprecated List (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Deprecated List (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Deprecated API" class="title">Deprecated API</h1>
+<h2 title="Contents">Contents</h2>
+<ul>
+<li><a href="#interface">Deprecated Interfaces</a></li>
+<li><a href="#class">Deprecated Classes</a></li>
+<li><a href="#method">Deprecated Methods</a></li>
+<li><a href="#constructor">Deprecated Constructors</a></li>
+</ul>
+</div>
+<div class="contentContainer"><a name="interface">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Interfaces table, listing deprecated interfaces, and an explanation">
+<caption><span>Deprecated Interfaces</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.AuthenticationFailureListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.ConnectionRecordSet</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.TunnelCloseListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener.TunnelConnectListener</a>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="class">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Classes table, listing deprecated classes, and an explanation">
+<caption><span>Deprecated Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleUserDirectory</a>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">org.apache.guacamole.token.StandardTokens</a>
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="method">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
+<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.Connectable.connect(GuacamoleClientInformation)</a>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.DelegatingConnectionGroup.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.DelegatingConnection.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.simple.SimpleConnection.connect(GuacamoleClientInformation)</a></td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">org.apache.guacamole.net.auth.simple.SimpleConnectionGroup.connect(GuacamoleClientInformation)</a></td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="constructor">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Constructors table, listing deprecated constructors, and an explanation">
+<caption><span>Deprecated Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">org.apache.guacamole.net.auth.simple.SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">org.apache.guacamole.net.auth.simple.SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;, Collection&lt;String&gt;)</a>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li class="navBarCell1Rev">Deprecated</li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
+<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/help-doc.html b/doc/1.1.0/guacamole-ext/help-doc.html
new file mode 100644
index 0000000..42012a4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/help-doc.html
@@ -0,0 +1,241 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>API Help (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="API Help (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">How This API Document Is Organized</h1>
+<div class="subTitle">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2>Overview</h2>
+<p>The <a href="overview-summary.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
+</li>
+<li class="blockList">
+<h2>Package</h2>
+<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:</p>
+<ul>
+<li>Interfaces (italic)</li>
+<li>Classes</li>
+<li>Enums</li>
+<li>Exceptions</li>
+<li>Errors</li>
+<li>Annotation Types</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Class/Interface</h2>
+<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
+<ul>
+<li>Class inheritance diagram</li>
+<li>Direct Subclasses</li>
+<li>All Known Subinterfaces</li>
+<li>All Known Implementing Classes</li>
+<li>Class/interface declaration</li>
+<li>Class/interface description</li>
+</ul>
+<ul>
+<li>Nested Class Summary</li>
+<li>Field Summary</li>
+<li>Constructor Summary</li>
+<li>Method Summary</li>
+</ul>
+<ul>
+<li>Field Detail</li>
+<li>Constructor Detail</li>
+<li>Method Detail</li>
+</ul>
+<p>Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
+</li>
+<li class="blockList">
+<h2>Annotation Type</h2>
+<p>Each annotation type has its own separate page with the following sections:</p>
+<ul>
+<li>Annotation Type declaration</li>
+<li>Annotation Type description</li>
+<li>Required Element Summary</li>
+<li>Optional Element Summary</li>
+<li>Element Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Enum</h2>
+<p>Each enum has its own separate page with the following sections:</p>
+<ul>
+<li>Enum declaration</li>
+<li>Enum description</li>
+<li>Enum Constant Summary</li>
+<li>Enum Constant Detail</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Use</h2>
+<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
+</li>
+<li class="blockList">
+<h2>Tree (Class Hierarchy)</h2>
+<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.</p>
+<ul>
+<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
+<li>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</li>
+</ul>
+</li>
+<li class="blockList">
+<h2>Deprecated API</h2>
+<p>The <a href="deprecated-list.html">Deprecated API</a> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</p>
+</li>
+<li class="blockList">
+<h2>Index</h2>
+<p>The <a href="index-all.html">Index</a> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</p>
+</li>
+<li class="blockList">
+<h2>Prev/Next</h2>
+<p>These links take you to the next or previous class, interface, package, or related page.</p>
+</li>
+<li class="blockList">
+<h2>Frames/No Frames</h2>
+<p>These links show and hide the HTML frames.  All pages are available with or without frames.</p>
+</li>
+<li class="blockList">
+<h2>All Classes</h2>
+<p>The <a href="allclasses-noframe.html">All Classes</a> link shows all classes and interfaces except non-static nested types.</p>
+</li>
+<li class="blockList">
+<h2>Serialized Form</h2>
+<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.</p>
+</li>
+<li class="blockList">
+<h2>Constant Field Values</h2>
+<p>The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.</p>
+</li>
+</ul>
+<span class="emphasizedPhrase">This help file applies to API documentation generated using the standard doclet.</span></div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li class="navBarCell1Rev">Help</li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?help-doc.html" target="_top">Frames</a></li>
+<li><a href="help-doc.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/index-all.html b/doc/1.1.0/guacamole-ext/index-all.html
new file mode 100644
index 0000000..9beb594
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/index-all.html
@@ -0,0 +1,3432 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Index (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Index (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="contentContainer"><a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a name="I:A">
+<!--   -->
+</a>
+<h2 class="title">A</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#AbstractActiveConnection--">AbstractActiveConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#AbstractAuthenticatedUser--">AbstractAuthenticatedUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#AbstractAuthenticationProvider--">AbstractAuthenticationProvider()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#AbstractConnection--">AbstractConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#AbstractConnectionGroup--">AbstractConnectionGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#AbstractIdentifiable--">AbstractIdentifiable()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#AbstractSharingProfile--">AbstractSharingProfile()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#AbstractUser--">AbstractUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#AbstractUserContext--">AbstractUserContext()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#AbstractUserGroup--">AbstractUserGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a> extends <a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Adds the given object to the overall set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects(Set&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#addObjects-java.util.Set-">addObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;PermissionType&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens(TokenFilter)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens(TokenFilter, Credentials)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens(TokenFilter, AuthenticatedUser)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></span> - Static variable in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#asCollection--">asCollection()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#Attribute--">Attribute()</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed(AuthenticationFailureEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationFailureListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent(Credentials)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></dt>
+<dd>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded(AuthenticationSuccessEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationSuccessListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent(AuthenticatedUser)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+</dl>
+<a name="I:B">
+<!--   -->
+</a>
+<h2 class="title">B</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#BOOLEAN">BOOLEAN</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field with strictly one possible value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/BooleanField.html#BooleanField-java.lang.String-java.lang.String-">BooleanField(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></dt>
+<dd>
+<div class="block">Creates a new BooleanField with the given name and truth value.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html#BooleanGuacamoleProperty--">BooleanGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:C">
+<!--   -->
+</a>
+<h2 class="title">C</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-">canonicalize(String, String)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></dt>
+<dd>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-">canonicalize(String)</a></span> - Static method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></dt>
+<dd>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#characters-char:A-int-int-">characters(char[], int, int)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement(String)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#complete-java.lang.String-">complete(String)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>Connectable.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect(GuacamoleClientInformation)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect(GuacamoleClientInformation, Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which Guacamole can connect to.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All legal types of connection group.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">Credentials(String, String, HttpServletRequest)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a> - Class in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">Information which describes a set of valid credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo(Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</dd>
+</dl>
+<a name="I:D">
+<!--   -->
+</a>
+<h2 class="title">D</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#DATE">DATE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a date field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#DateField-java.lang.String-">DateField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Creates a new DateField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#decorate-ObjectType-">decorate(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory(Directory&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>AbstractUserContext.getRootConnectionGroup()</code></a> is not overridden.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection(Connection)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup(ConnectionGroup)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory(Directory&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile(SharingProfile)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser(User)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext(UserContext)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup(UserGroup)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;<a href="org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</dd>
+<dt><a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a> - Class in <a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></dt>
+<dd>
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler(String, TagHandler)</a></span> - Constructor for class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</dd>
+</dl>
+<a name="I:E">
+<!--   -->
+</a>
+<h2 class="title">E</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#EMAIL">EMAIL</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An email address field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#EMAIL_ADDRESS">EMAIL_ADDRESS</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The email address of the user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a text field which may contain an email address.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/EmailField.html#EmailField-java.lang.String-">EmailField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></dt>
+<dd>
+<div class="block">Creates a new EmailField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span> - Static variable in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement(String, String, String)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#ENUM">ENUM</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/EnumField.html#EnumField-java.lang.String-java.util.Collection-">EnumField(String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></dt>
+<dd>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a> - Interface in <a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></dt>
+<dd>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:F">
+<!--   -->
+</a>
+<h2 class="title">F</h2>
+<dl>
+<dt><a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field--">Field()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-">Field(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Field with the given name  and type.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-java.util.Collection-">Field(String, String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">All types of fields which are available by default.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#FieldOption--">FieldOption()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#FieldOption-java.lang.String-java.lang.String-">FieldOption(String, String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html#FileGuacamoleProperty--">FileGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#filter-java.lang.String-">filter(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#filterValues-java.util.Map-">filterValues(Map&lt;?, String&gt;)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Information which describes logical set of fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#Form--">Form()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Creates a new Form object with no associated fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form(String, Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#format-java.util.Date-">format(Date)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#format-java.lang.Integer-">format(Integer)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#format-java.util.Date-">format(Date)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#FULL_NAME">FULL_NAME</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The user's full name.</div>
+</dd>
+</dl>
+<a name="I:G">
+<!--   -->
+</a>
+<h2 class="title">G</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns the object having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects(Collection&lt;ObjectPermission.Type&gt;, Collection&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects(Collection&lt;ObjectPermission.Type&gt;, Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></dt>
+<dd>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getActiveConnections--">getActiveConnections()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns the objects having the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></dt>
+<dd>
+<div class="block">Returns all attributes associated with this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getAttributes--">getAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dt>
+<dd>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations(Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionIdentifier--">getConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionName--">getConnectionName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all connection permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></dt>
+<dd>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo()</a></span> - Method in exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#getFields--">getFields()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields()</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--">getFullConfiguration()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getGuacamoleHome--">getGuacamoleHome()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getHistory--">getHistory()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getHistory--">getHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getHostname--">getHostname()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getIdentifier--">getIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dt>
+<dd>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#getKey--">getKey()</a></span> - Method in class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns the date and time that this user was last active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#getLastActive--">getLastActive()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns the date and time that this user was last active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns the unique name associated with this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Returns the name of this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the name assigned to this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName()</a></span> - Method in interface org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></dt>
+<dd>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getName--">getName()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns the unique name of this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#getObjectIdentifier--">getObjectIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Returns the Map which currently backs this SimpleDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#getObjects--">getObjects()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getOptions--">getOptions()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of field options.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getParameters--">getParameters()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the password associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getPassword--">getPassword()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getPassword--">getPassword()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns this user's password.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getPort--">getPort()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Returns the port that guacd is listening on.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty(GuacamoleProperty&lt;Type&gt;, Type)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty(GuacamoleProperty&lt;Type&gt;, Type)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol(String)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns the protocol having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol(String)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols()</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols()</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRemoteAddress--">getRemoteAddress()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getRemoteHost--">getRemoteHost()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRemoteHostname--">getRemoteHostname()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getRequest--">getRequest()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty(GuacamoleProperty&lt;Type&gt;)</a></span> - Method in class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getResource--">getResource()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getSession--">getSession()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></dt>
+<dd>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms()</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileIdentifier--">getSharingProfileIdentifier()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileName--">getSharingProfileName()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getStartDate--">getStartDate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the date and time the connection began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the date and time the activity began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#getTitle--">getTitle()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#getToken-java.lang.String-">getToken(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens(Connection)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens(ConnectionGroup)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#getTokens--">getTokens()</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage()</a></span> - Method in interface org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></dt>
+<dd>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#getTunnel--">getTunnel()</a></span> - Method in class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel()</a></span> - Method in interface org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></dt>
+<dd>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Returns the type of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Returns the type of this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType()</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></dt>
+<dd>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext(AuthenticatedUser)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all user group permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dt>
+<dd>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#getUsername--">getUsername()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#getUsername--">getUsername()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Returns the username associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dt>
+<dd>
+<div class="block">Returns all user permissions given to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#getValue--">getValue()</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-java.lang.String-">getValue(String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue(Field)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValues--">getValues()</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#getVariables--">getVariables()</a></span> - Method in class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a> - Exception in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(String, Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(String, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException(Throwable, CredentialsInfo)</a></span> - Constructor for exception org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a>&gt; - Interface in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration(String, int, GuacamoleProxyConfiguration.EncryptionMethod)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-boolean-">GuacamoleProxyConfiguration(String, int, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dt>
+<dd>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a> - Enum in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All possible types of encryption used by guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span> - Static variable in interface org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dt>
+<dd>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</dd>
+</dl>
+<a name="I:H">
+<!--   -->
+</a>
+<h2 class="title">H</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/Listener.html#handleEvent-java.lang.Object-">handleEvent(Object)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Listener</a></dt>
+<dd>
+<div class="block">Notifies the recipient that an event has occurred.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#hashCode--">hashCode()</a></span> - Method in class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:I">
+<!--   -->
+</a>
+<h2 class="title">I</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/TagHandler.html#init-org.xml.sax.Attributes-">init(Attributes)</a></span> - Method in interface org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></dt>
+<dd>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html#IntegerGuacamoleProperty--">IntegerGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></dt>
+<dd>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></dt>
+<dd>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dt>
+<dd>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>ActiveConnection.connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+</dd>
+</dl>
+<a name="I:L">
+<!--   -->
+</a>
+<h2 class="title">L</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#LANGUAGE">LANGUAGE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">Field type which allows selection of languages.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a language field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/LanguageField.html#LanguageField-java.lang.String-">LanguageField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></dt>
+<dd>
+<div class="block">Creates a new LanguageField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit(int)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit(int)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit(int)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> - Class in <a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></dt>
+<dd>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/environment/LocalEnvironment.html#LocalEnvironment--">LocalEnvironment()</a></span> - Constructor for class org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dt>
+<dd>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html#LongGuacamoleProperty--">LongGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:M">
+<!--   -->
+</a>
+<h2 class="title">M</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#MULTILINE">MULTILINE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A text field that can span more than one line.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/MultilineField.html#MultilineField-java.lang.String-">MultilineField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></dt>
+<dd>
+<div class="block">Creates a new MultilineField with the given name.</div>
+</dd>
+</dl>
+<a name="I:N">
+<!--   -->
+</a>
+<h2 class="title">N</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#NUMERIC">NUMERIC</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which may contain only integer values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#NumericField-java.lang.String-">NumericField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Creates a new NumericField with the given name.</div>
+</dd>
+</dl>
+<a name="I:O">
+<!--   -->
+</a>
+<h2 class="title">O</h2>
+<dl>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> - Class in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission(ObjectPermission.Type, String)</a></span> - Constructor for class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dt>
+<dd>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">Specific types of object-level permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</dd>
+<dt><a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> - package org.apache.guacamole.environment</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> - package org.apache.guacamole.form</dt>
+<dd>
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> - package org.apache.guacamole.language</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> - package org.apache.guacamole.net.auth</dt>
+<dd>
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> - package org.apache.guacamole.net.auth.credentials</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> - package org.apache.guacamole.net.auth.permission</dt>
+<dd>
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> - package org.apache.guacamole.net.auth.simple</dt>
+<dd>
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> - package org.apache.guacamole.net.event</dt>
+<dd>
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> - package org.apache.guacamole.net.event.listener</dt>
+<dd>
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> - package org.apache.guacamole.properties</dt>
+<dd>
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> - package org.apache.guacamole.protocols</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> - package org.apache.guacamole.token</dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> - package org.apache.guacamole.xml</dt>
+<dd>
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATION">ORGANIZATION</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The organization, company, group, etc.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATIONAL_ROLE">ORGANIZATIONAL_ROLE</a></span> - Static variable in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></dt>
+<dd>
+<div class="block">The role that the user has at the organization, company, group, etc.</div>
+</dd>
+</dl>
+<a name="I:P">
+<!--   -->
+</a>
+<h2 class="title">P</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/DateField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></dt>
+<dd>
+<div class="block">Parses the given string into a corresponding date.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/LanguageField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></dt>
+<dd>
+<div class="block">Parses the given string into a language ID string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/NumericField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></dt>
+<dd>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Parses the given string into a corresponding time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeZoneField.html#parse-java.lang.String-">parse(String)</a></span> - Static method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></dt>
+<dd>
+<div class="block">Parses the given string into a time zone ID string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/FileGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in interface org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></dt>
+<dd>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/LongGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html#parseValue-java.lang.String-">parseValue(String)</a></span> - Method in class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#PASSWORD">PASSWORD</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/PasswordField.html#PasswordField-java.lang.String-">PasswordField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></dt>
+<dd>
+<div class="block">Creates a new PasswordField with the given name.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a> extends <a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">An arbitrary set of permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a> - Class in <a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></dt>
+<dd>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo(String, Collection&lt;Form&gt;, Collection&lt;Form&gt;)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo--">ProtocolInfo()</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-">ProtocolInfo(String)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo(String, Collection&lt;Form&gt;)</a></span> - Constructor for class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection(Connection)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup(ConnectionGroup)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</dd>
+</dl>
+<a name="I:Q">
+<!--   -->
+</a>
+<h2 class="title">Q</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#QUERY_PARAMETER">QUERY_PARAMETER</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</dd>
+</dl>
+<a name="I:R">
+<!--   -->
+</a>
+<h2 class="title">R</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate(UserContext, UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate(UserContext, UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup(String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects(Set&lt;String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dt>
+<dd>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission(ObjectPermission.Type, String)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission(SystemPermission.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>
+<div class="block">Removes the specified permission.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission(ObjectPermission.Type, String)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission(SystemPermission.Type)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;PermissionType&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></dt>
+<dd>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-java.lang.String-">removeValue(String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue(Field)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</dd>
+</dl>
+<a name="I:S">
+<!--   -->
+</a>
+<h2 class="title">S</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self()</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/UserContext.html#self--">self()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dt>
+<dd>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></dt>
+<dd>
+<div class="block">Sets the given attributes.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#setAttributes-java.util.Map-">setAttributes(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration(GuacamoleConfiguration)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms(Collection&lt;Form&gt;)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields(Collection&lt;Field&gt;)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dt>
+<dd>
+<div class="block">Sets the identifier assigned to this object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the unique name associated with this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Form.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></dt>
+<dd>
+<div class="block">Sets the name of this form.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the name assigned to this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setName-java.lang.String-">setName(String)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the unique name of this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects(Map&lt;String, ObjectType&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Sets the Map which backs this SimpleDirectory.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#setObjects-java.util.Set-">setObjects(Set&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions(Collection&lt;String&gt;)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the options available as possible values of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters(Map&lt;String, String&gt;)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></dt>
+<dd>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the password associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingUser.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dt>
+<dd>
+<div class="block">Sets this user's password.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions(Set&lt;ObjectPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions(Set&lt;SystemPermission&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dt>
+<dd>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRemoteAddress-java.lang.String-">setRemoteAddress(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRemoteHostname-java.lang.String-">setRemoteHostname(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setRequest-javax.servlet.http.HttpServletRequest-">setRequest(HttpServletRequest)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setSession-javax.servlet.http.HttpSession-">setSession(HttpSession)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms(Collection&lt;Form&gt;)</a></span> - Method in class org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></dt>
+<dd>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setStartDate-java.util.Date-">setStartDate(Date)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate(Date)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the date and time the connection began.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#setTitle-java.lang.String-">setTitle(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-">setToken(String, String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Sets the token having the given name to the given value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-">setTokens(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel(GuacamoleTunnel)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel(GuacamoleTunnel)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dt>
+<dd>
+<div class="block">Sets the type of this field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dt>
+<dd>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType(ConnectionGroup.Type)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dt>
+<dd>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Credentials.html#setUsername-java.lang.String-">setUsername(String)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></dt>
+<dd>
+<div class="block">Sets the username associated with this set of credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/FieldOption.html#setValue-java.lang.String-">setValue(String)</a></span> - Method in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></dt>
+<dd>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-java.lang.String-java.lang.String-">setValue(String, String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Sets the value of the field having the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue(Field, String)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Sets the value of the given field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValues-java.util.Map-">setValues(Map&lt;String, String&gt;)</a></span> - Method in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;<a href="org/apache/guacamole/net/auth/Shareable.html" title="type parameter in Shareable">T</a>&gt; - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown()</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown()</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet--">SimpleActivityRecordSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#SimpleAuthenticationProvider--">SimpleAuthenticationProvider()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection--">SimpleConnection()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-boolean-">SimpleConnection(boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">SimpleConnection(String, String, GuacamoleConfiguration)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">SimpleConnection(String, String, GuacamoleConfiguration, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory(Collection&lt;Connection&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">SimpleConnectionGroup(String, String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dt>
+<dd>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory(Collection&lt;ConnectionGroup&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#SimpleConnectionRecordSet--">SimpleConnectionRecordSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt; - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory--">SimpleDirectory()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-">SimpleDirectory(Map&lt;String, ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType-">SimpleDirectory(ObjectType)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory(ObjectType...)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Collection-">SimpleDirectory(Collection&lt;ObjectType&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet--">SimpleObjectPermissionSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleObjectPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet(Collection&lt;String&gt;, Collection&lt;ObjectPermission.Type&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-">SimpleObjectPermissionSet(Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet(Set&lt;ObjectPermission&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet--">SimpleRelatedObjectSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleRelatedObjectSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet-java.util.Set-">SimpleRelatedObjectSet(Set&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet--">SimpleSystemPermissionSet()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new empty SimpleSystemPermissionSet.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet(Set&lt;SystemPermission&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dt>
+<dd>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser--">SimpleUser()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-">SimpleUser(String)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">SimpleUser(String, Collection&lt;String&gt;, Collection&lt;String&gt;, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext(AuthenticationProvider, Map&lt;String, GuacamoleConfiguration&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext(AuthenticationProvider, String, Map&lt;String, GuacamoleConfiguration&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext(AuthenticationProvider, String, Map&lt;String, GuacamoleConfiguration&gt;, boolean)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Use <a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory(User)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></dt>
+<dd>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup--">SimpleUserGroup()</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dt>
+<dd>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup-java.lang.String-">SimpleUserGroup(String)</a></span> - Constructor for class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dt>
+<dd>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></dt>
+<dd>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort(ActivityRecordSet.SortableProperty, boolean)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+&nbsp;</dd>
+<dt><a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/xml/DocumentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement(String, String, String, Attributes)</a></span> - Method in class org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> - Class in <a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></dt>
+<dd>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/properties/StringGuacamoleProperty.html#StringGuacamoleProperty--">StringGuacamoleProperty()</a></span> - Constructor for class org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> - Class in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission(SystemPermission.Type)</a></span> - Constructor for class org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dt>
+<dd>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a> - Enum in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">Specific types of system-level permissions.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a> - Interface in <a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></dt>
+<dd>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</dd>
+</dl>
+<a name="I:T">
+<!--   -->
+</a>
+<h2 class="title">T</h2>
+<dl>
+<dt><a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a> - Interface in <a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></dt>
+<dd>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TERMINAL_COLOR_SCHEME">TERMINAL_COLOR_SCHEME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a terminal color scheme field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TerminalColorSchemeField.html#TerminalColorSchemeField-java.lang.String-">TerminalColorSchemeField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></dt>
+<dd>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TEXT">TEXT</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A text field, accepting arbitrary values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a basic text field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#TextField-java.lang.String-">TextField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Creates a new TextField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TextField.html#TextField-java.lang.String-java.util.Collection-">TextField(String, Collection&lt;String&gt;)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></dt>
+<dd>
+<div class="block">Creates a new TextField with the given name and possible values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TIME">TIME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a time field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeField.html#TimeField-java.lang.String-">TimeField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></dt>
+<dd>
+<div class="block">Creates a new TimeField with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#TIMEZONE">TIMEZONE</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a time zone field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/TimeZoneField.html#TimeZoneField-java.lang.String-">TimeZoneField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></dt>
+<dd>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+</dd>
+<dt><a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#TokenFilter--">TokenFilter()</a></span> - Constructor for class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Creates a new TokenFilter which has no associated tokens.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#TokenFilter-java.util.Map-">TokenFilter(Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection(Connection, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dt>
+<dd>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup(ConnectionGroup, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dt>
+<dd>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext(UserContext, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext(UserContext)</a></span> - Constructor for class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dt>
+<dd>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</dd>
+<dt><a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a> - Class in <a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></dt>
+<dd>
+<div class="block">Utility class for generating parameter token names.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a> - Interface in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</dd>
+<dt><a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a> - Class in <a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></dt>
+<dd>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-">TranslatableMessage(String)</a></span> - Constructor for class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-java.lang.Object-">TranslatableMessage(String, Object)</a></span> - Constructor for class org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></dt>
+<dd>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed(TunnelCloseEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelCloseListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent(AuthenticatedUser, Credentials, GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></dt>
+<dd>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected(TunnelConnectEvent)</a></span> - Method in interface org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelConnectListener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> - Class in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent(AuthenticatedUser, Credentials, GuacamoleTunnel)</a></span> - Constructor for class org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dt>
+<dd>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a> - Interface in <a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#Type--">Type()</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>&nbsp;</dd>
+</dl>
+<a name="I:U">
+<!--   -->
+</a>
+<h2 class="title">U</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#undecorate-ObjectType-">undecorate(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/TokenFilter.html#unsetToken-java.lang.String-">unsetToken(String)</a></span> - Method in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></dt>
+<dd>
+<div class="block">Removes the value of the token with the given name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DecoratingDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></dt>
+<dd>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update(ObjectType)</a></span> - Method in class org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser(AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser(AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in class org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext(UserContext, AuthenticatedUser, Credentials)</a></span> - Method in interface org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dt>
+<dd>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user of the Guacamole web application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a> - Class in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">The context of an active user.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a> - Class in <a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></dt>
+<dd>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials(Collection&lt;Field&gt;, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials(CredentialsInfo, Map&lt;String, String&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials(CredentialsInfo)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials(Collection&lt;Field&gt;)</a></span> - Constructor for class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dt>
+<dd>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a> - Interface in <a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></dt>
+<dd>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</dd>
+<dt><a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> - Interface in <a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></dt>
+<dd>
+<div class="block">A user group of the Guacamole web application.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/Field.Type.html#USERNAME">USERNAME</a></span> - Static variable in class org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></dt>
+<dd>
+<div class="block">A username field.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span> - Static variable in class org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></dt>
+<dd>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></span> - Static variable in class org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></dt>
+<dd>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+</dd>
+<dt><a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a> - Class in <a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></dt>
+<dd>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/form/UsernameField.html#UsernameField-java.lang.String-">UsernameField(String)</a></span> - Constructor for class org.apache.guacamole.form.<a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></dt>
+<dd>
+<div class="block">Creates a new UsernameField with the given name.</div>
+</dd>
+</dl>
+<a name="I:V">
+<!--   -->
+</a>
+<h2 class="title">V</h2>
+<dl>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf(String)</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></dt>
+<dd>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values()</a></span> - Static method in enum org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></dt>
+<dd>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</dd>
+</dl>
+<a href="#I:A">A</a>&nbsp;<a href="#I:B">B</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:O">O</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:Q">Q</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li class="navBarCell1Rev">Index</li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?index-all.html" target="_top">Frames</a></li>
+<li><a href="index-all.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/index.html b/doc/1.1.0/guacamole-ext/index.html
new file mode 100644
index 0000000..34d1dd6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/index.html
@@ -0,0 +1,76 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>guacamole-ext 1.1.0 API</title>
+<script type="text/javascript">
+    tmpTargetPage = "" + window.location.search;
+    if (tmpTargetPage != "" && tmpTargetPage != "undefined")
+        tmpTargetPage = tmpTargetPage.substring(1);
+    if (tmpTargetPage.indexOf(":") != -1 || (tmpTargetPage != "" && !validURL(tmpTargetPage)))
+        tmpTargetPage = "undefined";
+    targetPage = tmpTargetPage;
+    function validURL(url) {
+        try {
+            url = decodeURIComponent(url);
+        }
+        catch (error) {
+            return false;
+        }
+        var pos = url.indexOf(".html");
+        if (pos == -1 || pos != url.length - 5)
+            return false;
+        var allowNumber = false;
+        var allowSep = false;
+        var seenDot = false;
+        for (var i = 0; i < url.length - 5; i++) {
+            var ch = url.charAt(i);
+            if ('a' <= ch && ch <= 'z' ||
+                    'A' <= ch && ch <= 'Z' ||
+                    ch == '$' ||
+                    ch == '_' ||
+                    ch.charCodeAt(0) > 127) {
+                allowNumber = true;
+                allowSep = true;
+            } else if ('0' <= ch && ch <= '9'
+                    || ch == '-') {
+                if (!allowNumber)
+                     return false;
+            } else if (ch == '/' || ch == '.') {
+                if (!allowSep)
+                    return false;
+                allowNumber = false;
+                allowSep = false;
+                if (ch == '.')
+                     seenDot = true;
+                if (ch == '/' && seenDot)
+                     return false;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
+    function loadFrames() {
+        if (targetPage != "" && targetPage != "undefined")
+             top.classFrame.location = top.targetPage;
+    }
+</script>
+</head>
+<frameset cols="20%,80%" title="Documentation frame" onload="top.loadFrames()">
+<frameset rows="30%,70%" title="Left frames" onload="top.loadFrames()">
+<frame src="overview-frame.html" name="packageListFrame" title="All Packages">
+<frame src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
+</frameset>
+<frame src="overview-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
+<noframes>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<h2>Frame Alert</h2>
+<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p>
+</noframes>
+</frameset>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/Environment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/Environment.html
new file mode 100644
index 0000000..c846335
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/Environment.html
@@ -0,0 +1,504 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Environment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.environment</div>
+<h2 title="Interface Environment" class="title">Interface Environment</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Environment</span></pre>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span></code>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span></code>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span></code>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome</a></span>()</code>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="GUACD_HOSTNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GUACD_HOSTNAME</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a> GUACD_HOSTNAME</pre>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</li>
+</ul>
+<a name="GUACD_PORT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GUACD_PORT</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a> GUACD_PORT</pre>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</li>
+</ul>
+<a name="GUACD_SSL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GUACD_SSL</h4>
+<pre>static final&nbsp;<a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a> GUACD_SSL</pre>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getGuacamoleHome--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleHome</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;getGuacamoleHome()</pre>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created. The Guacamole home directory is found by checking, in
+ order: the guacamole.home system property, the GUACAMOLE_HOME environment
+ variable, and finally the .guacamole directory in the home directory of
+ the user running the servlet container.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The File representing the Guacamole home directory, which may
+         or may not exist, and may turn out to not be a directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocols--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocols</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;&nbsp;getProtocols()</pre>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all available protocols.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&nbsp;getProtocol(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the protocol having the given name. The name must be the
+ protocol name as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the protocol.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol having the given name, or null if no such
+         protocol is registered.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-java.lang.Object-">
+<!--   -->
+</a><a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+                        Type&nbsp;defaultValue)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any. If no value is found, the
+ provided default value is returned.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dd><code>defaultValue</code> - The value to return if no value was given in
+                     guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties, or the provided default value if no value
+         was found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequiredProperty</h4>
+<pre>&lt;Type&gt;&nbsp;Type&nbsp;getRequiredProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties. An exception is thrown if the value
+ is not provided.</div>
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties, or if the property is
+                            not specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="getDefaultGuacamoleProxyConfiguration--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDefaultGuacamoleProxyConfiguration</h4>
+<pre><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a>&nbsp;getDefaultGuacamoleProxyConfiguration()
+                                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connection information which should be used, by default, to
+     connect to guacd.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the the connection information for guacd cannot be
+     retrieved.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Environment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html
new file mode 100644
index 0000000..0d47798
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/LocalEnvironment.html
@@ -0,0 +1,530 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LocalEnvironment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LocalEnvironment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalEnvironment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.environment</div>
+<h2 title="Class LocalEnvironment" class="title">Class LocalEnvironment</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.environment.LocalEnvironment</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">LocalEnvironment</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></pre>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.environment.Environment">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></h3>
+<code><a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a>, <a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a>, <a href="../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#LocalEnvironment--">LocalEnvironment</a></span>()</code>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getGuacamoleHome--">getGuacamoleHome</a></span>()</code>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LocalEnvironment--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LocalEnvironment</h4>
+<pre>public&nbsp;LocalEnvironment()
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Creates a new Environment, initializing that environment based on the
+ location of GUACAMOLE_HOME and the contents of guacamole.properties.</div>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while determining the
+                            environment of this Guacamole instance.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getGuacamoleHome--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getGuacamoleHome</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;getGuacamoleHome()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">Environment</a></code></span></div>
+<div class="block">Returns the Guacamole home directory as determined when this Environment
+ object was created. The Guacamole home directory is found by checking, in
+ order: the guacamole.home system property, the GUACAMOLE_HOME environment
+ variable, and finally the .guacamole directory in the home directory of
+ the user running the servlet container.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getGuacamoleHome--">getGuacamoleHome</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The File representing the Guacamole home directory, which may
+         or may not exist, and may turn out to not be a directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-java.lang.Object-">
+<!--   -->
+</a><a name="getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+                               Type&nbsp;defaultValue)
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any. If no value is found, the
+ provided default value is returned.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dd><code>defaultValue</code> - The value to return if no value was given in
+                     guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties, or the provided default value if no value
+         was found.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequiredProperty</h4>
+<pre>public&nbsp;&lt;Type&gt;&nbsp;Type&nbsp;getRequiredProperty(<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">Environment</a></code></span></div>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties. An exception is thrown if the value
+ is not provided.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type that the given property is parsed into.</dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property to read from guacamole.properties.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value of the property as read from
+         guacamole.properties.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the value
+                            for the given property in
+                            guacamole.properties, or if the property is
+                            not specified.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocols--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocols</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;&nbsp;getProtocols()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">Environment</a></code></span></div>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all available protocols.</dd>
+</dl>
+</li>
+</ul>
+<a name="getProtocol-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getProtocol</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&nbsp;getProtocol(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">Environment</a></code></span></div>
+<div class="block">Returns the protocol having the given name. The name must be the
+ protocol name as would be passed to guacd during connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the protocol.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The protocol having the given name, or null if no such
+         protocol is registered.</dd>
+</dl>
+</li>
+</ul>
+<a name="getDefaultGuacamoleProxyConfiguration--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getDefaultGuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;<a href="../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a>&nbsp;getDefaultGuacamoleProxyConfiguration()
+                                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">Environment</a></code></span></div>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connection information which should be used, by default, to
+     connect to guacd.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the the connection information for guacd cannot be
+     retrieved.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LocalEnvironment.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html
new file mode 100644
index 0000000..ce0570e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/Environment.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.environment.Environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.environment.Environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.environment.Environment" class="title">Uses of Interface<br>org.apache.guacamole.environment.Environment</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that implement <a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></span></code>
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/Environment.html" target="_top">Frames</a></li>
+<li><a href="Environment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html
new file mode 100644
index 0000000..6499853
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/class-use/LocalEnvironment.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.environment.LocalEnvironment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.environment.LocalEnvironment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.environment.LocalEnvironment" class="title">Uses of Class<br>org.apache.guacamole.environment.LocalEnvironment</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.environment.LocalEnvironment</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/environment/class-use/LocalEnvironment.html" target="_top">Frames</a></li>
+<li><a href="LocalEnvironment.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html
new file mode 100644
index 0000000..cc00325
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/environment/package-summary.html" target="classFrame">org.apache.guacamole.environment</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Environment.html" title="interface in org.apache.guacamole.environment" target="classFrame"><span class="interfaceName">Environment</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="LocalEnvironment.html" title="class in org.apache.guacamole.environment" target="classFrame">LocalEnvironment</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html
new file mode 100644
index 0000000..f990ac6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-summary.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.environment</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a></td>
+<td class="colLast">
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment">LocalEnvironment</a></td>
+<td class="colLast">
+<div class="block">The environment of the locally-running Guacamole instance, describing
+ available protocols, configuration parameters, and the GUACAMOLE_HOME
+ directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Package</li>
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html
new file mode 100644
index 0000000..5850cf7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-tree.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.environment Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.environment Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.environment</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> (implements org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.environment.<a href="../../../../org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-use.html
new file mode 100644
index 0000000..be5a155
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/environment/package-use.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.environment (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.environment (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.environment" class="title">Uses of Package<br>org.apache.guacamole.environment</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/environment/class-use/Environment.html#org.apache.guacamole.environment">Environment</a>
+<div class="block">The environment of an arbitrary Guacamole instance, describing available
+ protocols, configuration parameters, and the GUACAMOLE_HOME directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/environment/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html
new file mode 100644
index 0000000..3afccf7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/BooleanField.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class BooleanField" class="title">Class BooleanField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.BooleanField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">BooleanField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field with strictly one possible value. It is assumed that the
+ field may be blank, but that its sole non-blank value is the value provided.
+ The provided value represents "true" while all other values, including
+ having no associated value, represent "false".</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/BooleanField.html#BooleanField-java.lang.String-java.lang.String-">BooleanField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;truthValue)</code>
+<div class="block">Creates a new BooleanField with the given name and truth value.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanField-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanField</h4>
+<pre>public&nbsp;BooleanField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;truthValue)</pre>
+<div class="block">Creates a new BooleanField with the given name and truth value. The
+ truth value is the value that, when assigned to this field, means that
+ this field is "true".</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>truthValue</code> - The value to consider "true" for this field. All other values will
+     be considered "false".</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/DateField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/DateField.html
new file mode 100644
index 0000000..f90302a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/DateField.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DateField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DateField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class DateField" class="title">Class DateField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.DateField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DateField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a date field. The field may contain only date values which
+ conform to a standard pattern, defined by DateField.FORMAT.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#FORMAT">FORMAT</a></span></code>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#DateField-java.lang.String-">DateField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new DateField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#format-java.util.Date-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</code>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/DateField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dateString)</code>
+<div class="block">Parses the given string into a corresponding date.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FORMAT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORMAT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FORMAT</pre>
+<div class="block">The date format used by date fields, compatible with SimpleDateFormat.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.DateField.FORMAT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DateField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DateField</h4>
+<pre>public&nbsp;DateField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new DateField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="format-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;date)</pre>
+<div class="block">Converts the given date into a string which follows the format used by
+ date fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>date</code> - The date value to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The formatted date, or null if the provided time was null.</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;dateString)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></pre>
+<div class="block">Parses the given string into a corresponding date. The string must
+ follow the standard format used by date fields, as defined by FORMAT
+ and as would be produced by format().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>dateString</code> - The date string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date corresponding to the given date string, or null if the
+     provided date string was null or blank.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></code> - If the given date string does not conform to the standard format
+     used by date fields.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DateField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EmailField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EmailField.html
new file mode 100644
index 0000000..302d451
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EmailField.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EmailField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EmailField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EmailField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class EmailField" class="title">Class EmailField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.EmailField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">EmailField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a text field which may contain an email address.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/EmailField.html#EmailField-java.lang.String-">EmailField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new EmailField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="EmailField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EmailField</h4>
+<pre>public&nbsp;EmailField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new EmailField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EmailField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EnumField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EnumField.html
new file mode 100644
index 0000000..a0a8849
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/EnumField.html
@@ -0,0 +1,288 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>EnumField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="EnumField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class EnumField" class="title">Class EnumField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.EnumField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">EnumField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/EnumField.html#EnumField-java.lang.String-java.util.Collection-">EnumField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="EnumField-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EnumField</h4>
+<pre>public&nbsp;EnumField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new EnumField with the given name and possible values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>options</code> - All possible legal options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/EnumField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html
new file mode 100644
index 0000000..9344596
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.Type.html
@@ -0,0 +1,522 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Field.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Field.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Field.Type" class="title">Class Field.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Field.Type</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="typeNameLabel">Field.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">All types of fields which are available by default. Additional field
+ types may be defined by extensions by using a unique field type name and
+ registering that name with the form service within JavaScript.
+
+ See FormService.js.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#BOOLEAN">BOOLEAN</a></span></code>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#DATE">DATE</a></span></code>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#EMAIL">EMAIL</a></span></code>
+<div class="block">An email address field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#ENUM">ENUM</a></span></code>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#LANGUAGE">LANGUAGE</a></span></code>
+<div class="block">Field type which allows selection of languages.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#MULTILINE">MULTILINE</a></span></code>
+<div class="block">A text field that can span more than one line.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#NUMERIC">NUMERIC</a></span></code>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#QUERY_PARAMETER">QUERY_PARAMETER</a></span></code>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TERMINAL_COLOR_SCHEME">TERMINAL_COLOR_SCHEME</a></span></code>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TEXT">TEXT</a></span></code>
+<div class="block">A text field, accepting arbitrary values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TIME">TIME</a></span></code>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#TIMEZONE">TIMEZONE</a></span></code>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A username field.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html#Type--">Type</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="TEXT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TEXT</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TEXT</pre>
+<div class="block">A text field, accepting arbitrary values.</div>
+</li>
+</ul>
+<a name="EMAIL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMAIL</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> EMAIL</pre>
+<div class="block">An email address field. This field type generally behaves
+ identically to arbitrary text fields, but has semantic differences.</div>
+</li>
+</ul>
+<a name="USERNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USERNAME</pre>
+<div class="block">A username field. This field type generally behaves identically to
+ arbitrary text fields, but has semantic differences.</div>
+</li>
+</ul>
+<a name="PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PASSWORD</pre>
+<div class="block">A password field, whose value is sensitive and must be hidden.</div>
+</li>
+</ul>
+<a name="NUMERIC">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NUMERIC</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NUMERIC</pre>
+<div class="block">A numeric field, whose value must contain only digits.</div>
+</li>
+</ul>
+<a name="BOOLEAN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>BOOLEAN</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> BOOLEAN</pre>
+<div class="block">A boolean field, whose value is either blank or "true".</div>
+</li>
+</ul>
+<a name="ENUM">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ENUM</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ENUM</pre>
+<div class="block">An enumerated field, whose legal values are fully enumerated by a
+ provided, finite list.</div>
+</li>
+</ul>
+<a name="MULTILINE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MULTILINE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> MULTILINE</pre>
+<div class="block">A text field that can span more than one line.</div>
+</li>
+</ul>
+<a name="TIMEZONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TIMEZONE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIMEZONE</pre>
+<div class="block">A time zone field whose legal values are only valid time zone IDs,
+ as dictated by Java within TimeZone.getAvailableIDs().</div>
+</li>
+</ul>
+<a name="LANGUAGE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>LANGUAGE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> LANGUAGE</pre>
+<div class="block">Field type which allows selection of languages. The languages
+ displayed are the set of languages supported by the Guacamole web
+ application. Legal values are valid language IDs, as dictated by
+ the filenames of Guacamole's available translations.</div>
+</li>
+</ul>
+<a name="DATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DATE</pre>
+<div class="block">A date field whose legal values conform to the pattern "YYYY-MM-DD",
+ zero-padded.</div>
+</li>
+</ul>
+<a name="TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TIME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIME</pre>
+<div class="block">A time field whose legal values conform to the pattern "HH:MM:SS",
+ zero-padded, 24-hour.</div>
+</li>
+</ul>
+<a name="QUERY_PARAMETER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>QUERY_PARAMETER</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> QUERY_PARAMETER</pre>
+<div class="block">An HTTP query parameter which is expected to be embedded in the URL
+ given to a user.</div>
+</li>
+</ul>
+<a name="TERMINAL_COLOR_SCHEME">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TERMINAL_COLOR_SCHEME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TERMINAL_COLOR_SCHEME</pre>
+<div class="block">A color scheme accepted by the Guacamole server terminal emulator
+ and protocols which leverage it.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Type--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Type</h4>
+<pre>public&nbsp;Type()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.html
new file mode 100644
index 0000000..f4e0808
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Field.html
@@ -0,0 +1,473 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Field (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Field (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Field" class="title">Class Field</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Field</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a>, <a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a>, <a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a>, <a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a>, <a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a>, <a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a>, <a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a>, <a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a>, <a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a>, <a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a>, <a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a>, <a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a>, <a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Field</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form. Fields are generic
+ and typed dynamically through a type string, with the semantics of the field
+ defined by the type string. The behavior of each field type is defined
+ either through the web application itself (see FormService.js) or through
+ extensions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></span></code>
+<div class="block">All types of fields which are available by default.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field--">Field</a></span>()</code>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-">Field</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</code>
+<div class="block">Creates a new Field with the given name  and type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#Field-java.lang.String-java.lang.String-java.util.Collection-">Field</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type,
+     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the unique name associated with this field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a></span>()</code>
+<div class="block">Returns a mutable collection of field options.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this field.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the unique name associated with this field.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Sets the options available as possible values of this field.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</code>
+<div class="block">Sets the type of this field.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Field--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field()</pre>
+<div class="block">Creates a new Parameter with no associated name or type.</div>
+</li>
+</ul>
+<a name="Field-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</pre>
+<div class="block">Creates a new Field with the given name  and type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>type</code> - The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="Field-java.lang.String-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Field</h4>
+<pre>public&nbsp;Field(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new Field with the given name, type, and possible values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>type</code> - The type of this field.</dd>
+<dd><code>options</code> - A collection of all possible valid options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the unique name associated with this field.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique name associated with this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the unique name associated with this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to assign to this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of this field.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;type)</pre>
+<div class="block">Sets the type of this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getOptions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOptions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getOptions()</pre>
+<div class="block">Returns a mutable collection of field options. Changes to this
+ collection directly affect the available options.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of field options, or null if the field has no
+     options.</dd>
+</dl>
+</li>
+</ul>
+<a name="setOptions-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setOptions</h4>
+<pre>public&nbsp;void&nbsp;setOptions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Sets the options available as possible values of this field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>options</code> - The options to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Field.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html
new file mode 100644
index 0000000..9d24aad
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/FieldOption.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FieldOption (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FieldOption (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FieldOption.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class FieldOption" class="title">Class FieldOption</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.FieldOption</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">FieldOption</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#FieldOption--">FieldOption</a></span>()</code>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#FieldOption-java.lang.String-java.lang.String-">FieldOption</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</code>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#getTitle--">getTitle</a></span>()</code>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#getValue--">getValue</a></span>()</code>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#setTitle-java.lang.String-">setTitle</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</code>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/FieldOption.html#setValue-java.lang.String-">setValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FieldOption--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FieldOption</h4>
+<pre>public&nbsp;FieldOption()</pre>
+<div class="block">Creates a new FieldOption with no associated value or title.</div>
+</li>
+</ul>
+<a name="FieldOption-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FieldOption</h4>
+<pre>public&nbsp;FieldOption(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</pre>
+<div class="block">Creates a new FieldOption having the given value and title.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value to assign if this option is chosen.</dd>
+<dd><code>title</code> - The human-readable title to associate with this option.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getValue--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue()</pre>
+<div class="block">Returns the value that will be assigned if this option is chosen.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value that will be assigned if this option is chosen.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;void&nbsp;setValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value that will be assigned if this option is chosen.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value to assign if this option is chosen.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTitle--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTitle</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getTitle()</pre>
+<div class="block">Returns the human-readable title describing the effect of this option.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The human-readable title describing the effect of this option.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTitle-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTitle</h4>
+<pre>public&nbsp;void&nbsp;setTitle(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;title)</pre>
+<div class="block">Sets the human-readable title describing the effect of this option.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>title</code> - A human-readable title describing the effect of this option.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FieldOption.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Form.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Form.html
new file mode 100644
index 0000000..200aa82
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/Form.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class Form" class="title">Class Form</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.Form</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Form</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes logical set of fields.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#Form--">Form</a></span>()</code>
+<div class="block">Creates a new Form object with no associated fields.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name of this form.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/Form.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name of this form.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Form--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form()</pre>
+<div class="block">Creates a new Form object with no associated fields. The name is left
+ unset as null. If no form name is provided, this form must not be used
+ in the same context as another unnamed form.</div>
+</li>
+</ul>
+<a name="Form-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Form</h4>
+<pre>public&nbsp;Form(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - A name which uniquely identifies this form.</dd>
+<dd><code>fields</code> - The fields to provided within the new Form.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFields--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFields</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;getFields()</pre>
+<div class="block">Returns a mutable collection of the fields associated with this form.
+ Changes to this collection affect the fields exposed to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of fields.</dd>
+</dl>
+</li>
+</ul>
+<a name="setFields-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setFields</h4>
+<pre>public&nbsp;void&nbsp;setFields(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Sets the collection of fields associated with this form.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The collection of fields to associate with this form.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name of this form. Form names must uniquely identify each
+ form.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of this form, or null if the form has no name.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name of this form. Form names must uniquely identify each form.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign to this form.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Form.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html
new file mode 100644
index 0000000..d25802a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/LanguageField.html
@@ -0,0 +1,334 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LanguageField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LanguageField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LanguageField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class LanguageField" class="title">Class LanguageField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.LanguageField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">LanguageField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a language field. The field may contain only valid language
+ identifiers as used by the Guacamole web application for its translations.
+ Language identifiers are defined by the filenames of the JSON files
+ containing the translation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/LanguageField.html#LanguageField-java.lang.String-">LanguageField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new LanguageField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/LanguageField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;language)</code>
+<div class="block">Parses the given string into a language ID string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LanguageField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LanguageField</h4>
+<pre>public&nbsp;LanguageField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new LanguageField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;language)</pre>
+<div class="block">Parses the given string into a language ID string. As any string may be
+ a valid language ID as long as it has a corresponding translation, the
+ only transformation currently performed by this function is to ensure
+ that a blank language string is parsed into null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>language</code> - The language string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the language corresponding to the given string, or null if
+     if the given language string was null or blank.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LanguageField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html
new file mode 100644
index 0000000..079064a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/MultilineField.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MultilineField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MultilineField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultilineField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class MultilineField" class="title">Class MultilineField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.MultilineField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">MultilineField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/MultilineField.html#MultilineField-java.lang.String-">MultilineField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new MultilineField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="MultilineField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MultilineField</h4>
+<pre>public&nbsp;MultilineField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new MultilineField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MultilineField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/NumericField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/NumericField.html
new file mode 100644
index 0000000..7819db7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/NumericField.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>NumericField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="NumericField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NumericField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class NumericField" class="title">Class NumericField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.NumericField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">NumericField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which may contain only integer values.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#NumericField-java.lang.String-">NumericField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new NumericField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#format-java.lang.Integer-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;i)</code>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/NumericField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="NumericField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>NumericField</h4>
+<pre>public&nbsp;NumericField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new NumericField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="format-java.lang.Integer-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;i)</pre>
+<div class="block">Formats the given integer in the format required by a numeric field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>i</code> - The integer to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A string representation of the given integer, or null if the given
+     integer was null.</dd>
+</dl>
+</li>
+</ul>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)
+                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</a></pre>
+<div class="block">Parses the given string as an integer, where the given string is in the
+ format required by a numeric field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>str</code> - The string to parse as an integer, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The integer representation of the given string, or null if the given
+     string was null.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NumberFormatException.html?is-external=true" title="class or interface in java.lang">NumberFormatException</a></code> - If the given string is not in a parseable format.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/NumericField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html
new file mode 100644
index 0000000..3deb9cb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/PasswordField.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PasswordField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PasswordField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PasswordField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class PasswordField" class="title">Class PasswordField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.PasswordField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">PasswordField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/PasswordField.html#PasswordField-java.lang.String-">PasswordField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new PasswordField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="PasswordField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>PasswordField</h4>
+<pre>public&nbsp;PasswordField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new PasswordField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PasswordField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html
new file mode 100644
index 0000000..596e62e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TerminalColorSchemeField.html
@@ -0,0 +1,286 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TerminalColorSchemeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TerminalColorSchemeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TerminalColorSchemeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TerminalColorSchemeField" class="title">Class TerminalColorSchemeField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TerminalColorSchemeField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TerminalColorSchemeField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a terminal color scheme field. The field may contain only valid
+ terminal color schemes as used by the Guacamole server terminal emulator
+ and protocols which leverage it (SSH, telnet, Kubernetes).</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html#TerminalColorSchemeField-java.lang.String-">TerminalColorSchemeField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TerminalColorSchemeField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TerminalColorSchemeField</h4>
+<pre>public&nbsp;TerminalColorSchemeField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TerminalColorSchemeField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TerminalColorSchemeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TextField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TextField.html
new file mode 100644
index 0000000..0b6fd2d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TextField.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TextField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TextField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TextField" class="title">Class TextField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TextField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TextField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a basic text field. The field may generally contain any data, but
+ may not contain multiple lines.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#TextField-java.lang.String-">TextField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TextField with the given name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#TextField-java.lang.String-java.util.Collection-">TextField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</code>
+<div class="block">Creates a new TextField with the given name and possible values.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TextField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</code>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TextField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TextField</h4>
+<pre>public&nbsp;TextField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TextField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+<a name="TextField-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TextField</h4>
+<pre>public&nbsp;TextField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;options)</pre>
+<div class="block">Creates a new TextField with the given name and possible values. As a
+ text field may contain any data by definition, any provided options are
+ simply known-good values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+<dd><code>options</code> - A set of known legal options for this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;str)</pre>
+<div class="block">Parses the given string, interpreting empty strings as equivalent to
+ null. For all other cases, the given string is returned verbatim.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>str</code> - The string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The given string, or null if the given string was null or empty.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TextField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeField.html
new file mode 100644
index 0000000..eb5a6f0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeField.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TimeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TimeField" class="title">Class TimeField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TimeField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TimeField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a time field. The field may contain only time values which
+ conform to a standard pattern, defined by TimeField.FORMAT.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#FORMAT">FORMAT</a></span></code>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#TimeField-java.lang.String-">TimeField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TimeField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#format-java.util.Date-">format</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;time)</code>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeString)</code>
+<div class="block">Parses the given string into a corresponding time.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FORMAT">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FORMAT</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FORMAT</pre>
+<div class="block">The time format used by time fields, compatible with SimpleDateFormat.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.form.TimeField.FORMAT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeField</h4>
+<pre>public&nbsp;TimeField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TimeField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeString)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></pre>
+<div class="block">Parses the given string into a corresponding time. The string must
+ follow the standard format used by time fields, as defined by
+ FORMAT and as would be produced by format().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeString</code> - The time string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The time corresponding to the given time string, or null if the
+     provided time string was null or blank.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/text/ParseException.html?is-external=true" title="class or interface in java.text">ParseException</a></code> - If the given time string does not conform to the standard format
+     used by time fields.</dd>
+</dl>
+</li>
+</ul>
+<a name="format-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>format</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;format(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;time)</pre>
+<div class="block">Converts the given time into a string which follows the format used by
+ time fields.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>time</code> - The time value to format, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The formatted time, or null if the provided time was null.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html
new file mode 100644
index 0000000..0a5153c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/TimeZoneField.html
@@ -0,0 +1,332 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TimeZoneField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TimeZoneField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class TimeZoneField" class="title">Class TimeZoneField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.TimeZoneField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TimeZoneField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a time zone field. The field may contain only valid time zone
+ identifiers, as defined by the IANA time zone database. Such identifiers are
+ also valid Java time zone IDs as dictated by TimeZone.getAvailableIDs().</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html#TimeZoneField-java.lang.String-">TimeZoneField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html#parse-java.lang.String-">parse</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeZone)</code>
+<div class="block">Parses the given string into a time zone ID string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TimeZoneField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TimeZoneField</h4>
+<pre>public&nbsp;TimeZoneField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new TimeZoneField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parse-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parse</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parse(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;timeZone)</pre>
+<div class="block">Parses the given string into a time zone ID string. As these strings are
+ equivalent, the only transformation currently performed by this function
+ is to ensure that a blank time zone string is parsed into null.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>timeZone</code> - The time zone string to parse, which may be null.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ID of the time zone corresponding to the given string, or null
+     if the given time zone string was null or blank.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TimeZoneField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html
new file mode 100644
index 0000000..ba6f180
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/UsernameField.html
@@ -0,0 +1,285 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UsernameField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UsernameField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UsernameField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.form</div>
+<h2 title="Class UsernameField" class="title">Class UsernameField</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">org.apache.guacamole.form.Field</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.form.UsernameField</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">UsernameField</span>
+extends <a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></pre>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/form/UsernameField.html#UsernameField-java.lang.String-">UsernameField</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new UsernameField with the given name.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.form.Field">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></h3>
+<code><a href="../../../../org/apache/guacamole/form/Field.html#getName--">getName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getOptions--">getOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#getType--">getType</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setName-java.lang.String-">setName</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setOptions-java.util.Collection-">setOptions</a>, <a href="../../../../org/apache/guacamole/form/Field.html#setType-java.lang.String-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="UsernameField-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UsernameField</h4>
+<pre>public&nbsp;UsernameField(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new UsernameField with the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name to associate with this field.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UsernameField.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.classes.inherited.from.class.org.apache.guacamole.form.Field">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.form.Field">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html
new file mode 100644
index 0000000..b710c99
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/BooleanField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.BooleanField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.BooleanField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.BooleanField" class="title">Uses of Class<br>org.apache.guacamole.form.BooleanField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.BooleanField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/BooleanField.html" target="_top">Frames</a></li>
+<li><a href="BooleanField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html
new file mode 100644
index 0000000..5150e73
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/DateField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.DateField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.DateField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.DateField" class="title">Uses of Class<br>org.apache.guacamole.form.DateField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.DateField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/DateField.html" target="_top">Frames</a></li>
+<li><a href="DateField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html
new file mode 100644
index 0000000..4233c36
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EmailField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.EmailField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.EmailField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.EmailField" class="title">Uses of Class<br>org.apache.guacamole.form.EmailField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.EmailField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EmailField.html" target="_top">Frames</a></li>
+<li><a href="EmailField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html
new file mode 100644
index 0000000..5e79880
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/EnumField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.EnumField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.EnumField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.EnumField" class="title">Uses of Class<br>org.apache.guacamole.form.EnumField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.EnumField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/EnumField.html" target="_top">Frames</a></li>
+<li><a href="EnumField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html
new file mode 100644
index 0000000..e0c112f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.Type.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Field.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Field.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Field.Type" class="title">Uses of Class<br>org.apache.guacamole.form.Field.Type</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.Field.Type</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.Type.html" target="_top">Frames</a></li>
+<li><a href="Field.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html
new file mode 100644
index 0000000..c28216e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Field.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Field (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Field (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Field" class="title">Uses of Class<br>org.apache.guacamole.form.Field</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></span></code>
+<div class="block">Represents a field with strictly one possible value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></span></code>
+<div class="block">Represents a date field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></span></code>
+<div class="block">Represents a text field which may contain an email address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></span></code>
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></span></code>
+<div class="block">Represents a language field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></span></code>
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></span></code>
+<div class="block">Represents a field which may contain only integer values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></span></code>
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></span></code>
+<div class="block">Represents a terminal color scheme field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></span></code>
+<div class="block">Represents a basic text field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></span></code>
+<div class="block">Represents a time field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></span></code>
+<div class="block">Represents a time zone field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></span></code>
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns a mutable collection of the fields associated with this form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">Form.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#setFields-java.util.Collection-">setFields</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Sets the collection of fields associated with this form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/form/Form.html#Form-java.lang.String-java.util.Collection-">Form</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new Form object having the given name and containing the given
+ fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> declared as <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with parameters of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserCredentials.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue</a></span>(<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the given field.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Field.html" target="_top">Frames</a></li>
+<li><a href="Field.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html
new file mode 100644
index 0000000..4074c33
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/FieldOption.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.FieldOption (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.FieldOption (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.FieldOption" class="title">Uses of Class<br>org.apache.guacamole.form.FieldOption</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.FieldOption</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/FieldOption.html" target="_top">Frames</a></li>
+<li><a href="FieldOption.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html
new file mode 100644
index 0000000..af0a59c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/Form.html
@@ -0,0 +1,341 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.Form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.Form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.Form" class="title">Uses of Class<br>org.apache.guacamole.form.Form</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocols">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a> in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocols">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a> in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ProtocolInfo.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> with type arguments of type <a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/Form.html" target="_top">Frames</a></li>
+<li><a href="Form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html
new file mode 100644
index 0000000..b2bcf2a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/LanguageField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.LanguageField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.LanguageField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.LanguageField" class="title">Uses of Class<br>org.apache.guacamole.form.LanguageField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.LanguageField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/LanguageField.html" target="_top">Frames</a></li>
+<li><a href="LanguageField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html
new file mode 100644
index 0000000..275d34b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/MultilineField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.MultilineField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.MultilineField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.MultilineField" class="title">Uses of Class<br>org.apache.guacamole.form.MultilineField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.MultilineField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/MultilineField.html" target="_top">Frames</a></li>
+<li><a href="MultilineField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html
new file mode 100644
index 0000000..b54cfea
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/NumericField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.NumericField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.NumericField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.NumericField" class="title">Uses of Class<br>org.apache.guacamole.form.NumericField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.NumericField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/NumericField.html" target="_top">Frames</a></li>
+<li><a href="NumericField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html
new file mode 100644
index 0000000..c29fb20
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/PasswordField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.PasswordField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.PasswordField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.PasswordField" class="title">Uses of Class<br>org.apache.guacamole.form.PasswordField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.PasswordField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/PasswordField.html" target="_top">Frames</a></li>
+<li><a href="PasswordField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html
new file mode 100644
index 0000000..12a857b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TerminalColorSchemeField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TerminalColorSchemeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TerminalColorSchemeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TerminalColorSchemeField" class="title">Uses of Class<br>org.apache.guacamole.form.TerminalColorSchemeField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TerminalColorSchemeField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TerminalColorSchemeField.html" target="_top">Frames</a></li>
+<li><a href="TerminalColorSchemeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html
new file mode 100644
index 0000000..d5c157a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TextField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TextField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TextField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TextField" class="title">Uses of Class<br>org.apache.guacamole.form.TextField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TextField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TextField.html" target="_top">Frames</a></li>
+<li><a href="TextField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html
new file mode 100644
index 0000000..b51b1e9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TimeField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TimeField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TimeField" class="title">Uses of Class<br>org.apache.guacamole.form.TimeField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TimeField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeField.html" target="_top">Frames</a></li>
+<li><a href="TimeField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html
new file mode 100644
index 0000000..5f4747b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/TimeZoneField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.TimeZoneField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.TimeZoneField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.TimeZoneField" class="title">Uses of Class<br>org.apache.guacamole.form.TimeZoneField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.TimeZoneField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/TimeZoneField.html" target="_top">Frames</a></li>
+<li><a href="TimeZoneField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html
new file mode 100644
index 0000000..31c885a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/class-use/UsernameField.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.form.UsernameField (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.form.UsernameField (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.form.UsernameField" class="title">Uses of Class<br>org.apache.guacamole.form.UsernameField</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.form.UsernameField</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/form/class-use/UsernameField.html" target="_top">Frames</a></li>
+<li><a href="UsernameField.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-frame.html
new file mode 100644
index 0000000..0c8803d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-frame.html
@@ -0,0 +1,47 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/form/package-summary.html" target="classFrame">org.apache.guacamole.form</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="BooleanField.html" title="class in org.apache.guacamole.form" target="classFrame">BooleanField</a></li>
+<li><a href="DateField.html" title="class in org.apache.guacamole.form" target="classFrame">DateField</a></li>
+<li><a href="EmailField.html" title="class in org.apache.guacamole.form" target="classFrame">EmailField</a></li>
+<li><a href="EnumField.html" title="class in org.apache.guacamole.form" target="classFrame">EnumField</a></li>
+<li><a href="Field.html" title="class in org.apache.guacamole.form" target="classFrame">Field</a></li>
+<li><a href="Field.Type.html" title="class in org.apache.guacamole.form" target="classFrame">Field.Type</a></li>
+<li><a href="FieldOption.html" title="class in org.apache.guacamole.form" target="classFrame">FieldOption</a></li>
+<li><a href="Form.html" title="class in org.apache.guacamole.form" target="classFrame">Form</a></li>
+<li><a href="LanguageField.html" title="class in org.apache.guacamole.form" target="classFrame">LanguageField</a></li>
+<li><a href="MultilineField.html" title="class in org.apache.guacamole.form" target="classFrame">MultilineField</a></li>
+<li><a href="NumericField.html" title="class in org.apache.guacamole.form" target="classFrame">NumericField</a></li>
+<li><a href="PasswordField.html" title="class in org.apache.guacamole.form" target="classFrame">PasswordField</a></li>
+<li><a href="TerminalColorSchemeField.html" title="class in org.apache.guacamole.form" target="classFrame">TerminalColorSchemeField</a></li>
+<li><a href="TextField.html" title="class in org.apache.guacamole.form" target="classFrame">TextField</a></li>
+<li><a href="TimeField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeField</a></li>
+<li><a href="TimeZoneField.html" title="class in org.apache.guacamole.form" target="classFrame">TimeZoneField</a></li>
+<li><a href="UsernameField.html" title="class in org.apache.guacamole.form" target="classFrame">UsernameField</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-summary.html
new file mode 100644
index 0000000..e3849a6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-summary.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.form</h1>
+<div class="docSummary">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form">BooleanField</a></td>
+<td class="colLast">
+<div class="block">Represents a field with strictly one possible value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form">DateField</a></td>
+<td class="colLast">
+<div class="block">Represents a date field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form">EmailField</a></td>
+<td class="colLast">
+<div class="block">Represents a text field which may contain an email address.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form">EnumField</a></td>
+<td class="colLast">
+<div class="block">Represents an arbitrary field with a finite, enumerated set of possible
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></td>
+<td class="colLast">
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form">Field.Type</a></td>
+<td class="colLast">
+<div class="block">All types of fields which are available by default.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form">FieldOption</a></td>
+<td class="colLast">
+<div class="block">Describes an available legal value for an enumerated field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a></td>
+<td class="colLast">
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form">LanguageField</a></td>
+<td class="colLast">
+<div class="block">Represents a language field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form">MultilineField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which can contain multiple lines of text.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form">NumericField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which may contain only integer values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form">PasswordField</a></td>
+<td class="colLast">
+<div class="block">Represents a field which contains sensitive text information related to
+ authenticating a user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form">TerminalColorSchemeField</a></td>
+<td class="colLast">
+<div class="block">Represents a terminal color scheme field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form">TextField</a></td>
+<td class="colLast">
+<div class="block">Represents a basic text field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form">TimeField</a></td>
+<td class="colLast">
+<div class="block">Represents a time field.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form">TimeZoneField</a></td>
+<td class="colLast">
+<div class="block">Represents a time zone field.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form">UsernameField</a></td>
+<td class="colLast">
+<div class="block">Represents a text field which will contain the uniquely-identifying name of
+ a user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.form Description">Package org.apache.guacamole.form Description</h2>
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-tree.html
new file mode 100644
index 0000000..7786fd3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-tree.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.form Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.form Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.form</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/environment/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/language/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-use.html
new file mode 100644
index 0000000..ce2938e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/form/package-use.html
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.form" class="title">Uses of Package<br>org.apache.guacamole.form</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.form">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.protocols">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.form">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Field.html#org.apache.guacamole.form">Field</a>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Form.html#org.apache.guacamole.net.auth">Form</a>
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Field.html#org.apache.guacamole.net.auth.credentials">Field</a>
+<div class="block">Represents an arbitrary field, such as an HTTP parameter, the parameter of a
+ remote desktop protocol, or an input field within a form.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.protocols">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a> used by <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/form/class-use/Form.html#org.apache.guacamole.protocols">Form</a>
+<div class="block">Information which describes logical set of fields.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/form/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/Translatable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/Translatable.html
new file mode 100644
index 0000000..8f8d134
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/Translatable.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Translatable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Translatable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Translatable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Interface Translatable" class="title">Interface Translatable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Translatable</span></pre>
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTranslatableMessage--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTranslatableMessage</h4>
+<pre><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a>&nbsp;getTranslatableMessage()</pre>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A message which can be translated using a translation service.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Translatable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html
new file mode 100644
index 0000000..2e6c3d0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/TranslatableMessage.html
@@ -0,0 +1,355 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TranslatableMessage (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TranslatableMessage (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.language</div>
+<h2 title="Class TranslatableMessage" class="title">Class TranslatableMessage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.language.TranslatableMessage</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TranslatableMessage</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-">TranslatableMessage</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</code>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#TranslatableMessage-java.lang.String-java.lang.Object-">TranslatableMessage</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;variables)</code>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#getKey--">getKey</a></span>()</code>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html#getVariables--">getVariables</a></span>()</code>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TranslatableMessage-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TranslatableMessage</h4>
+<pre>public&nbsp;TranslatableMessage(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key)</pre>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key, without any associated variables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The translation key to associate with the TranslatableMessage.</dd>
+</dl>
+</li>
+</ul>
+<a name="TranslatableMessage-java.lang.String-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TranslatableMessage</h4>
+<pre>public&nbsp;TranslatableMessage(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
+                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;variables)</pre>
+<div class="block">Creates a new TranslatableMessage associated with the given translation
+ key and associated variables.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>key</code> - The translation key to associate with the TranslatableMessage.</dd>
+<dd><code>variables</code> - An arbitrary object whose properties should be substituted for the
+     corresponding placeholders within the string associated with the
+     given translation key.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getKey--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getKey</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getKey()</pre>
+<div class="block">Returns the arbitrary key which can be used to look up the message to be
+ displayed in the user's native language.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The arbitrary key associated with the human-readable message.</dd>
+</dl>
+</li>
+</ul>
+<a name="getVariables--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getVariables</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getVariables()</pre>
+<div class="block">Returns an arbitrary object whose properties should be substituted for
+ the corresponding placeholders within the string associated with the key.
+ If not applicable, null is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary object whose properties should be substituted for the
+     corresponding placeholders within the string associated with the key,
+     or null if not applicable.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TranslatableMessage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html
new file mode 100644
index 0000000..c6d89df
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/Translatable.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.language.Translatable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.language.Translatable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.language.Translatable" class="title">Uses of Interface<br>org.apache.guacamole.language.Translatable</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.language.Translatable</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/Translatable.html" target="_top">Frames</a></li>
+<li><a href="Translatable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html
new file mode 100644
index 0000000..240527c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/class-use/TranslatableMessage.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.language.TranslatableMessage (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.language.TranslatableMessage (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.language.TranslatableMessage" class="title">Uses of Class<br>org.apache.guacamole.language.TranslatableMessage</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a> in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> that return <a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Translatable.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/language/Translatable.html#getTranslatableMessage--">getTranslatableMessage</a></span>()</code>
+<div class="block">Returns a message which can be translated using a translation service,
+ consisting of a translation key and optional set of substitution
+ variables.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/language/class-use/TranslatableMessage.html" target="_top">Frames</a></li>
+<li><a href="TranslatableMessage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-frame.html
new file mode 100644
index 0000000..bc1f6d2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/language/package-summary.html" target="classFrame">org.apache.guacamole.language</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="Translatable.html" title="interface in org.apache.guacamole.language" target="classFrame"><span class="interfaceName">Translatable</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="TranslatableMessage.html" title="class in org.apache.guacamole.language" target="classFrame">TranslatableMessage</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-summary.html
new file mode 100644
index 0000000..3b83875
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-summary.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.language (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.language</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language">Translatable</a></td>
+<td class="colLast">
+<div class="block">An object which is associated with a translatable message that can be passed
+ through an arbitrary translation service, producing a human-readable message
+ in the user's native language.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language">TranslatableMessage</a></td>
+<td class="colLast">
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-tree.html
new file mode 100644
index 0000000..bcf99a0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-tree.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.language Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.language Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.language</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.language.<a href="../../../../org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/form/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/net/auth/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-use.html
new file mode 100644
index 0000000..9639d86
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/language/package-use.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.language (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.language (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.language" class="title">Uses of Package<br>org.apache.guacamole.language</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.language">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.language">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a> used by <a href="../../../../org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/language/class-use/TranslatableMessage.html#org.apache.guacamole.language">TranslatableMessage</a>
+<div class="block">A message which can be translated using a translation service, providing a
+ translation key and optional set of values to be substituted into the
+ translation string associated with that key.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/language/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html
new file mode 100644
index 0000000..5cda7f4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractActiveConnection.html
@@ -0,0 +1,608 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractActiveConnection" class="title">Class AbstractActiveConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractActiveConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractActiveConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></pre>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#AbstractActiveConnection--">AbstractActiveConnection</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</code>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</code>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</code>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</code>
+<div class="block">Sets the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></span>(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActiveConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Shareable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractActiveConnection--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractActiveConnection</h4>
+<pre>public&nbsp;AbstractActiveConnection()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the identifier of the connection being actively used. Unlike the
+ other information stored in this object, the connection identifier must
+ be present and MAY NOT be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connnectionIdentifier</code> - The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the identifier of the sharing profile being actively used. If
+ the connection is being accessed directly, this will be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSharingProfileIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setSharingProfileIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileIdentifier</code> - The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the date and time the connection began.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setStartDate-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStartDate</h4>
+<pre>public&nbsp;void&nbsp;setStartDate(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the date and time the connection began.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>startDate</code> - The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known. If the hostname or IP address is not known, null
+ is returned.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHost-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteHost</h4>
+<pre>public&nbsp;void&nbsp;setRemoteHost(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHost</code> - The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>public&nbsp;void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">ActiveConnection</a></code></span></div>
+<div class="block">Returns the connected GuacamoleTunnel being used. This may be null if
+ access to the underlying tunnel is denied.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setTunnel</h4>
+<pre>public&nbsp;void&nbsp;setTunnel(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">ActiveConnection</a></code></span></div>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html
new file mode 100644
index 0000000..58de1ee
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html
@@ -0,0 +1,376 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractAuthenticatedUser" class="title">Class AbstractAuthenticatedUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractAuthenticatedUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractAuthenticatedUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></pre>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality. Username comparison is case-sensitive.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.AuthenticatedUser">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#AbstractAuthenticatedUser--">AbstractAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></span>()</code>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticatedUser">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractAuthenticatedUser</h4>
+<pre>public&nbsp;AbstractAuthenticatedUser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getEffectiveUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEffectiveUserGroups</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getEffectiveUserGroups()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">AuthenticatedUser</a></code></span></div>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user. The exact semantics of what user
+ groups apply are up to the implementation, and the user groups within
+ this set may be implied, derived dynamically, inherited through multiple
+ levels of group membership, etc.
+
+ Note that, as with user identifiers, user group identifiers form the
+ basis of identity which applies across authentication providers. It is
+ expected that any two user groups having the same identifier represent
+ the same group, even if defined by different authentication providers.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only set of the identifiers of all user groups which apply
+     to this authenticated user.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">AuthenticatedUser</a></code></span></div>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in. This function will be automatically
+ invoked when the user logs out, or when their session expires.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html
new file mode 100644
index 0000000..1646055
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html
@@ -0,0 +1,660 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractAuthenticationProvider" class="title">Class AbstractAuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractAuthenticationProvider</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractAuthenticationProvider</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></pre>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions. Implementations must provide their
+ own <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--"><code>AuthenticationProvider.getIdentifier()</code></a>, but otherwise need only override an implemented
+ function if they wish to actually implement the functionality defined for
+ that function by the AuthenticationProvider interface.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#AbstractAuthenticationProvider--">AbstractAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown</a></span>()</code>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractAuthenticationProvider</h4>
+<pre>public&nbsp;AbstractAuthenticationProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider. The REST resource returned must be properly
+ annotated with JSR-311 annotations, and may serve as the root resource
+ for any number of subresources. The returned resource is ultimately
+ exposed at ".../api/ext/IDENTIFIER/", where IDENTIFIER is the identifier
+ of this AuthenticationProvider.
+
+ REST resources returned by this function will be reachable by all users,
+ regardless of whether they have authenticated. REST resources which
+ must only be accessible by authenticated users should instead be returned
+ from UserContext.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources which are not specific to a user's session
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.
+
+ <p>This implementation performs no authentication whatsoever, ignoring
+ the provided <code>credentials</code> and simply returning <code>null</code>. Any
+ authentication attempt will thus fall through to other
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations, perhaps within other
+ installed extensions, with this <code>AuthenticationProvider</code> making no
+ claim regarding the user's identity nor whether the user should be
+ allowed or disallowed from accessing Guacamole. Implementations that wish
+ to authenticate users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;updateAuthenticatedUser(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser. Note that because
+ this function will be called for all future requests after initial
+ authentication, including tunnel requests, care must be taken to avoid
+ using functions of HttpServletRequest which invalidate the entire request
+ body, such as getParameter(). Doing otherwise may cause the
+ GuacamoleHTTPTunnelServlet to fail.
+
+ <p>This implementation simply returns the provided
+ <code>authenticatedUser</code> without modification. Implementations that
+ wish to update a user's <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> object with respect to
+ new <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><code>Credentials</code></a> received in requests which follow the initial,
+ successful authentication attempt should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated AuthenticatedUser representing the user authenticated by
+     the given credentials, if any, or null if the credentials are
+     invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the AuthenticatedUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.
+
+ <p>This implementation simply returns <code>null</code>, effectively allowing
+ authentication to continue but refusing to provide data for the given
+ user. Implementations that wish to veto the authentication results of
+ other <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations or provide data for
+ authenticated users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;updateUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                                     <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                     <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext. Note that because this function
+ will be called for all future requests after initial authentication,
+ including tunnel requests, care must be taken to avoid using functions
+ of HttpServletRequest which invalidate the entire request body, such as
+ getParameter(). Doing otherwise may cause the GuacamoleHTTPTunnelServlet
+ to fail.
+
+ <p>This implementation simply returns the provided <code>context</code>
+ without modification. Implementations that wish to update a user's
+ <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> object with respect to newly-updated
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> or <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><code>Credentials</code></a> (such as those received
+ in requests which follow the initial, successful authentication attempt)
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - The existing UserContext belonging to the user in question.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted. These are not
+     guaranteed to be the same as the credentials associated with the
+     AuthenticatedUser when they originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated UserContext describing the permissions, connection,
+     connection groups, etc. accessible or associated with the given
+     authenticated user, or null if this AuthenticationProvider refuses
+     to provide any such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                            <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                            <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via getUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.
+
+ <p>This implementation simply returns the provided <code>context</code>
+ without performing any decoration. Implementations that wish to augment
+ the functionality or data provided by other
+ <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - An existing UserContext generated by getUserContext() of a different
+     AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>redecorate</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;redecorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+                              <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                              <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                              <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via updateUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.
+
+ <p>This implementation simply invokes
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code>decorate(UserContext,AuthenticatedUser,Credentials)</code></a> with the
+ provided <code>context</code>, <code>authenticatedUser</code>, and
+ <code>credentials</code>. Implementations which override
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-"><code>decorate(UserContext,AuthenticatedUser,Credentials)</code></a> and which
+ need to update their existing decorated object following possible
+ updates to the <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> or <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticatedUser</code></a> (rather
+ than generate an entirely new decorated object) should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decorated</code> - The UserContext returned when decorate() was invoked on this
+     AuthenticationProvider for the UserContext which was just updated
+     via a call to updateUserContext().</dd>
+<dd><code>context</code> - An existing UserContext generated by updateUserContext() of a
+     different AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="shutdown--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre>public&nbsp;void&nbsp;shutdown()</pre>
+<div class="block">Frees all resources associated with this AuthenticationProvider. This
+ function will be automatically invoked when the Guacamole server is
+ shutting down.
+
+ <p>This implementation does nothing. Implementations that wish to perform
+ cleanup tasks when the <a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> is being unloaded
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html
new file mode 100644
index 0000000..ad3098f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnection.html
@@ -0,0 +1,500 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractConnection" class="title">Class AbstractConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></pre>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#AbstractConnection--">AbstractConnection</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;configuration)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connection">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractConnection--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractConnection</h4>
+<pre>public&nbsp;AbstractConnection()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">Connection</a></code></span></div>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">Connection</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">Connection</a></code></span></div>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;configuration)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>configuration</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">Connection</a></code></span></div>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html
new file mode 100644
index 0000000..3dc465c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractConnectionGroup.html
@@ -0,0 +1,479 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractConnectionGroup" class="title">Class AbstractConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></pre>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#AbstractConnectionGroup--">AbstractConnectionGroup</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractConnectionGroup</h4>
+<pre>public&nbsp;AbstractConnectionGroup()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">ConnectionGroup</a></code></span></div>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html
new file mode 100644
index 0000000..17c281a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractIdentifiable.html
@@ -0,0 +1,365 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractIdentifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractIdentifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractIdentifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractIdentifiable" class="title">Class AbstractIdentifiable</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractIdentifiable</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractIdentifiable</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></pre>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.
+ The identifier comparison is case-sensitive.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#AbstractIdentifiable--">AbstractIdentifiable</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractIdentifiable--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractIdentifiable</h4>
+<pre>public&nbsp;AbstractIdentifiable()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;other)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractIdentifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html
new file mode 100644
index 0000000..f20711d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractSharingProfile.html
@@ -0,0 +1,527 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractSharingProfile" class="title">Class AbstractSharingProfile</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractSharingProfile</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractSharingProfile</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></pre>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#AbstractSharingProfile--">AbstractSharingProfile</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryConnectionIdentifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractSharingProfile--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractSharingProfile</h4>
+<pre>public&nbsp;AbstractSharingProfile()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">SharingProfile</a></code></span></div>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">SharingProfile</a></code></span></div>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;primaryConnectionIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>primaryConnectionIdentifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">SharingProfile</a></code></span></div>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">SharingProfile</a></code></span></div>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html
new file mode 100644
index 0000000..fa395ee
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUser.html
@@ -0,0 +1,773 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUser" class="title">Class AbstractUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></pre>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#AbstractUser--">AbstractUser</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUser</h4>
+<pre>public&nbsp;AbstractUser()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">User</a></code></span></div>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">User</a></code></span></div>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.
+
+ <p>This implementation simply an immutable, empty map. Implementations
+ that wish to expose custom attributes should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.
+
+ <p>This implementation simply ignores all attributes given.
+ Implementations that wish to support modification of custom attributes
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose the date and time that a user was last active should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first).
+
+ <p>This implementation simply an immutable, empty list. Implementations
+ that wish to expose user login history should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history of this user, or if
+     permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()</pre>
+<div class="block">Returns all sharing profile permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.
+
+ <p>This implementation simply returns <code>this</code>. Implementations that
+ wish to expose permissions which apply indirectly (such as through
+ group inheritance) should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html
new file mode 100644
index 0000000..2e1ef46
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserContext.html
@@ -0,0 +1,865 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUserContext" class="title">Class AbstractUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUserContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">AbstractUserContext</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></pre>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions. Implementations must provide their own <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--"><code>UserContext.self()</code></a> and
+ <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--"><code>UserContext.getAuthenticationProvider()</code></a>, but otherwise need only override an
+ implemented function if they wish to actually implement the functionality
+ defined for that function by the UserContext interface.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></span></code>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a> is not overridden.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#AbstractUserContext--">AbstractUserContext</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.UserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="DEFAULT_ROOT_CONNECTION_GROUP">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DEFAULT_ROOT_CONNECTION_GROUP</h4>
+<pre>protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DEFAULT_ROOT_CONNECTION_GROUP</pre>
+<div class="block">The unique identifier that will be used for the root connection group if
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a> is not overridden.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.guacamole.net.auth.AbstractUserContext.DEFAULT_ROOT_CONNECTION_GROUP">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUserContext--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUserContext</h4>
+<pre>public&nbsp;AbstractUserContext()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources specific to a user's session should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.
+
+ <p>This implementation returns a <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> which contains only
+ the <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><code>User</code></a> returned by <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--"><code>UserContext.self()</code></a> (the current user
+ associated with this <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a>. Implementations that wish to
+ expose the existence of other users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose user groups should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose connections should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation returns a <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> which contains only
+ the root connection group returned by <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--"><code>getRootConnectionGroup()</code></a>.
+ Implementations that wish to provide a structured connection hierarchy
+ should override this function. If only a flat list of connections will
+ be used, only <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a> needs to be overridden.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose the status of active connections
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to provide screen sharing functionality
+ through the use of sharing profiles should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>.
+ Implementations that wish to expose connection usage history should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.
+
+ <p>This implementation simply returns an empty <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>.
+ Implementations that wish to expose user login/logout history should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.
+
+ <p>This implementation returns a new <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionGroup</code></a> with the
+ identifier defined by <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP"><code>DEFAULT_ROOT_CONNECTION_GROUP</code></a> and
+ containing all connections exposed by the <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a> returned by
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a>. Implementations that wish to provide
+ a structured connection hierarchy should override this function. If only
+ a flat list of connections will be used, only
+ <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--"><code>getConnectionDirectory()</code></a> needs to be overridden.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom user attributes as fields
+ within user edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom user group attributes as
+ fields within user group edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom connection attributes as
+ fields within connection edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom connection group attributes
+ as fields within connection group edit screens should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.
+
+ <p>This implementation simply returns an empty <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a>.
+ Implementations that wish to expose custom sharing profile attributes as
+ fields within sharing profile edit screens should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.
+
+ <p>This implementation does nothing. Implementations that wish to perform
+ cleanup tasks when the user associated with this <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> is
+ being logged out should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html
new file mode 100644
index 0000000..20efaa8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AbstractUserGroup.html
@@ -0,0 +1,681 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AbstractUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AbstractUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class AbstractUserGroup" class="title">Class AbstractUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.AbstractUserGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AbstractUserGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></pre>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#AbstractUserGroup--">AbstractUserGroup</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AbstractUserGroup--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AbstractUserGroup</h4>
+<pre>public&nbsp;AbstractUserGroup()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.
+
+ <p>This implementation simply an immutable, empty map. Implementations
+ that wish to expose custom attributes should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.
+
+ <p>This implementation simply ignores all attributes given.
+ Implementations that wish to support modification of custom attributes
+ should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()</pre>
+<div class="block">Returns all sharing profile permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.
+
+ <p>This implementation simply an immutable, empty related object set.
+ Implementations that wish to expose group membership should override
+ this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AbstractUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html
new file mode 100644
index 0000000..ba769da
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActiveConnection.html
@@ -0,0 +1,600 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":18,"i1":18,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":18,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActiveConnection" class="title">Interface ActiveConnection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActiveConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</pre>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>default int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who is using this connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>default boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#isConnectable--">isConnectable</a></span>()</code>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setConnectionIdentifier-java.lang.String-">setConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</code>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setRemoteHost-java.lang.String-">setRemoteHost</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</code>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setSharingProfileIdentifier-java.lang.String-">setSharingProfileIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</code>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setStartDate-java.util.Date-">setStartDate</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</code>
+<div class="block">Sets the date and time the connection began.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">setTunnel</a></span>(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the name of the user who is using this connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Shareable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the connection being actively used. Unlike the
+ other information stored in this object, the connection identifier must
+ be present and MAY NOT be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionIdentifier</h4>
+<pre>void&nbsp;setConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;connnectionIdentifier)</pre>
+<div class="block">Sets the identifier of the connection being actively used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connnectionIdentifier</code> - The identifier of the connection being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block">Returns the identifier of the sharing profile being actively used. If
+ the connection is being accessed directly, this will be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSharingProfileIdentifier</h4>
+<pre>void&nbsp;setSharingProfileIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;sharingProfileIdentifier)</pre>
+<div class="block">Sets the identifier of the sharing profile being actively used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileIdentifier</code> - The identifier of the sharing profile being actively used.</dd>
+</dl>
+</li>
+</ul>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block">Returns the date and time the connection began.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setStartDate-java.util.Date-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setStartDate</h4>
+<pre>void&nbsp;setStartDate(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;startDate)</pre>
+<div class="block">Sets the date and time the connection began.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>startDate</code> - The date and time the connection began, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block">Returns the hostname or IP address of the remote host that initiated the
+ connection, if known. If the hostname or IP address is not known, null
+ is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHost-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteHost</h4>
+<pre>void&nbsp;setRemoteHost(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHost)</pre>
+<div class="block">Sets the hostname or IP address of the remote host that initiated the
+ connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHost</code> - The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Sets the name of the user who is using this connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The name of the user who is using this connection, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block">Returns the connected GuacamoleTunnel being used. This may be null if
+ access to the underlying tunnel is denied.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTunnel-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTunnel</h4>
+<pre>void&nbsp;setTunnel(org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Sets the connected GuacamoleTunnel being used.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tunnel</code> - The connected GuacamoleTunnel, or null if permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="isConnectable--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>isConnectable</h4>
+<pre>default&nbsp;boolean&nbsp;isConnectable()</pre>
+<div class="block">Returns whether this ActiveConnection may be joined through a call to
+ <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>
+ by the user that retrieved this ActiveConnection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the user that retrieved this ActiveConnection may join the
+     ActiveConnection through a call to
+     <a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>default&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>default&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActiveConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html
new file mode 100644
index 0000000..fe4044b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecord.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActivityRecord" class="title">Interface ActivityRecord</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActivityRecord</span></pre>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate</a></span>()</code>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost</a></span>()</code>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate</a></span>()</code>
+<div class="block">Returns the date and time the activity began.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive</a></span>()</code>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getStartDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStartDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getStartDate()</pre>
+<div class="block">Returns the date and time the activity began.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the activity began.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEndDate--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEndDate</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getEndDate()</pre>
+<div class="block">Returns the date and time the activity ended, if applicable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time the activity ended, or null if the activity is
+     still ongoing or if the end time is unknown.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHost--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHost</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHost()</pre>
+<div class="block">Returns the hostname or IP address of the remote host that performed the
+ activity associated with this record, if known. If the hostname or IP
+ address is not known, null is returned.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or IP address of the remote host, or null if this
+     information is not available.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the name of the user who performed or is performing the activity
+ at the times given by this record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the user who performed or is performing the associated
+     activity.</dd>
+</dl>
+</li>
+</ul>
+<a name="isActive--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>isActive</h4>
+<pre>boolean&nbsp;isActive()</pre>
+<div class="block">Returns whether the activity associated with this record is still
+ ongoing.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the activity associated with this record is still ongoing,
+     false otherwise.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html
new file mode 100644
index 0000000..4e810a6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html
@@ -0,0 +1,352 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.SortableProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum ActivityRecordSet.SortableProperty" class="title">Enum ActivityRecordSet.SortableProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ActivityRecordSet.SortableProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&gt;</pre>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#START_DATE">START_DATE</a></span></code>
+<div class="block">The date and time when the activity associated with the record
+ began.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="START_DATE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>START_DATE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> START_DATE</pre>
+<div class="block">The date and time when the activity associated with the record
+ began.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ActivityRecordSet.SortableProperty c : ActivityRecordSet.SortableProperty.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.SortableProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html
new file mode 100644
index 0000000..084ac6b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ActivityRecordSet.html
@@ -0,0 +1,381 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ActivityRecordSet" class="title">Interface ActivityRecordSet&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RecordType</code> - The type of ActivityRecord contained within this set.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ActivityRecordSet&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></pre>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span></code>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;asCollection()
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;limit(int&nbsp;limit)
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;&nbsp;sort(<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                   boolean&nbsp;desc)
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html
new file mode 100644
index 0000000..74c2a2c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Attributes.html
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Attributes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Attributes (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Attributes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Attributes" class="title">Interface Attributes</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Attributes</span></pre>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Attributes.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html
new file mode 100644
index 0000000..e105bcf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticatedUser.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface AuthenticatedUser" class="title">Interface AuthenticatedUser</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">AuthenticatedUser</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></pre>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#ANONYMOUS_IDENTIFIER">ANONYMOUS_IDENTIFIER</a></span></code>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getEffectiveUserGroups--">getEffectiveUserGroups</a></span>()</code>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="ANONYMOUS_IDENTIFIER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ANONYMOUS_IDENTIFIER</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ANONYMOUS_IDENTIFIER</pre>
+<div class="block">The identifier reserved for representing a user that has authenticated
+ anonymously.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.guacamole.net.auth.AuthenticatedUser.ANONYMOUS_IDENTIFIER">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that authenticated this user.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The credentials provided by the user when they authenticated.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectiveUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getEffectiveUserGroups</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getEffectiveUserGroups()</pre>
+<div class="block">Returns a read-only set of the identifiers of all user groups which
+ apply to this authenticated user. The exact semantics of what user
+ groups apply are up to the implementation, and the user groups within
+ this set may be implied, derived dynamically, inherited through multiple
+ levels of group membership, etc.
+
+ Note that, as with user identifiers, user group identifiers form the
+ basis of identity which applies across authentication providers. It is
+ expected that any two user groups having the same identifier represent
+ the same group, even if defined by different authentication providers.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only set of the identifiers of all user groups which apply
+     to this authenticated user.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this authenticated user and their associated token such that
+ they are no longer logged in. This function will be automatically
+ invoked when the user logs out, or when their session expires.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticatedUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html
new file mode 100644
index 0000000..8b190f1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/AuthenticationProvider.html
@@ -0,0 +1,551 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface AuthenticationProvider" class="title">Interface AuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">AuthenticationProvider</span></pre>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users. Access to such data is limited according to the
+ AuthenticationProvider implementation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#shutdown--">shutdown</a></span>()</code>
+<div class="block">Frees all resources associated with this AuthenticationProvider.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block">Returns the identifier which uniquely and consistently identifies this
+ AuthenticationProvider implementation. This identifier may not be null
+ and must be unique across all AuthenticationProviders loaded by the
+ Guacamole web application.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this AuthenticationProvider, which
+     may not be null.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this
+ AuthenticationProvider. The REST resource returned must be properly
+ annotated with JSR-311 annotations, and may serve as the root resource
+ for any number of subresources. The returned resource is ultimately
+ exposed at ".../api/ext/IDENTIFIER/", where IDENTIFIER is the identifier
+ of this AuthenticationProvider.
+
+ REST resources returned by this function will be reachable by all users,
+ regardless of whether they have authenticated. REST resources which
+ must only be accessible by authenticated users should instead be returned
+ from UserContext.getResource().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAuthenticatedUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;updateAuthenticatedUser(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                                          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser. Note that because
+ this function will be called for all future requests after initial
+ authentication, including tunnel requests, care must be taken to avoid
+ using functions of HttpServletRequest which invalidate the entire request
+ body, such as getParameter(). Doing otherwise may cause the
+ GuacamoleHTTPTunnelServlet to fail.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated AuthenticatedUser representing the user authenticated by
+     the given credentials, if any, or null if the credentials are
+     invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the AuthenticatedUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateUserContext</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;updateUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                              <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                              <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext. Note that because this function
+ will be called for all future requests after initial authentication,
+ including tunnel requests, care must be taken to avoid using functions
+ of HttpServletRequest which invalidate the entire request body, such as
+ getParameter(). Doing otherwise may cause the GuacamoleHTTPTunnelServlet
+ to fail.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - The existing UserContext belonging to the user in question.</dd>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted. These are not
+     guaranteed to be the same as the credentials associated with the
+     AuthenticatedUser when they originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An updated UserContext describing the permissions, connection,
+     connection groups, etc. accessible or associated with the given
+     authenticated user, or null if this AuthenticationProvider refuses
+     to provide any such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                     <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                     <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via getUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>context</code> - An existing UserContext generated by getUserContext() of a different
+     AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>redecorate</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;redecorate(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+                       <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                       <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary. Each UserContext created via updateUserContext()
+ will be passed to the decorate() functions of all other
+ AuthenticationProviders, allowing those AuthenticationProviders to
+ augment (or perhaps even limit) the functionality or data provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>decorated</code> - The UserContext returned when decorate() was invoked on this
+     AuthenticationProvider for the UserContext which was just updated
+     via a call to updateUserContext().</dd>
+<dd><code>context</code> - An existing UserContext generated by updateUserContext() of a
+     different AuthenticationProvider.</dd>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser object representing the user associated with
+     the given UserContext.</dd>
+<dd><code>credentials</code> - The credentials which were most recently submitted for the given
+     AuthenticatedUser. These are not guaranteed to be the same as the
+     credentials associated with the AuthenticatedUser object, which are
+     the credentials provided when the user originally authenticated.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A decorated (wrapped) UserContext object, or the original,
+     undecorated UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the UserContext cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="shutdown--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>shutdown</h4>
+<pre>void&nbsp;shutdown()</pre>
+<div class="block">Frees all resources associated with this AuthenticationProvider. This
+ function will be automatically invoked when the Guacamole server is
+ shutting down.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html
new file mode 100644
index 0000000..47d9af6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connectable.html
@@ -0,0 +1,335 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Connectable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connectable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":50,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connectable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Connectable" class="title">Interface Connectable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Connectable</span></pre>
+<div class="block">An object which Guacamole can connect to.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>default org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">This function has been deprecated in favor of
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+default&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">This function has been deprecated in favor of
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>,
+     which allows for connection parameter tokens to be injected and
+     applied by cooperating extensions, replacing the functionality
+     previously provided through the <a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><code>StandardTokens</code></a>
+     class. It continues to be defined on this interface for
+     compatibility. <strong>New implementations should instead implement
+     <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-"><code>connect(org.apache.guacamole.protocol.GuacamoleClientInformation, java.util.Map)</code></a>.</strong></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>int&nbsp;getActiveConnections()</pre>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connectable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html
new file mode 100644
index 0000000..ca3323c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Connection.html
@@ -0,0 +1,468 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Connection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Connection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Connection" class="title">Interface Connection</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Connection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process. The
+ backing GuacamoleConfiguration may be intentionally obfuscated or tokenized
+ to protect sensitive configuration information.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history
+         of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history
+                            of this connection, or if permission is
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Connection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html
new file mode 100644
index 0000000..58882d3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.Type.html
@@ -0,0 +1,371 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionGroup.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionGroup.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum ConnectionGroup.Type" class="title">Enum ConnectionGroup.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.ConnectionGroup.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ConnectionGroup.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&gt;</pre>
+<div class="block">All legal types of connection group.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#BALANCING">BALANCING</a></span></code>
+<div class="block">A connection group that acts as a load balancer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#ORGANIZATIONAL">ORGANIZATIONAL</a></span></code>
+<div class="block">A connection group that purely organizes other connections or
+ connection groups, serving only as a container.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="ORGANIZATIONAL">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORGANIZATIONAL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> ORGANIZATIONAL</pre>
+<div class="block">A connection group that purely organizes other connections or
+ connection groups, serving only as a container. An organizational
+ connection group is analogous to a directory or folder in a
+ filesystem.</div>
+</li>
+</ul>
+<a name="BALANCING">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BALANCING</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> BALANCING</pre>
+<div class="block">A connection group that acts as a load balancer. A balancing
+ connection group can be connected to in the same manner as a
+ connection, and will transparently route to the least-used
+ underlying connection.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ConnectionGroup.Type c : ConnectionGroup.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html
new file mode 100644
index 0000000..db42430
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionGroup.html
@@ -0,0 +1,451 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionGroup" class="title">Interface ConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span></code>
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Connectable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html
new file mode 100644
index 0000000..2f05b50
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecord.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionRecord" class="title">Interface ConnectionRecord</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ConnectionRecord</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></pre>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionIdentifier--">getConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getConnectionName--">getConnectionName</a></span>()</code>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileIdentifier--">getSharingProfileIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html#getSharingProfileName--">getSharingProfileName</a></span>()</code>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecord">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getEndDate--">getEndDate</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getRemoteHost--">getRemoteHost</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getStartDate--">getStartDate</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#getUsername--">getUsername</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html#isActive--">isActive</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the connection associated with this
+ connection record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the connection associated with this connection
+     record.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getConnectionName()</pre>
+<div class="block">Returns the name of the connection associated with this connection
+ record.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the connection associated with this connection record.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileIdentifier()</pre>
+<div class="block">Returns the identifier of the sharing profile that was used to access the
+ connection associated with this connection record. If the connection was
+ accessed directly (without involving a sharing profile), this will be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the sharing profile used to access the connection
+     associated with this connection record, or null if the connection
+     was accessed directly.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileName--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingProfileName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getSharingProfileName()</pre>
+<div class="block">Returns the name of the sharing profile that was used to access the
+ connection associated with this connection record. If the connection was
+ accessed directly (without involving a sharing profile), this will be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the sharing profile used to access the connection
+     associated with this connection record, or null if the connection
+     was accessed directly.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecord.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html
new file mode 100644
index 0000000..72d7ca9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/ConnectionRecordSet.html
@@ -0,0 +1,229 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface ConnectionRecordSet" class="title">Interface ConnectionRecordSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">ConnectionRecordSet</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</pre>
+<div class="block">The set of all available connection records, or a subset of those records.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a>, <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html
new file mode 100644
index 0000000..6c08e93
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Credentials.html
@@ -0,0 +1,567 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class Credentials" class="title">Class Credentials</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.Credentials</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">Credentials</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.
+
+ This class is used along with AuthenticationProvider to provide arbitrary
+ HTTP-based authentication for Guacamole.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../serialized-form.html#org.apache.guacamole.net.auth.Credentials">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">Credentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password,
+           javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns the password associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRemoteAddress--">getRemoteAddress</a></span>()</code>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRemoteHostname--">getRemoteHostname</a></span>()</code>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>javax.servlet.http.HttpServletRequest</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getRequest--">getRequest</a></span>()</code>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>javax.servlet.http.HttpSession</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getSession--">getSession</a></span>()</code>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#getUsername--">getUsername</a></span>()</code>
+<div class="block">Returns the username associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets the password associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRemoteAddress-java.lang.String-">setRemoteAddress</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteAddress)</code>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRemoteHostname-java.lang.String-">setRemoteHostname</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHostname)</code>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setRequest-javax.servlet.http.HttpServletRequest-">setRequest</a></span>(javax.servlet.http.HttpServletRequest&nbsp;request)</code>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setSession-javax.servlet.http.HttpSession-">setSession</a></span>(javax.servlet.http.HttpSession&nbsp;session)</code>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html#setUsername-java.lang.String-">setUsername</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Sets the username associated with this set of credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Credentials-java.lang.String-java.lang.String-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Credentials</h4>
+<pre>public&nbsp;Credentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password,
+                   javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
+<div class="block">Construct a Credentials object with the given username, password,
+ and HTTP request.  The information is assigned to the various
+ storage objects, and the remote hostname and address is parsed out
+ of the request object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username that was provided for authentication.</dd>
+<dd><code>password</code> - The password that was provided for authentication.</dd>
+<dd><code>request</code> - The HTTP request associated with the authentication
+     request.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block">Returns the password associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The password associated with this username/password pair, or
+         null if no password has been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block">Sets the password associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to associate with this username/password
+                 pair.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUsername--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUsername</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getUsername()</pre>
+<div class="block">Returns the username associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The username associated with this username/password pair, or
+         null if no username has been set.</dd>
+</dl>
+</li>
+</ul>
+<a name="setUsername-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setUsername</h4>
+<pre>public&nbsp;void&nbsp;setUsername(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Sets the username associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to associate with this username/password
+                 pair.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRequest--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRequest</h4>
+<pre>public&nbsp;javax.servlet.http.HttpServletRequest&nbsp;getRequest()</pre>
+<div class="block">Returns the HttpServletRequest associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The HttpServletRequest associated with this set of credentials,
+         or null if no such request exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRequest-javax.servlet.http.HttpServletRequest-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRequest</h4>
+<pre>public&nbsp;void&nbsp;setRequest(javax.servlet.http.HttpServletRequest&nbsp;request)</pre>
+<div class="block">Sets the HttpServletRequest associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>request</code> - The HttpServletRequest to associated with this set of
+                 credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSession--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSession</h4>
+<pre>public&nbsp;javax.servlet.http.HttpSession&nbsp;getSession()</pre>
+<div class="block">Returns the HttpSession associated with this set of credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The HttpSession associated with this set of credentials, or null
+         if no such request exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSession-javax.servlet.http.HttpSession-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setSession</h4>
+<pre>public&nbsp;void&nbsp;setSession(javax.servlet.http.HttpSession&nbsp;session)</pre>
+<div class="block">Sets the HttpSession associated with this set of credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>session</code> - The HttpSession to associated with this set of
+                credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteAddress--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteAddress</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteAddress()</pre>
+<div class="block">Returns the address of the client end of the connection which provided
+ these credentials, if known.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The address of the client end of the connection which provided these
+     credentials, or null if the address is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteAddress-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setRemoteAddress</h4>
+<pre>public&nbsp;void&nbsp;setRemoteAddress(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteAddress)</pre>
+<div class="block">Sets the address of the client end of the connection which provided
+ these credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteAddress</code> - The address of the client end of the connection which provided these
+     credentials, or null if the address is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRemoteHostname--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRemoteHostname</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRemoteHostname()</pre>
+<div class="block">Returns the hostname of the client end of the connection which provided
+ these credentials, if known. If the hostname of the client cannot be
+ determined, but the address is known, the address may be returned
+ instead.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or address of the client end of the connection which
+     provided these credentials, or null if the hostname is not known.</dd>
+</dl>
+</li>
+</ul>
+<a name="setRemoteHostname-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setRemoteHostname</h4>
+<pre>public&nbsp;void&nbsp;setRemoteHostname(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;remoteHostname)</pre>
+<div class="block">Sets the hostname of the client end of the connection which provided
+ these credentials, if known. If the hostname of the client cannot be
+ determined, but the address is known, the address may be specified
+ instead.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>remoteHostname</code> - The hostname or address of the client end of the connection which
+     provided these credentials, or null if the hostname is not known.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Credentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html
new file mode 100644
index 0000000..7fc266d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DecoratingDirectory.html
@@ -0,0 +1,519 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DecoratingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DecoratingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10,"i3":10,"i4":6,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecoratingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DecoratingDirectory" class="title">Class DecoratingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingDirectory</a>&lt;ObjectType&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DecoratingDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">DecoratingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType&gt;</pre>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory. The decorate() and undecorate() functions must be
+ implemented to define how each object is decorated, and how that decoration
+ may be removed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#decorate-ObjectType-">decorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected abstract <a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#undecorate-ObjectType-">undecorate</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DecoratingDirectory</h4>
+<pre>public&nbsp;DecoratingDirectory(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</pre>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>directory</code> - The Directory whose objects are being decorated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="decorate-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="decorate-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>decorate</h4>
+<pre>protected abstract&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;decorate(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an object retrieved from a Directory which originates from a
+ different AuthenticationProvider, returns an identical type of object
+ optionally wrapped with additional information, functionality, etc. If
+ this directory chooses to decorate the object provided, it is up to the
+ implementation of that decorated object to properly pass through
+ operations as appropriate, as well as provide for an eventual
+ undecorate() operation. All objects retrieved from this
+ DecoratingDirectory will first be passed through this function.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - An object from a Directory which originates from a different
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An object which may have been decorated by this
+     DecoratingDirectory. If the object was not decorated, the original,
+     unmodified object may be returned instead.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the provided object cannot be decorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="undecorate-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="undecorate-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>undecorate</h4>
+<pre>protected abstract&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;undecorate(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an object originally returned from a call to this
+ DecoratingDirectory's decorate() function, reverses the decoration
+ operation, returning the original object. This function is effectively
+ the exact inverse of the decorate() function. The return value of
+ undecorate(decorate(X)) must be identically X. All objects given to this
+ DecoratingDirectory via add() or update() will first be passed through
+ this function.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - An object which was originally returned by a call to this
+     DecoratingDirectory's decorate() function.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The original object which was provided to this DecoratingDirectory's
+     decorate() function.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the provided object cannot be undecorated due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&nbsp;object)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DecoratingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html
new file mode 100644
index 0000000..c439200
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnection.html
@@ -0,0 +1,758 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingConnection" class="title">Class DelegatingConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingConnection</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingConnection</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></pre>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a></span>()</code>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></span>()</code>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this Connection.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingConnection-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingConnection</h4>
+<pre>public&nbsp;DelegatingConnection(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateConnection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateConnection</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;getDelegateConnection()</pre>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Connection wrapped by this DelegatingConnection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">Connection</a></code></span></div>
+<div class="block">Returns the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the name assigned to this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">Connection</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">Connection</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConfiguration</h4>
+<pre>public&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getConfiguration()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">Connection</a></code></span></div>
+<div class="block">Returns the GuacamoleConfiguration associated with this Connection. Note
+ that because configurations may contain sensitive information, some data
+ in this configuration may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getConfiguration--">getConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The GuacamoleConfiguration associated with this Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">Connection</a></code></span></div>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">Connection</a></code></span></div>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history
+         of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history
+                            of this connection, or if permission is
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getSharingProfileIdentifiers()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">Connection</a></code></span></div>
+<div class="block">Returns identifiers of all readable sharing profiles that can be used to
+ join this connection when it is active. The level of access granted to a
+ joining user is dictated by the connection parameters associated with
+ the sharing profile, not necessarily the parameters of the primary
+ connection being joined.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of identifiers representing the sharing profiles for this
+     connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while fetching the sharing profiles for this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html
new file mode 100644
index 0000000..33fe4cb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingConnectionGroup.html
@@ -0,0 +1,736 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingConnectionGroup" class="title">Class DelegatingConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingConnectionGroup</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingConnectionGroup</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></pre>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a></span>()</code>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</code>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingConnectionGroup</h4>
+<pre>public&nbsp;DelegatingConnectionGroup(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateConnectionGroup</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getDelegateConnectionGroup()</pre>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ConnectionGroup wrapped by this DelegatingConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the name assigned to this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParentIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParentIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getParentIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParentIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParentIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setParentIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parentIdentifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">ConnectionGroup</a></code></span></div>
+<div class="block">Sets the unique identifier of the parent ConnectionGroup for
+ this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parentIdentifier</code> - The unique identifier of the parent 
+ ConnectionGroup for this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setType</h4>
+<pre>public&nbsp;void&nbsp;setType(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">ConnectionGroup</a></code></span></div>
+<div class="block">Set the type of this ConnectionGroup.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of this ConnectionGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the type of this connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the type of this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">getActiveConnections</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html
new file mode 100644
index 0000000..aa2e090
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingDirectory.html
@@ -0,0 +1,502 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingDirectory" class="title">Class DelegatingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingDirectory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</pre>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a></span>()</code>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingDirectory</h4>
+<pre>public&nbsp;DelegatingDirectory(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</pre>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>directory</code> - The directory to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateDirectory</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;getDelegateDirectory()</pre>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Directory wrapped by this DelegatingDirectory.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">Directory</a></code></span></div>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&nbsp;object)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a> extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html
new file mode 100644
index 0000000..e557439
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingSharingProfile.html
@@ -0,0 +1,576 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingSharingProfile" class="title">Class DelegatingSharingProfile</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingSharingProfile</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingSharingProfile</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></pre>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</code>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile</a></span>()</code>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingSharingProfile</h4>
+<pre>public&nbsp;DelegatingSharingProfile(<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</pre>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfile</code> - The SharingProfile to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateSharingProfile--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateSharingProfile</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;getDelegateSharingProfile()</pre>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The SharingProfile wrapped by this DelegatingSharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">SharingProfile</a></code></span></div>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">SharingProfile</a></code></span></div>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">SharingProfile</a></code></span></div>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">SharingProfile</a></code></span></div>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>public&nbsp;void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">SharingProfile</a></code></span></div>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingSharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html
new file mode 100644
index 0000000..ab39179
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUser.html
@@ -0,0 +1,795 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUser" class="title">Class DelegatingUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUser</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUser</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></pre>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser</a></span>()</code>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUser-org.apache.guacamole.net.auth.User-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUser</h4>
+<pre>public&nbsp;DelegatingUser(<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</pre>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>user</code> - The User to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUser</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;getDelegateUser()</pre>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User wrapped by this DelegatingUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">User</a></code></span></div>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>public&nbsp;void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">User</a></code></span></div>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">User</a></code></span></div>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">User</a></code></span></div>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first).</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history of this user, or if
+     permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">User</a></code></span></div>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">User</a></code></span></div>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html
new file mode 100644
index 0000000..325be55
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserContext.html
@@ -0,0 +1,838 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUserContext" class="title">Class DelegatingUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUserContext</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUserContext</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></pre>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a></span>()</code>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUserContext</h4>
+<pre>public&nbsp;DelegatingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</pre>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUserContext--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUserContext</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getDelegateUserContext()</pre>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The UserContext wrapped by this DelegatingUserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">UserContext</a></code></span></div>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">UserContext</a></code></span></div>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">UserContext</a></code></span></div>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">UserContext</a></code></span></div>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">UserContext</a></code></span></div>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">UserContext</a></code></span></div>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">UserContext</a></code></span></div>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>public&nbsp;void&nbsp;invalidate()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">UserContext</a></code></span></div>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html
new file mode 100644
index 0000000..d4d6c8d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/DelegatingUserGroup.html
@@ -0,0 +1,705 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DelegatingUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DelegatingUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class DelegatingUserGroup" class="title">Class DelegatingUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.DelegatingUserGroup</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DelegatingUserGroup</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></pre>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</code>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup</a></span>()</code>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DelegatingUserGroup</h4>
+<pre>public&nbsp;DelegatingUserGroup(<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</pre>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userGroup</code> - The UserGroup to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getDelegateUserGroupGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getDelegateUserGroupGroup</h4>
+<pre>protected&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;getDelegateUserGroupGroup()</pre>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The UserGroup wrapped by this DelegatingUserGroup.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">Identifiable</a></code></span></div>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>public&nbsp;void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">Identifiable</a></code></span></div>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">Permissions</a></code></span></div>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">UserGroup</a></code></span></div>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DelegatingUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html
new file mode 100644
index 0000000..3376256
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Directory.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Directory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Directory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Directory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Directory" class="title">Interface Directory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this Directory.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Directory&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></pre>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal. Objects returned by a Directory
+ are not necessarily backed by the stored objects, thus updating an object
+ always requires calling the update() function.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>void&nbsp;add(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)
+  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>void&nbsp;update(<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="type parameter in Directory">ObjectType</a>&nbsp;object)
+     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Directory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html
new file mode 100644
index 0000000..f4ffe51
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html
@@ -0,0 +1,364 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.EncryptionMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Enum GuacamoleProxyConfiguration.EncryptionMethod" class="title">Enum GuacamoleProxyConfiguration.EncryptionMethod</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&gt;</pre>
+<div class="block">All possible types of encryption used by guacd.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#NONE">NONE</a></span></code>
+<div class="block">Unencrypted (plaintext).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#SSL">SSL</a></span></code>
+<div class="block">Encrypted with SSL or TLS.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="NONE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>NONE</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> NONE</pre>
+<div class="block">Unencrypted (plaintext).</div>
+</li>
+</ul>
+<a name="SSL">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SSL</h4>
+<pre>public static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> SSL</pre>
+<div class="block">Encrypted with SSL or TLS.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (GuacamoleProxyConfiguration.EncryptionMethod c : GuacamoleProxyConfiguration.EncryptionMethod.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.EncryptionMethod.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html
new file mode 100644
index 0000000..f5a2167
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class GuacamoleProxyConfiguration" class="title">Class GuacamoleProxyConfiguration</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleProxyConfiguration</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes how the connection to guacd should be
+ established. This includes the hostname and port which guacd is listening on,
+ as well as the type of encryption required, if any.</div>
+<dl>
+<dt><span class="simpleTagLabel">Author:</span></dt>
+<dd>Michael Jumper</dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span></code>
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-boolean-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           boolean&nbsp;ssl)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod</a></span>()</code>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getHostname--">getHostname</a></span>()</code>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getPort--">getPort</a></span>()</code>
+<div class="block">Returns the port that guacd is listening on.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;GuacamoleProxyConfiguration(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                                   int&nbsp;port,
+                                   <a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</pre>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname or address of the machine where guacd is running.</dd>
+<dd><code>port</code> - The port that guacd is listening on.</dd>
+<dd><code>encryptionMethod</code> - The type of encryption required by the instance of guacd running at
+     the given hostname and port.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleProxyConfiguration-java.lang.String-int-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleProxyConfiguration</h4>
+<pre>public&nbsp;GuacamoleProxyConfiguration(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                                   int&nbsp;port,
+                                   boolean&nbsp;ssl)</pre>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname and
+ port, with encryption method being restricted to either NONE or SSL.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>hostname</code> - The hostname or address of the machine where guacd is running.</dd>
+<dd><code>port</code> - The port that guacd is listening on.</dd>
+<dd><code>ssl</code> - true if guacd requires SSL/TLS encryption, false if communication
+     with guacd should be unencrypted.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getHostname--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHostname</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getHostname()</pre>
+<div class="block">Returns the hostname or address of the machine where guacd is running.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The hostname or address of the machine where guacd is running.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPort--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPort</h4>
+<pre>public&nbsp;int&nbsp;getPort()</pre>
+<div class="block">Returns the port that guacd is listening on.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The port that guacd is listening on.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEncryptionMethod--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEncryptionMethod</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;getEncryptionMethod()</pre>
+<div class="block">Returns the type of encryption required by guacd.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of encryption required by guacd.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProxyConfiguration.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html
new file mode 100644
index 0000000..3152619
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Identifiable.html
@@ -0,0 +1,273 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Identifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Identifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Identifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Identifiable" class="title">Interface Identifiable</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Identifiable</span></pre>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a></span>()</code>
+<div class="block">Returns the unique identifier assigned to this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier assigned to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getIdentifier()</pre>
+<div class="block">Returns the unique identifier assigned to this object. All identifiable
+ objects must have a deterministic, unique identifier which may not be
+ null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique identifier assigned to this object, which may not be
+     null.</dd>
+</dl>
+</li>
+</ul>
+<a name="setIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setIdentifier</h4>
+<pre>void&nbsp;setIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Sets the identifier assigned to this object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Identifiable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html
new file mode 100644
index 0000000..c464db3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Permissions.html
@@ -0,0 +1,409 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Permissions (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Permissions (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permissions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Permissions" class="title">Interface Permissions</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>, <a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Permissions</span></pre>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system. The permissions granted are exposed
+ through subclasses of PermissionSet, and may be mutable depending on the
+ access level of the current user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getActiveConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getActiveConnectionPermissions()
+                                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all active connection permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection group permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all connection permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfilePermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfilePermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getSharingProfilePermissions()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all sharing profile permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSystemPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSystemPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>&nbsp;getSystemPermissions()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all system-level permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A SystemPermissionSet of all system-level permissions granted to
+     this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserGroupPermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserGroupPermissions()
+                                     throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns all user group permissions given to this object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user group permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permissions.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html
new file mode 100644
index 0000000..20aaaee
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/RelatedObjectSet.html
@@ -0,0 +1,350 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface RelatedObjectSet" class="title">Interface RelatedObjectSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">RelatedObjectSet</span></pre>
+<div class="block">An arbitrary set of existing objects sharing some common relation. Unlike a
+ Directory, which provides for maintaining the entire lifecycle of its
+ objects, a RelatedObjectSet only maintains the relation between its
+ containing object and the objects within the set. Adding/removing an object
+ from a RelatedObjectSet affects only the status of the specific relationship
+ represented by the RelatedObjectSet, not the existence of the objects
+ themselves.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getObjects()
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set which contains the identifiers of all objects contained
+     within this RelatedObjectSet.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects within the set, or
+     if objects cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObjects</h4>
+<pre>void&nbsp;addObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the objects having the given identifiers, if not already present.
+ If a specified object is already present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the objects, or if permission to add
+     objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeObjects</h4>
+<pre>void&nbsp;removeObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present. If a specified object is not present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being removed.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the objects, or if permission to
+     remove objects is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html
new file mode 100644
index 0000000..30d2967
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/Shareable.html
@@ -0,0 +1,272 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Shareable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Shareable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Shareable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface Shareable" class="title">Interface Shareable&lt;T&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>T</code> - The type of object which dictates the semantics/restrictions of shared
+     objects.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Shareable&lt;T&gt;</span></pre>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials. It is expected, but not required, that these credentials are
+ temporary.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getSharingCredentials-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getSharingCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a>&nbsp;getSharingCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object. The semantics and restrictions
+ of the shared object (when accessed using the returned sharing
+ credentials) are defined by the <code>T</code> associated with the given
+ identifier and within the
+ <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>&lt;<code>T</code>&gt; of the same <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a> that
+ this Shareable was retrieved from.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of a <code>T</code> within the
+     <a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>&lt;<code>T</code>&gt; of the same <a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><code>UserContext</code></a>
+     that this Shareable was retrieved from.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A full set of credentials which can be used to authenticate and
+     obtain access to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If credentials could not be generated, or permission to share this
+     object is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Shareable.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html
new file mode 100644
index 0000000..ff7ab84
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/SharingProfile.html
@@ -0,0 +1,387 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface SharingProfile" class="title">Interface SharingProfile</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">SharingProfile</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></pre>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getParameters--">getParameters</a></span>()</code>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#getPrimaryConnectionIdentifier--">getPrimaryConnectionIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setParameters-java.util.Map-">setParameters</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</code>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html#setPrimaryConnectionIdentifier-java.lang.String-">setPrimaryConnectionIdentifier</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name assigned to this SharingProfile.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the human-readable name assigned to this SharingProfile.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrimaryConnectionIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPrimaryConnectionIdentifier</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPrimaryConnectionIdentifier()</pre>
+<div class="block">Returns the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPrimaryConnectionIdentifier-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPrimaryConnectionIdentifier</h4>
+<pre>void&nbsp;setPrimaryConnectionIdentifier(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Sets the identifier of the primary connection associated with this
+ connection. The primary connection is the connection that this sharing
+ profile can be used to share.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the primary connection associated with this
+     connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getParameters--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getParameters</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getParameters()</pre>
+<div class="block">Returns a map which contains connection parameter name/value pairs as
+ key/value pairs. Changes to this map will affect the parameters stored
+ within this sharing profile. The differences in these parameters compared
+ to those of the associated primary connection yield different levels of
+ access to users joining the primary connection via this sharing profile.
+ Note that because configurations may contain sensitive information, some
+ data in this map may be omitted or tokenized.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+<a name="setParameters-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setParameters</h4>
+<pre>void&nbsp;setParameters(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;parameters)</pre>
+<div class="block">Replaces all current parameters with the parameters defined within the
+ given map. Key/value pairs within the map represent parameter name/value
+ pairs. The differences in these parameters compared to those of the
+ associated primary connection yield different levels of access to users
+ joining the primary connection via this sharing profile.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>parameters</code> - A map which contains all connection parameter name/value pairs as
+     key/value pairs.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SharingProfile.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html
new file mode 100644
index 0000000..6a953d4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnection.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingConnection" class="title">Class TokenInjectingConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingConnection</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingConnection</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></pre>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getLastActive--">getLastActive</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getName--">getName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setIdentifier-java.lang.String-">setIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setName-java.lang.String-">setName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingConnection</h4>
+<pre>public&nbsp;TokenInjectingConnection(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                                <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect(). Any additional tokens which have the same
+ name as existing tokens will override the existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html
new file mode 100644
index 0000000..4d22fdf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html
@@ -0,0 +1,361 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingConnectionGroup" class="title">Class TokenInjectingConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingConnectionGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingConnectionGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></pre>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getActiveConnections--">getActiveConnections</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getName--">getName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setIdentifier-java.lang.String-">setIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setName-java.lang.String-">setName</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingConnectionGroup</h4>
+<pre>public&nbsp;TokenInjectingConnectionGroup(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect(). Any additional tokens which have the
+ same name as existing tokens will override the existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html
new file mode 100644
index 0000000..37d3442
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/TokenInjectingUserContext.html
@@ -0,0 +1,454 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenInjectingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenInjectingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class TokenInjectingUserContext" class="title">Class TokenInjectingUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.DelegatingUserContext</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.TokenInjectingUserContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenInjectingUserContext</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></pre>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.DelegatingUserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionAttributes--">getConnectionAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getResource--">getResource</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserAttributes--">getUserAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#invalidate--">invalidate</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TokenInjectingUserContext</h4>
+<pre>public&nbsp;TokenInjectingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included. Any additional tokens which have the same
+ name as existing tokens will override the existing values. If tokens
+ specific to a particular connection or connection group need to be
+ included, getTokens() may be overridden to provide a different set of
+ tokens.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+<dd><code>tokens</code> - The additional tokens to include with each call to connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenInjectingUserContext</h4>
+<pre>public&nbsp;TokenInjectingUserContext(<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</pre>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included. Any additional
+ tokens which have the same name as existing tokens will override the
+ existing values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>userContext</code> - The UserContext to wrap.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTokens-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens(<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection. If not overridden, this function
+ will return the tokens provided when this instance of
+ TokenInjectingUserContext was created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The Connection on which connect() has been called.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tokens which should be added to the in-progress call to
+     connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens(<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup. If not overridden, this
+ function will return the tokens provided when this instance of
+ TokenInjectingUserContext was created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The ConnectionGroup on which connect() has been called.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tokens which should be added to the in-progress call to
+     connect().</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">UserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenInjectingUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html
new file mode 100644
index 0000000..58d9f2a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.Attribute.html
@@ -0,0 +1,346 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User.Attribute (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="User.Attribute (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.Attribute.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Class User.Attribute" class="title">Class User.Attribute</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.User.Attribute</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing interface:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <span class="typeNameLabel">User.Attribute</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application. Extensions may additionally define their own attributes
+ with completely arbitrary names and semantics, so long as those names do
+ not conflict with the names listed here. All standard attribute names
+ have a "guac-" prefix to avoid such conflicts.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#EMAIL_ADDRESS">EMAIL_ADDRESS</a></span></code>
+<div class="block">The email address of the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#FULL_NAME">FULL_NAME</a></span></code>
+<div class="block">The user's full name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATION">ORGANIZATION</a></span></code>
+<div class="block">The organization, company, group, etc.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#ORGANIZATIONAL_ROLE">ORGANIZATIONAL_ROLE</a></span></code>
+<div class="block">The role that the user has at the organization, company, group, etc.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html#Attribute--">Attribute</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="FULL_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>FULL_NAME</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> FULL_NAME</pre>
+<div class="block">The user's full name.</div>
+</li>
+</ul>
+<a name="EMAIL_ADDRESS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMAIL_ADDRESS</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> EMAIL_ADDRESS</pre>
+<div class="block">The email address of the user.</div>
+</li>
+</ul>
+<a name="ORGANIZATION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ORGANIZATION</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ORGANIZATION</pre>
+<div class="block">The organization, company, group, etc. that the user belongs to.</div>
+</li>
+</ul>
+<a name="ORGANIZATIONAL_ROLE">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ORGANIZATIONAL_ROLE</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> ORGANIZATIONAL_ROLE</pre>
+<div class="block">The role that the user has at the organization, company, group, etc.
+ they belong to.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="Attribute--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>Attribute</h4>
+<pre>public&nbsp;Attribute()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.Attribute.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.java.lang.Object">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.html
new file mode 100644
index 0000000..3643d1d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/User.html
@@ -0,0 +1,423 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>User (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="User (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface User" class="title">Interface User</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">User</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></pre>
+<div class="block">A user of the Guacamole web application.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></span></code>
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this user was last active.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getPassword--">getPassword</a></span>()</code>
+<div class="block">Returns this user's password.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/User.html#setPassword-java.lang.String-">setPassword</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</code>
+<div class="block">Sets this user's password.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Permissions">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPassword--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPassword</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getPassword()</pre>
+<div class="block">Returns this user's password. Note that the password returned may be
+ hashed or completely arbitrary.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A String which may (or may not) be the user's password.</dd>
+</dl>
+</li>
+</ul>
+<a name="setPassword-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPassword</h4>
+<pre>void&nbsp;setPassword(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;password)</pre>
+<div class="block">Sets this user's password. Note that while this function is guaranteed
+ to change the password of this User object, there is no guarantee that
+ getPassword() will return the value given to setPassword().</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>password</code> - The password to set.</dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block">Returns the date and time that this user was last active. If the user
+ was never active, the time that the user was last active is unknown, or
+ this information is not visible to the current user, this may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this user was last active, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getHistory()
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions. ActivityRecords
+ in this list will be sorted in descending order of end time (active
+ sessions are first), and then in descending order of start time
+ (newer sessions are first).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ActivityRecords representing the login history of this
+     User.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history of this user, or if
+     permission is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user is a member.
+ If permission is granted for the current user to modify the membership of
+ this user, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user is a member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getEffectivePermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getEffectivePermissions</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>&nbsp;getEffectivePermissions()
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a read-only view of all permissions granted to this user. The
+ exact semantics of what permissions are granted are up to the
+ implementation, and the permissions within this view may be implied,
+ derived dynamically, inherited through multiple levels of group
+ membership, etc.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A read-only view of the permissions which are granted to this user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/User.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html
new file mode 100644
index 0000000..10b9b8b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserContext.html
@@ -0,0 +1,696 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface UserContext" class="title">Interface UserContext</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a>, <a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserContext</span></pre>
+<div class="block">The context of an active user. The functions of this class enforce all
+ permissions and act only within the rights of the associated user.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionAttributes--">getConnectionAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connections.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i11" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserAttributes--">getUserAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to users.</div>
+</td>
+</tr>
+<tr id="i12" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a></span>()</code>
+<div class="block">Retrieves a collection of all attributes applicable to user groups.</div>
+</td>
+</tr>
+<tr id="i14" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr id="i16" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#invalidate--">invalidate</a></span>()</code>
+<div class="block">Invalidates this user context, releasing all associated resources.</div>
+</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;&nbsp;getUserDirectory()
+                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;&nbsp;getUserGroupDirectory()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the restrictions
+     of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;getConnectionGroupDirectory()
+                                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnectionDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;&nbsp;getActiveConnectionDirectory()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileDirectory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;&nbsp;getSharingProfileDirectory()
+                                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of the
+     user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionHistory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getConnectionHistory()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all connection records visible to current user. Connection
+ history records describe the start and end times of connections, and
+ correspond to the times that users connect or disconnect to individual
+ remote desktops. The resulting set of connection records can be further
+ filtered and ordered using the methods defined on ActivityRecordSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all connection records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the connection records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserHistory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserHistory</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;&nbsp;getUserHistory()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves all user history records visible to current user. User history
+ records describe the start and end times of user sessions, and correspond
+ to the times that users logged in or out. The resulting set of user
+ records can be further filtered and ordered using the methods defined on
+ ActivityRecordSet.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A set of all user records visible to the current user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user records.</dd>
+</dl>
+</li>
+</ul>
+<a name="getRootConnectionGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getRootConnectionGroup</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;getRootConnectionGroup()
+                                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A connection group whose operations are bound by the restrictions
+         of this UserContext.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to users. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroupAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getUserGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to user groups. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connections. This
+ collection will contain only those attributes which the current user has
+ general permission to view or modify. If there are no such attributes,
+ this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connections.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionGroupAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to connection
+ groups. This collection will contain only those attributes which the
+ current user has general permission to view or modify. If there are no
+ such attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to connection groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileAttributes</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileAttributes()</pre>
+<div class="block">Retrieves a collection of all attributes applicable to sharing profiles.
+ This collection will contain only those attributes which the current user
+ has general permission to view or modify. If there are no such
+ attributes, this collection will be empty.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection of all attributes applicable to sharing profile.</dd>
+</dl>
+</li>
+</ul>
+<a name="invalidate--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>invalidate</h4>
+<pre>void&nbsp;invalidate()</pre>
+<div class="block">Invalidates this user context, releasing all associated resources. This
+ function will be invoked when the user logs out, or when their session
+ is automatically invalidated.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html
new file mode 100644
index 0000000..12b0462
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/UserGroup.html
@@ -0,0 +1,337 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth</div>
+<h2 title="Interface UserGroup" class="title">Interface UserGroup</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a>, <a href="../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserGroup</span>
+extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></pre>
+<div class="block">A user group of the Guacamole web application. Each user group may contain
+ any number of Guacamole users and other user groups, and defines the
+ permissions implicitly granted to its members.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Attributes">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">getAttributes</a>, <a href="../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Permissions">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></h3>
+<code><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getUserGroups--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getUserGroups()
+                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member. If permission is granted for the current user to modify the
+ membership of this user group, then the returned set will be mutable,
+ and any such modifications should be made through changes to the
+ returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups of which this user group is a
+     member.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUsers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMemberUsers</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUsers()
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable users that are members of this user group.
+ If permission is granted for the current user to modify the members of
+ this group, then the returned set will be mutable, and any such
+ modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set all readable users that are members of this user group,
+     which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the users.</dd>
+</dl>
+</li>
+</ul>
+<a name="getMemberUserGroups--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getMemberUserGroups</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>&nbsp;getMemberUserGroups()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group. If permission is granted for the current user to modify the
+ members of this group, then the returned set will be mutable, and any
+ such modifications should be made through changes to the returned set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of all readable user groups that are members of this user
+     group, which may be mutable.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the user groups.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html
new file mode 100644
index 0000000..d12f477
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractActiveConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractActiveConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractActiveConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html
new file mode 100644
index 0000000..060bbd6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticatedUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractAuthenticatedUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractAuthenticatedUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html
new file mode 100644
index 0000000..5342f74
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractAuthenticationProvider" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractAuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></span></code>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AbstractAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html
new file mode 100644
index 0000000..4636b2c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnection.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnection.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html
new file mode 100644
index 0000000..a4316d1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html
new file mode 100644
index 0000000..61bd21c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html
@@ -0,0 +1,265 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractIdentifiable" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractIdentifiable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html" target="_top">Frames</a></li>
+<li><a href="AbstractIdentifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html
new file mode 100644
index 0000000..84dcc93
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractSharingProfile" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractSharingProfile</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.AbstractSharingProfile</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="AbstractSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html
new file mode 100644
index 0000000..81df997
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUser.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUser</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUser.html" target="_top">Frames</a></li>
+<li><a href="AbstractUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html
new file mode 100644
index 0000000..450b092
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserContext.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></span></code>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserContext.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html
new file mode 100644
index 0000000..d772bd0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.AbstractUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.AbstractUserGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html" target="_top">Frames</a></li>
+<li><a href="AbstractUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html
new file mode 100644
index 0000000..e21d61e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActiveConnection.html
@@ -0,0 +1,211 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActiveConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActiveConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActiveConnection" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActiveConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActiveConnection.html" target="_top">Frames</a></li>
+<li><a href="ActiveConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html
new file mode 100644
index 0000000..05b1e9b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecord.html
@@ -0,0 +1,270 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActivityRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecord" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActivityRecord</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span></code>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ActivityRecords representing the login history
+ of this user, including any active sessions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getHistory--">getHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecord.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html
new file mode 100644
index 0000000..d3f02fa
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html
@@ -0,0 +1,239 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty" class="title">Uses of Class<br>org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.SortableProperty.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.SortableProperty.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.SortableProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html
new file mode 100644
index 0000000..0e837e6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html
@@ -0,0 +1,304 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ActivityRecordSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ActivityRecordSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a></span>()</code>
+<div class="block">Retrieves all user history records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="type parameter in ActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span></code>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleActivityRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html
new file mode 100644
index 0000000..707b4dc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Attributes.html
@@ -0,0 +1,351 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Attributes (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Attributes (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Attributes" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Attributes</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span></code>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Attributes.html" target="_top">Frames</a></li>
+<li><a href="Attributes.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html
new file mode 100644
index 0000000..bcc0488
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html
@@ -0,0 +1,462 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.AuthenticatedUser" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.AuthenticatedUser</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a> in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html" target="_top">Frames</a></li>
+<li><a href="AuthenticatedUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html
new file mode 100644
index 0000000..d8d581b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html
@@ -0,0 +1,283 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.AuthenticationProvider" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.AuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></span></code>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticatedUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider that authenticated this user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></span></code>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                 boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html
new file mode 100644
index 0000000..191490c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connectable.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Connectable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Connectable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Connectable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Connectable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connectable.html" target="_top">Frames</a></li>
+<li><a href="Connectable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html
new file mode 100644
index 0000000..f57d1d3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Connection.html
@@ -0,0 +1,377 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Connection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Connection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Connection" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Connection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getDelegateConnection--">getDelegateConnection</a></span>()</code>
+<div class="block">Returns the underlying Connection wrapped by this DelegatingConnection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.Connection-">getTokens</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given Connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#DelegatingConnection-org.apache.guacamole.net.auth.Connection-">DelegatingConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block">Wraps the given Connection such that all function calls against this
+ DelegatingConnection will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html#TokenInjectingConnection-org.apache.guacamole.net.auth.Connection-java.util.Map-">TokenInjectingConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given Connection, automatically adding the given tokens to
+ each invocation of connect().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Connection.html" target="_top">Frames</a></li>
+<li><a href="Connection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html
new file mode 100644
index 0000000..b82195d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html
@@ -0,0 +1,225 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.ConnectionGroup.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.ConnectionGroup.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of this connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.Type.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>
+<div class="block">Set the type of this ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a>&nbsp;type)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html
new file mode 100644
index 0000000..0471a3a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionGroup.html
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionGroup" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnectionGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#getDelegateConnectionGroup--">getDelegateConnectionGroup</a></span>()</code>
+<div class="block">Returns the underlying ConnectionGroup wrapped by this
+ DelegatingConnectionGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a></span>()</code>
+<div class="block">Retrieves a connection group which can be used to view and manipulate
+ connections, but only as allowed by the permissions given to the user of 
+ this UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getTokens-org.apache.guacamole.net.auth.ConnectionGroup-">getTokens</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Returns the tokens which should be added to an in-progress call to
+ connect() for the given ConnectionGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html#DelegatingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">DelegatingConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block">Wraps the given ConnectionGroup such that all function calls against this
+ DelegatingConnectionGroup will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html#TokenInjectingConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-java.util.Map-">TokenInjectingConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given ConnectionGroup, automatically adding the given tokens
+ to each invocation of connect().</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionGroupDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="ConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html
new file mode 100644
index 0000000..04f9271
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecord.html
@@ -0,0 +1,234 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecord" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionRecord</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a></span>()</code>
+<div class="block">Retrieves all connection records visible to current user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Connection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html#getHistory--">getHistory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnection.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getHistory--">getHistory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecord.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecord.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html
new file mode 100644
index 0000000..454f9d9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html
@@ -0,0 +1,213 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.ConnectionRecordSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.ConnectionRecordSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleConnectionRecordSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="ConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html
new file mode 100644
index 0000000..76f6376
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Credentials.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.Credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.Credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.Credentials" class="title">Uses of Class<br>org.apache.guacamole.net.auth.Credentials</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticatedUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the credentials that the user provided when they successfully
+ authenticated.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                       <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated AuthenticatedUser for the given credentials
+ already having produced the given AuthenticatedUser.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>abstract <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationFailureEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectEvent.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a> in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Credentials.html" target="_top">Frames</a></li>
+<li><a href="Credentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html
new file mode 100644
index 0000000..0e40fd9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DecoratingDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DecoratingDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DecoratingDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DecoratingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DecoratingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html
new file mode 100644
index 0000000..8053655
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnection.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingConnection</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnection.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html
new file mode 100644
index 0000000..496a099
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingConnectionGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html
new file mode 100644
index 0000000..8cab5f4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingDirectory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html" target="_top">Frames</a></li>
+<li><a href="DelegatingDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html
new file mode 100644
index 0000000..bafa31b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingSharingProfile" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingSharingProfile</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingSharingProfile</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingSharingProfile.html" target="_top">Frames</a></li>
+<li><a href="DelegatingSharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html
new file mode 100644
index 0000000..d8d12aa
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUser.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html
new file mode 100644
index 0000000..6bc5f36
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></span></code>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html
new file mode 100644
index 0000000..897246b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.DelegatingUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.DelegatingUserGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.DelegatingUserGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/DelegatingUserGroup.html" target="_top">Frames</a></li>
+<li><a href="DelegatingUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html
new file mode 100644
index 0000000..e3a636e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Directory.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Directory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Directory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Directory" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Directory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ active connections, but only as allowed by the permissions given to the
+ user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">TokenInjectingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connection groups and their members, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingDirectory.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#getDelegateDirectory--">getDelegateDirectory</a></span>()</code>
+<div class="block">Returns the underlying Directory wrapped by this DelegatingDirectory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html#DecoratingDirectory-org.apache.guacamole.net.auth.Directory-">DecoratingDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="type parameter in DecoratingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Creates a new DecoratingDirectory which decorates the objects within
+ the given directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html#DelegatingDirectory-org.apache.guacamole.net.auth.Directory-">DelegatingDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="type parameter in DelegatingDirectory">ObjectType</a>&gt;&nbsp;directory)</code>
+<div class="block">Wraps the given Directory such that all function calls against this
+ DelegatingDirectory will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Directory.html" target="_top">Frames</a></li>
+<li><a href="Directory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html
new file mode 100644
index 0000000..6c5ff43
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html
@@ -0,0 +1,210 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod" class="title">Uses of Class<br>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#getEncryptionMethod--">getEncryptionMethod</a></span>()</code>
+<div class="block">Returns the type of encryption required by guacd.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleProxyConfiguration.EncryptionMethod.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html#GuacamoleProxyConfiguration-java.lang.String-int-org.apache.guacamole.net.auth.GuacamoleProxyConfiguration.EncryptionMethod-">GuacamoleProxyConfiguration</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;hostname,
+                           int&nbsp;port,
+                           <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>&nbsp;encryptionMethod)</code>
+<div class="block">Creates a new GuacamoleProxyConfiguration having the given hostname,
+ port, and encryption method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html
new file mode 100644
index 0000000..9782a5c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.GuacamoleProxyConfiguration" class="title">Uses of Class<br>org.apache.guacamole.net.auth.GuacamoleProxyConfiguration</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a> in <a href="../../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/environment/Environment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>
+<div class="block">Returns the connection information which should be used, by default, to
+ connect to guacd when establishing a remote desktop connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getDefaultGuacamoleProxyConfiguration--">getDefaultGuacamoleProxyConfiguration</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html
new file mode 100644
index 0000000..8578835
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Identifiable.html
@@ -0,0 +1,446 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Identifiable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Identifiable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Identifiable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Identifiable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></span></code>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></span></code>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></span></code>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span></code>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></span></code>
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></span></code>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></span></code>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></span></code>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></span></code>
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></span></code>
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span></code>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></span></code>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></span></code>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Identifiable.html" target="_top">Frames</a></li>
+<li><a href="Identifiable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html
new file mode 100644
index 0000000..1a37031
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Permissions.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Permissions (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Permissions (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Permissions" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Permissions</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span></code>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span></code>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>
+<div class="block">Returns a read-only view of all permissions granted to this user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getEffectivePermissions--">getEffectivePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Permissions.html" target="_top">Frames</a></li>
+<li><a href="Permissions.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html
new file mode 100644
index 0000000..41dc216
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html
@@ -0,0 +1,287 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.RelatedObjectSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.RelatedObjectSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> declared as <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RelatedObjectSet.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of RelatedObjectSEt which contains no objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups that are members of this user
+ group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a></span>()</code>
+<div class="block">Returns a set of all readable users that are members of this user group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user group is a
+ member.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">User.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/User.html#getUserGroups--">getUserGroups</a></span>()</code>
+<div class="block">Returns a set of all readable user groups of which this user is a member.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroups--">getUserGroups</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></span></code>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="RelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html
new file mode 100644
index 0000000..2ba4079
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/Shareable.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.Shareable (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.Shareable (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.Shareable" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.Shareable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></span></code>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></span></code>
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/Shareable.html" target="_top">Frames</a></li>
+<li><a href="Shareable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html
new file mode 100644
index 0000000..e26556a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/SharingProfile.html
@@ -0,0 +1,248 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.SharingProfile (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.SharingProfile (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.SharingProfile" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.SharingProfile</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></span></code>
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></span></code>
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingSharingProfile.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#getDelegateSharingProfile--">getDelegateSharingProfile</a></span>()</code>
+<div class="block">Returns the underlying SharingProfile wrapped by this
+ DelegatingSharingProfile.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ sharing profiles and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html#DelegatingSharingProfile-org.apache.guacamole.net.auth.SharingProfile-">DelegatingSharingProfile</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>&nbsp;sharingProfile)</code>
+<div class="block">Wraps the given SharingProfile such that all function calls against this
+ DelegatingSharingProfile will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/SharingProfile.html" target="_top">Frames</a></li>
+<li><a href="SharingProfile.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html
new file mode 100644
index 0000000..230883c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnection.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html
new file mode 100644
index 0000000..c41ce84
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingConnectionGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html
new file mode 100644
index 0000000..dc29909
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.TokenInjectingUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.TokenInjectingUserContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.TokenInjectingUserContext</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/TokenInjectingUserContext.html" target="_top">Frames</a></li>
+<li><a href="TokenInjectingUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html
new file mode 100644
index 0000000..8a75c06
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.Attribute.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.User.Attribute (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.User.Attribute (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.User.Attribute" class="title">Uses of Class<br>org.apache.guacamole.net.auth.User.Attribute</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.User.Attribute</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.Attribute.html" target="_top">Frames</a></li>
+<li><a href="User.Attribute.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html
new file mode 100644
index 0000000..6c16e6c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/User.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.User (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.User (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.User" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.User</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></span></code>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></span></code>
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getDelegateUser--">getDelegateUser</a></span>()</code>
+<div class="block">Returns the underlying User wrapped by this DelegatingUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#self--">self</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate other
+ users, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#DelegatingUser-org.apache.guacamole.net.auth.User-">DelegatingUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block">Wraps the given User such that all function calls against this
+ DelegatingUser will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></span></code>
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/User.html" target="_top">Frames</a></li>
+<li><a href="User.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html
new file mode 100644
index 0000000..2198fc5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserContext.html
@@ -0,0 +1,435 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.UserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.UserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.UserContext" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.UserContext</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></span></code>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></span></code>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></span></code>
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getDelegateUserContext--">getDelegateUserContext</a></span>()</code>
+<div class="block">Returns the underlying UserContext wrapped by this
+ DelegatingUserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+        <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+        <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned from getUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;decorated,
+          <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+          <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+          <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given a UserContext returned by updateUserContext() of a different
+ AuthenticationProvider, returns a UserContext instance which decorates
+ (wraps) that UserContext, delegating and overriding implemented
+ functions as necessary.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;context,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                 <a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns a new or updated UserContext for the given AuthenticatedUser
+ already having the given UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#DelegatingUserContext-org.apache.guacamole.net.auth.UserContext-">DelegatingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext such that all function calls against this
+ DelegatingUserContext will be delegated to it.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-">TokenInjectingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the additional
+ parameter tokens returned by getTokens() are included.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html#TokenInjectingUserContext-org.apache.guacamole.net.auth.UserContext-java.util.Map-">TokenInjectingUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;userContext,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Wraps the given UserContext, overriding the connect() function of each
+ retrieved Connection and ConnectionGroup such that the given additional
+ parameter tokens are included.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></span></code>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleAuthenticationProvider.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserContext.html" target="_top">Frames</a></li>
+<li><a href="UserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html
new file mode 100644
index 0000000..a501bce
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/class-use/UserGroup.html
@@ -0,0 +1,276 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.UserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.UserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.UserGroup" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.UserGroup</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></span></code>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></span></code>
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>protected <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getDelegateUserGroupGroup--">getDelegateUserGroupGroup</a></span>()</code>
+<div class="block">Returns the underlying UserGroup wrapped by this DelegatingUserGroup.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return types with arguments of type <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">UserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserContext.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate user
+ groups, but only as allowed by the permissions given to the user of this
+ UserContext.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#DelegatingUserGroup-org.apache.guacamole.net.auth.UserGroup-">DelegatingUserGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>&nbsp;userGroup)</code>
+<div class="block">Wraps the given UserGroup such that all function calls against this
+ DelegatingUserGroup will be delegated to it.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a> in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></span></code>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/class-use/UserGroup.html" target="_top">Frames</a></li>
+<li><a href="UserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html
new file mode 100644
index 0000000..408d214
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/CredentialsInfo.html
@@ -0,0 +1,400 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CredentialsInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CredentialsInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialsInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class CredentialsInfo" class="title">Class CredentialsInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.CredentialsInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">CredentialsInfo</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Information which describes a set of valid credentials.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span></code>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a></span></code>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a></span></code>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span></code>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#CredentialsInfo-java.util.Collection-">CredentialsInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></span>()</code>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>EMPTY</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> EMPTY</pre>
+<div class="block">CredentialsInfo object which describes empty credentials. No fields are
+ required.</div>
+</li>
+</ul>
+<a name="USERNAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> USERNAME</pre>
+<div class="block">A field describing the username HTTP parameter expected by Guacamole
+ during login, if usernames are being used.</div>
+</li>
+</ul>
+<a name="PASSWORD">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a> PASSWORD</pre>
+<div class="block">A field describing the password HTTP parameter expected by Guacamole
+ during login, if passwords are being used.</div>
+</li>
+</ul>
+<a name="USERNAME_PASSWORD">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>USERNAME_PASSWORD</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> USERNAME_PASSWORD</pre>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="CredentialsInfo-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>CredentialsInfo</h4>
+<pre>public&nbsp;CredentialsInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new CredentialsInfo object which requires the given fields for
+ any conforming credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFields--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getFields</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;getFields()</pre>
+<div class="block">Returns all fields required for valid credentials as described by this
+ object.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>All fields required for valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialsInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html
new file mode 100644
index 0000000..21eee16
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html
@@ -0,0 +1,419 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleCredentialsException" class="title">Class GuacamoleCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleCredentialsException</span>
+extends org.apache.guacamole.GuacamoleUnauthorizedException</pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials. Additional information
+ describing the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></span>()</code>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleCredentialsException</h4>
+<pre>public&nbsp;GuacamoleCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                     <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentialsInfo--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentialsInfo</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;getCredentialsInfo()</pre>
+<div class="block">Returns information describing the form of valid credentials.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..410b9c8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,388 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleInsufficientCredentialsException" class="title">Class GuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInsufficientCredentialsException</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.
+ The validity or invalidity of the given credentials is not specified, and
+ more information is needed before a decision can be made. Additional
+ information describing the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInsufficientCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInsufficientCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                                 <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInsufficientCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..ce9e4cc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html
@@ -0,0 +1,386 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class GuacamoleInvalidCredentialsException" class="title">Class GuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">java.lang.Throwable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">java.lang.Exception</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleClientException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleSecurityException</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.GuacamoleUnauthorizedException</li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">GuacamoleInvalidCredentialsException</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></pre>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid. Additional information describing
+ the form of valid credentials is provided.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../serialized-form.html#org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException">Serialized Form</a></dd>
+</dl>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleUnauthorizedException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleUnauthorizedException</h3>
+<code>getStatus</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.GuacamoleException">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.GuacamoleException</h3>
+<code>getHttpStatusCode, getWebSocketCode</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Throwable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#addSuppressed-java.lang.Throwable-" title="class or interface in java.lang">addSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#fillInStackTrace--" title="class or interface in java.lang">fillInStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getCause--" title="class or interface in java.lang">getCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getLocalizedMessage--" title="class or interface in java.lang">getLocalizedMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getMessage--" title="class or interface in java.lang">getMessage</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getStackTrace--" title="class or interface in java.lang">getStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#getSuppressed--" title="class or interface in java.lang">getSuppressed</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#initCause-java.lang.Throwable-" title="class or interface in java.lang">initCause</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace--" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintStream-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#printStackTrace-java.io.PrintWriter-" title="class or interface in java.lang">printStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#setStackTrace-java.lang.StackTraceElement:A-" title="class or interface in java.lang">setStackTrace</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>message</code> - A human readable description of the exception that occurred.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+<a name="GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>GuacamoleInvalidCredentialsException</h4>
+<pre>public&nbsp;GuacamoleInvalidCredentialsException(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                            <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</pre>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>cause</code> - The cause of this exception.</dd>
+<dd><code>credentialsInfo</code> - Information describing the form of valid credentials.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleInvalidCredentialsException.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html
new file mode 100644
index 0000000..071510b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/UserCredentials.html
@@ -0,0 +1,585 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserCredentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserCredentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserCredentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.credentials</div>
+<h2 title="Class UserCredentials" class="title">Class UserCredentials</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.CredentialsInfo</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.credentials.UserCredentials</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">UserCredentials</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></pre>
+<div class="block">A fully-valid set of credentials and associated values. Each instance of
+ this object should describe a full set of parameter name/value pairs which
+ can be used to authenticate successfully, even if that success depends on
+ factors not described by this object.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#PASSWORD">PASSWORD</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME">USERNAME</a>, <a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-java.util.Collection-java.util.Map-">UserCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-org.apache.guacamole.form.Field-">getValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValue-java.lang.String-">getValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#getValues--">getValues</a></span>()</code>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-org.apache.guacamole.form.Field-">removeValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</code>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#removeValue-java.lang.String-">removeValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-org.apache.guacamole.form.Field-java.lang.String-">setValue</a></span>(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the given field.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValue-java.lang.String-java.lang.String-">setValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the value of the field having the given name.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#setValues-java.util.Map-">setValues</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#getFields--">getFields</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="UserCredentials-java.util.Collection-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Creates a new UserCredentials object which requires the given fields and
+ values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+<dd><code>values</code> - The values required for each field, as a map of field name to
+     correct value.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo. The value required for each field in the
+ CredentialsInfo is defined in the given Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - The CredentialsInfo object describing the fields to require.</dd>
+<dd><code>values</code> - The values required for each field, as a map of field name to
+     correct value.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</pre>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - The CredentialsInfo object describing the fields to require.</dd>
+</dl>
+</li>
+</ul>
+<a name="UserCredentials-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>UserCredentials</h4>
+<pre>public&nbsp;UserCredentials(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&gt;&nbsp;fields)</pre>
+<div class="block">Creates a new UserCredentials object which requires the given fields but
+ does not yet have any defined values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>fields</code> - The fields to require.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getValues--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValues</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getValues()</pre>
+<div class="block">Returns a map of field names to values which backs this UserCredentials
+ object. Modifications to the returned map will directly affect the
+ associated name/value pairs.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of field names to their corresponding values which backs this
+     UserCredentials object.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValues-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValues</h4>
+<pre>public&nbsp;void&nbsp;setValues(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</pre>
+<div class="block">Replaces the map backing this UserCredentials object with the given map.
+ All field name/value pairs described by the original map are replaced by
+ the name/value pairs in the given map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>values</code> - The map of field names to their corresponding values which should be
+     used to back this UserCredentials object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value defined by this UserCrendentials object for the field
+ having the given name.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the field having the given name, or null if no value is
+     defined for that field.</dd>
+</dl>
+</li>
+</ul>
+<a name="getValue-org.apache.guacamole.form.Field-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</pre>
+<div class="block">Returns the value defined by this UserCrendentials object for the given
+ field.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the given field, or null if no value is defined for
+     that field.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;setValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value of the field having the given name. Any existing value
+ for that field is replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be assigned.</dd>
+<dd><code>value</code> - The value to assign to the field having the given name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="setValue-org.apache.guacamole.form.Field-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;setValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the value of the given field. Any existing value for that field is
+ replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be assigned.</dd>
+<dd><code>value</code> - The value to assign to the given field.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removeValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;removeValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes (undefines) the value of the field having the given name,
+ returning its previous value. If the field value was not defined, this
+ function has no effect, and null is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the field whose value should be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeValue-org.apache.guacamole.form.Field-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;removeValue(<a href="../../../../../../org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form">Field</a>&nbsp;field)</pre>
+<div class="block">Removes (undefines) the value of the given field returning its previous
+ value. If the field value was not defined, this function has no effect,
+ and null is returned.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>field</code> - The field whose value should be removed.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous value of the field, or null if the value of the field
+     was not previously defined.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserCredentials.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.credentials.CredentialsInfo">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html
new file mode 100644
index 0000000..be138da
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html
@@ -0,0 +1,302 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.CredentialsInfo" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.CredentialsInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span></code>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#EMPTY">EMPTY</a></span></code>
+<div class="block">CredentialsInfo object which describes empty credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">CredentialsInfo.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html#USERNAME_PASSWORD">USERNAME_PASSWORD</a></span></code>
+<div class="block">CredentialsInfo object which describes standard username/password
+ credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">GuacamoleCredentialsException.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#getCredentialsInfo--">getCredentialsInfo</a></span>()</code>
+<div class="block">Returns information describing the form of valid credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html#GuacamoleCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                             <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html#GuacamoleInsufficientCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInsufficientCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                         <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInsufficientCredentialsException with the given
+ cause and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.String-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;message,
+                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given
+ message, cause, and associated credential information.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html#GuacamoleInvalidCredentialsException-java.lang.Throwable-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">GuacamoleInvalidCredentialsException</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause,
+                                    <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;credentialsInfo)</code>
+<div class="block">Creates a new GuacamoleInvalidCredentialsException with the given cause
+ and associated credential information.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-">UserCredentials</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo but does not yet have any defined values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html#UserCredentials-org.apache.guacamole.net.auth.credentials.CredentialsInfo-java.util.Map-">UserCredentials</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>&nbsp;info,
+               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;values)</code>
+<div class="block">Creates a new UserCredentials object which requires fields described by
+ the given CredentialsInfo.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html" target="_top">Frames</a></li>
+<li><a href="CredentialsInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html
new file mode 100644
index 0000000..55cb257
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></span></code>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></span></code>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html
new file mode 100644
index 0000000..b3fd727
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInsufficientCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html
new file mode 100644
index 0000000..06cd65c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/GuacamoleInvalidCredentialsException.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html
new file mode 100644
index 0000000..50b3646
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.credentials.UserCredentials" class="title">Uses of Class<br>org.apache.guacamole.net.auth.credentials.UserCredentials</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Shareable.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Shareable.html#getSharingCredentials-java.lang.String-">getSharingCredentials</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns a full set of credentials which can be used to authenticate as a
+ user with access strictly to this object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html" target="_top">Frames</a></li>
+<li><a href="UserCredentials.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html
new file mode 100644
index 0000000..fd46389
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-frame.html
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.credentials</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">CredentialsInfo</a></li>
+<li><a href="UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">UserCredentials</a></li>
+</ul>
+<h2 title="Exceptions">Exceptions</h2>
+<ul title="Exceptions">
+<li><a href="GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleCredentialsException</a></li>
+<li><a href="GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInsufficientCredentialsException</a></li>
+<li><a href="GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials" target="classFrame">GuacamoleInvalidCredentialsException</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html
new file mode 100644
index 0000000..fcdabe6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-summary.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.credentials</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a></td>
+<td class="colLast">
+<div class="block">Information which describes a set of valid credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials">UserCredentials</a></td>
+<td class="colLast">
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
+<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Exception</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInsufficientCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are not sufficient for authentication to succeed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleInvalidCredentialsException</a></td>
+<td class="colLast">
+<div class="block">A security-related exception thrown when access is denied to a user because
+ the provided credentials are invalid.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html
new file mode 100644
index 0000000..6b78c21
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-tree.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.credentials Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.credentials Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.credentials</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a></li>
+</ul>
+</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleSecurityException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleUnauthorizedException
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="../../../../../../org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html
new file mode 100644
index 0000000..b763cd1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/credentials/package-use.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.credentials (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.credentials" class="title">Uses of Package<br>org.apache.guacamole.net.auth.credentials</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/UserCredentials.html#org.apache.guacamole.net.auth">UserCredentials</a>
+<div class="block">A fully-valid set of credentials and associated values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/CredentialsInfo.html#org.apache.guacamole.net.auth.credentials">CredentialsInfo</a>
+<div class="block">Information which describes a set of valid credentials.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/credentials/class-use/GuacamoleCredentialsException.html#org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a>
+<div class="block">A security-related exception thrown when access is denied to a user because
+ of a problem related to the provided credentials.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/credentials/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html
new file mode 100644
index 0000000..127d142
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-frame.html
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/guacamole/net/auth/package-summary.html" target="classFrame">org.apache.guacamole.net.auth</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="ActiveConnection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActiveConnection</span></a></li>
+<li><a href="ActivityRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecord</span></a></li>
+<li><a href="ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ActivityRecordSet</span></a></li>
+<li><a href="Attributes.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Attributes</span></a></li>
+<li><a href="AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticatedUser</span></a></li>
+<li><a href="AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">AuthenticationProvider</span></a></li>
+<li><a href="Connectable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connectable</span></a></li>
+<li><a href="Connection.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Connection</span></a></li>
+<li><a href="ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionGroup</span></a></li>
+<li><a href="ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecord</span></a></li>
+<li><a href="ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">ConnectionRecordSet</span></a></li>
+<li><a href="Directory.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Directory</span></a></li>
+<li><a href="Identifiable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Identifiable</span></a></li>
+<li><a href="Permissions.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Permissions</span></a></li>
+<li><a href="RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">RelatedObjectSet</span></a></li>
+<li><a href="Shareable.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">Shareable</span></a></li>
+<li><a href="SharingProfile.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">SharingProfile</span></a></li>
+<li><a href="User.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">User</span></a></li>
+<li><a href="UserContext.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserContext</span></a></li>
+<li><a href="UserGroup.html" title="interface in org.apache.guacamole.net.auth" target="classFrame"><span class="interfaceName">UserGroup</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractActiveConnection</a></li>
+<li><a href="AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticatedUser</a></li>
+<li><a href="AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractAuthenticationProvider</a></li>
+<li><a href="AbstractConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnection</a></li>
+<li><a href="AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractConnectionGroup</a></li>
+<li><a href="AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractIdentifiable</a></li>
+<li><a href="AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractSharingProfile</a></li>
+<li><a href="AbstractUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUser</a></li>
+<li><a href="AbstractUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserContext</a></li>
+<li><a href="AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">AbstractUserGroup</a></li>
+<li><a href="Credentials.html" title="class in org.apache.guacamole.net.auth" target="classFrame">Credentials</a></li>
+<li><a href="DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DecoratingDirectory</a></li>
+<li><a href="DelegatingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnection</a></li>
+<li><a href="DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingConnectionGroup</a></li>
+<li><a href="DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingDirectory</a></li>
+<li><a href="DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingSharingProfile</a></li>
+<li><a href="DelegatingUser.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUser</a></li>
+<li><a href="DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserContext</a></li>
+<li><a href="DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">DelegatingUserGroup</a></li>
+<li><a href="GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration</a></li>
+<li><a href="TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnection</a></li>
+<li><a href="TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingConnectionGroup</a></li>
+<li><a href="TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth" target="classFrame">TokenInjectingUserContext</a></li>
+<li><a href="User.Attribute.html" title="class in org.apache.guacamole.net.auth" target="classFrame">User.Attribute</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ActivityRecordSet.SortableProperty</a></li>
+<li><a href="ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">ConnectionGroup.Type</a></li>
+<li><a href="GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth" target="classFrame">GuacamoleProxyConfiguration.EncryptionMethod</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html
new file mode 100644
index 0000000..62869ae
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-summary.html
@@ -0,0 +1,507 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth</h1>
+<div class="docSummary">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a></td>
+<td class="colLast">
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a></td>
+<td class="colLast">
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</td>
+<td class="colLast">
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a></td>
+<td class="colLast">
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></td>
+<td class="colLast">
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a></td>
+<td class="colLast">
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></td>
+<td class="colLast">
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a></td>
+<td class="colLast">
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></td>
+<td class="colLast">
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></td>
+<td class="colLast">
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></td>
+<td class="colLast">
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a></td>
+<td class="colLast">
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></td>
+<td class="colLast">
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></td>
+<td class="colLast">
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></td>
+<td class="colLast">
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth">AbstractActiveConnection</a></td>
+<td class="colLast">
+<div class="block">Base implementation of an ActiveConnection, providing storage and simply
+ getters/setters for its main properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticatedUser</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of an AuthenticatedUser which uses the username to
+ determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></td>
+<td class="colLast">
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth">AbstractSharingProfile</a></td>
+<td class="colLast">
+<div class="block">Base implementation of a sharing profile which can be used to share a
+ Guacamole connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></td>
+<td class="colLast">
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></td>
+<td class="colLast">
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></td>
+<td class="colLast">
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></td>
+<td class="colLast">
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth">DecoratingDirectory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Directory implementation which simplifies decorating the objects within an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth">DelegatingConnection</a></td>
+<td class="colLast">
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth">DelegatingDirectory</a>&lt;ObjectType extends <a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth">DelegatingSharingProfile</a></td>
+<td class="colLast">
+<div class="block">SharingProfile implementation which simply delegates all function calls to an
+ underlying SharingProfile.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth">DelegatingUser</a></td>
+<td class="colLast">
+<div class="block">User implementation which simply delegates all function calls to an
+ underlying User.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth">DelegatingUserContext</a></td>
+<td class="colLast">
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth">DelegatingUserGroup</a></td>
+<td class="colLast">
+<div class="block">UserGroup implementation which simply delegates all function calls to an
+ underlying UserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration</a></td>
+<td class="colLast">
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnection</a></td>
+<td class="colLast">
+<div class="block">Connection implementation which overrides the connect() function of an
+ underlying Connection, adding a given set of parameter tokens to the tokens
+ already supplied.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth">TokenInjectingConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">ConnectionGroup implementation which overrides the connect() function of an
+ underlying ConnectionGroup, adding a given set of parameter tokens to the
+ tokens already supplied.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth">TokenInjectingUserContext</a></td>
+<td class="colLast">
+<div class="block">UserContext implementation which decorates a given UserContext,
+ automatically applying additional parameter tokens during the connection
+ process of any retrieved Connections and ConnectionGroups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></td>
+<td class="colLast">
+<div class="block">All standard attribute names with semantics defined by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></td>
+<td class="colLast">
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></td>
+<td class="colLast">
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a></td>
+<td class="colLast">
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth Description">Package org.apache.guacamole.net.auth Description</h2>
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html
new file mode 100644
index 0000000..2a11c07
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-tree.html
@@ -0,0 +1,256 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;ObjectType&gt;</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;RecordType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;ObjectType&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/language/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html
new file mode 100644
index 0000000..4da4ebd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/package-use.html
@@ -0,0 +1,587 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth" class="title">Uses of Package<br>org.apache.guacamole.net.auth</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.html#org.apache.guacamole.environment">GuacamoleProxyConfiguration</a>
+<div class="block">Information which describes how the connection to guacd should be
+ established.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html#org.apache.guacamole.net.auth">AbstractIdentifiable</a>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActiveConnection.html#org.apache.guacamole.net.auth">ActiveConnection</a>
+<div class="block">A pairing of username and GuacamoleTunnel representing an active usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecord.html#org.apache.guacamole.net.auth">ActivityRecord</a>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html#org.apache.guacamole.net.auth">ActivityRecordSet</a>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html#org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Attributes.html#org.apache.guacamole.net.auth">Attributes</a>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.auth">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html#org.apache.guacamole.net.auth">AuthenticationProvider</a>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connectable.html#org.apache.guacamole.net.auth">Connectable</a>
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connection.html#org.apache.guacamole.net.auth">Connection</a>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.html#org.apache.guacamole.net.auth">ConnectionGroup</a>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.Type.html#org.apache.guacamole.net.auth">ConnectionGroup.Type</a>
+<div class="block">All legal types of connection group.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecord.html#org.apache.guacamole.net.auth">ConnectionRecord</a>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.auth">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingConnection.html#org.apache.guacamole.net.auth">DelegatingConnection</a>
+<div class="block">Connection implementation which simply delegates all function calls to an
+ underlying Connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingConnectionGroup.html#org.apache.guacamole.net.auth">DelegatingConnectionGroup</a>
+<div class="block">ConnectionGroup implementation which simply delegates all function calls to
+ an underlying ConnectionGroup.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingDirectory.html#org.apache.guacamole.net.auth">DelegatingDirectory</a>
+<div class="block">Directory implementation which simply delegates all function calls to an
+ underlying Directory.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/DelegatingUserContext.html#org.apache.guacamole.net.auth">DelegatingUserContext</a>
+<div class="block">UserContext implementation which simply delegates all function calls to
+ an underlying UserContext.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Directory.html#org.apache.guacamole.net.auth">Directory</a>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/GuacamoleProxyConfiguration.EncryptionMethod.html#org.apache.guacamole.net.auth">GuacamoleProxyConfiguration.EncryptionMethod</a>
+<div class="block">All possible types of encryption used by guacd.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Identifiable.html#org.apache.guacamole.net.auth">Identifiable</a>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Permissions.html#org.apache.guacamole.net.auth">Permissions</a>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html#org.apache.guacamole.net.auth">RelatedObjectSet</a>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Shareable.html#org.apache.guacamole.net.auth">Shareable</a>
+<div class="block">An object which can be shared with others via specially-generated sets of
+ credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/SharingProfile.html#org.apache.guacamole.net.auth">SharingProfile</a>
+<div class="block">Represents the semantics which apply to an existing connection when shared,
+ along with a human-readable name and unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/User.html#org.apache.guacamole.net.auth">User</a>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserContext.html#org.apache.guacamole.net.auth">UserContext</a>
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserGroup.html#org.apache.guacamole.net.auth">UserGroup</a>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractAuthenticationProvider.html#org.apache.guacamole.net.auth.simple">AbstractAuthenticationProvider</a>
+<div class="block">Base implementation of AuthenticationProvider which provides default
+ implementations of most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractConnection.html#org.apache.guacamole.net.auth.simple">AbstractConnection</a>
+<div class="block">Basic implementation of a Guacamole connection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractConnectionGroup.html#org.apache.guacamole.net.auth.simple">AbstractConnectionGroup</a>
+<div class="block">Basic implementation of a Guacamole connection group.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractIdentifiable.html#org.apache.guacamole.net.auth.simple">AbstractIdentifiable</a>
+<div class="block">Abstract implementation of Identifiable which provides equals() and
+ hashCode() implementations which use the identifier to determine equality.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUser.html#org.apache.guacamole.net.auth.simple">AbstractUser</a>
+<div class="block">Base implementation of User which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUserContext.html#org.apache.guacamole.net.auth.simple">AbstractUserContext</a>
+<div class="block">Base implementation of UserContext which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AbstractUserGroup.html#org.apache.guacamole.net.auth.simple">AbstractUserGroup</a>
+<div class="block">Base implementation of UserGroup which provides default implementations of
+ most functions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecord.html#org.apache.guacamole.net.auth.simple">ActivityRecord</a>
+<div class="block">A logging record describing when a user started and ended a particular
+ activity.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.html#org.apache.guacamole.net.auth.simple">ActivityRecordSet</a>
+<div class="block">A set of all available records related to a type of activity which has a
+ defined start and end time, such as a user being logged in or connected, or a
+ subset of those records.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ActivityRecordSet.SortableProperty.html#org.apache.guacamole.net.auth.simple">ActivityRecordSet.SortableProperty</a>
+<div class="block">All properties of activity records which can be used as sorting
+ criteria.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Attributes.html#org.apache.guacamole.net.auth.simple">Attributes</a>
+<div class="block">An object which is associated with a set of arbitrary attributes, defined
+ as name/value pairs.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.auth.simple">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticationProvider.html#org.apache.guacamole.net.auth.simple">AuthenticationProvider</a>
+<div class="block">Provides means of authorizing users and for accessing and managing data
+ associated with those users.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connectable.html#org.apache.guacamole.net.auth.simple">Connectable</a>
+<div class="block">An object which Guacamole can connect to.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Connection.html#org.apache.guacamole.net.auth.simple">Connection</a>
+<div class="block">Represents a pairing of a GuacamoleConfiguration with a unique,
+ human-readable identifier, and abstracts the connection process.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionGroup.html#org.apache.guacamole.net.auth.simple">ConnectionGroup</a>
+<div class="block">Represents a connection group, which can contain both other connection groups
+ as well as connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecord.html#org.apache.guacamole.net.auth.simple">ConnectionRecord</a>
+<div class="block">A logging record describing when a user started and ended usage of a
+ particular connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/ConnectionRecordSet.html#org.apache.guacamole.net.auth.simple">ConnectionRecordSet</a>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><code>ActivityRecordSet</code></a>&lt;<a href="../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt; instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.auth.simple">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Directory.html#org.apache.guacamole.net.auth.simple">Directory</a>
+<div class="block">Provides access to a collection of all objects with associated identifiers,
+ and allows user manipulation and removal.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Identifiable.html#org.apache.guacamole.net.auth.simple">Identifiable</a>
+<div class="block">An object which has a deterministic, unique identifier, which may not be
+ null.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Permissions.html#org.apache.guacamole.net.auth.simple">Permissions</a>
+<div class="block">An object which may be granted permissions to access/manipulate various
+ other objects or aspects of the system.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/RelatedObjectSet.html#org.apache.guacamole.net.auth.simple">RelatedObjectSet</a>
+<div class="block">An arbitrary set of existing objects sharing some common relation.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/User.html#org.apache.guacamole.net.auth.simple">User</a>
+<div class="block">A user of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserContext.html#org.apache.guacamole.net.auth.simple">UserContext</a>
+<div class="block">The context of an active user.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/UserGroup.html#org.apache.guacamole.net.auth.simple">UserGroup</a>
+<div class="block">A user group of the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.net.event">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.net.event">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> used by <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/AuthenticatedUser.html#org.apache.guacamole.token">AuthenticatedUser</a>
+<div class="block">A user of the Guacamole web application who has been authenticated by an
+ AuthenticationProvider.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/auth/class-use/Credentials.html#org.apache.guacamole.token">Credentials</a>
+<div class="block">Simple arbitrary set of credentials, including a username/password pair,
+ the HttpServletRequest associated with the request for authorization
+ (if any) and the HttpSession associated with that request.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/auth/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html
new file mode 100644
index 0000000..2142858
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html
@@ -0,0 +1,395 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Enum ObjectPermission.Type" class="title">Enum ObjectPermission.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.ObjectPermission.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">ObjectPermission.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</pre>
+<div class="block">Specific types of object-level permissions. Each permission type is
+ related to a specific class of object-level operation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#ADMINISTER">ADMINISTER</a></span></code>
+<div class="block">Change who has access to an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#DELETE">DELETE</a></span></code>
+<div class="block">Delete an object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#READ">READ</a></span></code>
+<div class="block">Read data within an object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#UPDATE">UPDATE</a></span></code>
+<div class="block">Update data within an object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="READ">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>READ</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> READ</pre>
+<div class="block">Read data within an object.</div>
+</li>
+</ul>
+<a name="UPDATE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>UPDATE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> UPDATE</pre>
+<div class="block">Update data within an object.</div>
+</li>
+</ul>
+<a name="DELETE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DELETE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> DELETE</pre>
+<div class="block">Delete an object.</div>
+</li>
+</ul>
+<a name="ADMINISTER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ADMINISTER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> ADMINISTER</pre>
+<div class="block">Change who has access to an object.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (ObjectPermission.Type c : ObjectPermission.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html
new file mode 100644
index 0000000..351308d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermission.html
@@ -0,0 +1,391 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Class ObjectPermission" class="title">Class ObjectPermission</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.ObjectPermission</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ObjectPermission</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</pre>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span></code>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getObjectIdentifier--">getObjectIdentifier</a></span>()</code>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ObjectPermission</h4>
+<pre>public&nbsp;ObjectPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.
+ The identifier must be the unique identifier assigned to the object
+ associated with this permission by the AuthenticationProvider in use.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of operation affected by this permission.</dd>
+<dd><code>identifier</code> - The identifier of the object associated with the operation affected
+     by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getObjectIdentifier--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjectIdentifier</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getObjectIdentifier()</pre>
+<div class="block">Returns the identifier of the specific object affected by this
+ permission.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The identifier of the specific object affected by this
+         permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">Permission</a></code></span></div>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html
new file mode 100644
index 0000000..a2bf373
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html
@@ -0,0 +1,488 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface ObjectPermissionSet" class="title">Interface ObjectPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">ObjectPermissionSet</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</pre>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                      <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessibleObjects-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessibleObjects</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAccessibleObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers. The identifier of an object is returned
+ in a new collection if at least one of the specified permissions is
+ granted for that object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to check. An identifier will be included in the
+     resulting collection if at least one of these permissions is granted
+     for the associated object</dd>
+<dd><code>identifiers</code> - The identifiers of the objects affected by the permissions being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing the subset of identifiers for which at least
+     one of the specified permissions is granted.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;getPermissions()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html
new file mode 100644
index 0000000..ee1d0a8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/Permission.html
@@ -0,0 +1,251 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface Permission" class="title">Interface Permission&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The enumeration of all available operation types that this permission
+     can affect.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Permission&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</span></pre>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getType</h4>
+<pre><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="type parameter in Permission">Type</a>&nbsp;getType()</pre>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Permission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html
new file mode 100644
index 0000000..80420e9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/PermissionSet.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>PermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="PermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface PermissionSet" class="title">Interface PermissionSet&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>PermissionType</code> - The type of permission stored within this PermissionSet.</dd>
+</dl>
+<dl>
+<dt>All Known Subinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">PermissionSet&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</span></pre>
+<div class="block">An arbitrary set of permissions.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;getPermissions()
+                            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="type parameter in PermissionSet">PermissionType</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/PermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html
new file mode 100644
index 0000000..18fd7ce
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.Type.html
@@ -0,0 +1,429 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Enum SystemPermission.Type" class="title">Enum SystemPermission.Type</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">java.lang.Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.SystemPermission.Type</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</dd>
+</dl>
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static enum <span class="typeNameLabel">SystemPermission.Type</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</pre>
+<div class="block">Specific types of system-level permissions. Each permission type is
+ related to a specific class of system-level operation.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.summary">
+<!--   -->
+</a>
+<h3>Enum Constant Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Constant Summary table, listing enum constants, and an explanation">
+<caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Enum Constant and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#ADMINISTER">ADMINISTER</a></span></code>
+<div class="block">Administer the system in general, including adding permissions
+ which affect the system (like user creation, connection creation,
+ and system administration).</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_CONNECTION">CREATE_CONNECTION</a></span></code>
+<div class="block">Create connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_CONNECTION_GROUP">CREATE_CONNECTION_GROUP</a></span></code>
+<div class="block">Create connection groups.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_SHARING_PROFILE">CREATE_SHARING_PROFILE</a></span></code>
+<div class="block">Create sharing profiles.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_USER">CREATE_USER</a></span></code>
+<div class="block">Create users.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#CREATE_USER_GROUP">CREATE_USER_GROUP</a></span></code>
+<div class="block">Create user groups.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Enum">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#compareTo-E-" title="class or interface in java.lang">compareTo</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#getDeclaringClass--" title="class or interface in java.lang">getDeclaringClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#name--" title="class or interface in java.lang">name</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#ordinal--" title="class or interface in java.lang">ordinal</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true#valueOf-java.lang.Class-java.lang.String-" title="class or interface in java.lang">valueOf</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ ENUM CONSTANT DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="enum.constant.detail">
+<!--   -->
+</a>
+<h3>Enum Constant Detail</h3>
+<a name="CREATE_USER">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_USER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_USER</pre>
+<div class="block">Create users.</div>
+</li>
+</ul>
+<a name="CREATE_USER_GROUP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_USER_GROUP</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_USER_GROUP</pre>
+<div class="block">Create user groups.</div>
+</li>
+</ul>
+<a name="CREATE_CONNECTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_CONNECTION</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_CONNECTION</pre>
+<div class="block">Create connections.</div>
+</li>
+</ul>
+<a name="CREATE_CONNECTION_GROUP">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_CONNECTION_GROUP</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_CONNECTION_GROUP</pre>
+<div class="block">Create connection groups.</div>
+</li>
+</ul>
+<a name="CREATE_SHARING_PROFILE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CREATE_SHARING_PROFILE</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> CREATE_SHARING_PROFILE</pre>
+<div class="block">Create sharing profiles.</div>
+</li>
+</ul>
+<a name="ADMINISTER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ADMINISTER</h4>
+<pre>public static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> ADMINISTER</pre>
+<div class="block">Administer the system in general, including adding permissions
+ which affect the system (like user creation, connection creation,
+ and system administration).</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="values--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>values</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]&nbsp;values()</pre>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.  This method may be used to iterate
+over the constants as follows:
+<pre>
+for (SystemPermission.Type c : SystemPermission.Type.values())
+&nbsp;   System.out.println(c);
+</pre></div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>an array containing the constants of this enum type, in the order they are declared</dd>
+</dl>
+</li>
+</ul>
+<a name="valueOf-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>valueOf</h4>
+<pre>public static&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;valueOf(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the enum constant of this type with the specified name.
+The string must match <i>exactly</i> an identifier used to declare an
+enum constant in this type.  (Extraneous whitespace characters are 
+not permitted.)</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - the name of the enum constant to be returned.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the enum constant with the specified name</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</a></code> - if this enum type has no constant with the specified name</dd>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the argument is null</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.Type.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html
new file mode 100644
index 0000000..165cdd8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermission.html
@@ -0,0 +1,364 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Class SystemPermission" class="title">Class SystemPermission</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.permission.SystemPermission</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SystemPermission</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</pre>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span></code>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</code>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType</a></span>()</code>
+<div class="block">Returns the type of operation affected by this permission.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SystemPermission</h4>
+<pre>public&nbsp;SystemPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</pre>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>type</code> - The type of operation controlled by this permission.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getType--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getType</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;getType()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">Permission</a></code></span></div>
+<div class="block">Returns the type of operation affected by this permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html#getType--">getType</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The type of operation affected by this permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;hashCode()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;equals(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermission.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html
new file mode 100644
index 0000000..7c4f920
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/SystemPermissionSet.html
@@ -0,0 +1,432 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.permission</div>
+<h2 title="Interface SystemPermissionSet" class="title">Interface SystemPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Superinterfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">SystemPermissionSet</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</pre>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="EMPTY_SET">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>EMPTY_SET</h4>
+<pre>static final&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> EMPTY_SET</pre>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Adds the specified permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Removes the specified permission.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;getPermissions()
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if permissions
+     cannot be retrieved due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html
new file mode 100644
index 0000000..b9e305b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html
@@ -0,0 +1,323 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.ObjectPermission.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissions,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html#ObjectPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;type,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new ObjectPermission having the given type and identifier.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html
new file mode 100644
index 0000000..74f5018
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.ObjectPermission" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.ObjectPermission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html
new file mode 100644
index 0000000..efea2fa
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html
@@ -0,0 +1,412 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.ObjectPermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.ObjectPermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>
+<div class="block">Returns all permissions given to this object regarding currently-active
+ connections.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>
+<div class="block">Returns all sharing profile permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>
+<div class="block">Returns all user group permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserGroupPermissions--">getUserGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">ObjectPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of ObjectPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></span></code>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="ObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html
new file mode 100644
index 0000000..cbc9980
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/Permission.html
@@ -0,0 +1,204 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.Permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.Permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.Permission" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.Permission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;PermissionType extends <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</span></code>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></span></code>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span></code>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/Permission.html" target="_top">Frames</a></li>
+<li><a href="Permission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html
new file mode 100644
index 0000000..4411ab7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.PermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.PermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subinterfaces, and an explanation">
+<caption><span>Subinterfaces of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Interface and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></span></code>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>interface&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span></code>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></span></code>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></span></code>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html" target="_top">Frames</a></li>
+<li><a href="PermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html
new file mode 100644
index 0000000..bdfd3cb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html
@@ -0,0 +1,267 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission.Type" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.SystemPermission.Type</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#getType--">getType</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#valueOf-java.lang.String-">valueOf</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the enum constant of this type with the specified name.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>[]</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermission.Type.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html#values--">values</a></span>()</code>
+<div class="block">Returns an array containing the constants of this enum type, in
+the order they are declared.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html#SystemPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;type)</code>
+<div class="block">Creates a new SystemPermission with the given
+ type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with parameters of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.Type.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html
new file mode 100644
index 0000000..1cb7aa1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.permission.SystemPermission" class="title">Uses of Class<br>org.apache.guacamole.net.auth.permission.SystemPermission</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that return types with arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Method parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><span class="typeNameLabel">SimpleSystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructor parameters in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> with type arguments of type <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html" target="_top">Frames</a></li>
+<li><a href="SystemPermission.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html
new file mode 100644
index 0000000..b56c6a5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.auth.permission.SystemPermissionSet" class="title">Uses of Interface<br>org.apache.guacamole.net.auth.permission.SystemPermissionSet</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a> that return <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">AbstractUserGroup.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Permissions.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/Permissions.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>
+<div class="block">Returns all system-level permissions given to this object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">DelegatingUser.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/DelegatingUser.html#getSystemPermissions--">getSystemPermissions</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> declared as <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></td>
+<td class="colLast"><span class="typeNameLabel">SystemPermissionSet.</span><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></span></code>
+<div class="block">An immutable instance of SystemPermissionSet which contains no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> that implement <a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></span></code>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html
new file mode 100644
index 0000000..6cd5f8d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.permission</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">ObjectPermissionSet</span></a></li>
+<li><a href="Permission.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">Permission</span></a></li>
+<li><a href="PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">PermissionSet</span></a></li>
+<li><a href="SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission" target="classFrame"><span class="interfaceName">SystemPermissionSet</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission</a></li>
+<li><a href="SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission</a></li>
+</ul>
+<h2 title="Enums">Enums</h2>
+<ul title="Enums">
+<li><a href="ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">ObjectPermission.Type</a></li>
+<li><a href="SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission" target="classFrame">SystemPermission.Type</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html
new file mode 100644
index 0000000..f20b912
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-summary.html
@@ -0,0 +1,235 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.permission</h1>
+<div class="docSummary">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang">Enum</a>&gt;</td>
+<td class="colLast">
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;PermissionType extends <a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&gt;</td>
+<td class="colLast">
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a></td>
+<td class="colLast">
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a></td>
+<td class="colLast">
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Enum Summary table, listing enums, and an explanation">
+<caption><span>Enum Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Enum</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a></td>
+<td class="colLast">
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a></td>
+<td class="colLast">
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth.permission Description">Package org.apache.guacamole.net.auth.permission Description</h2>
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html
new file mode 100644
index 0000000..790dbf1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-tree.html
@@ -0,0 +1,173 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.permission Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.permission Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.permission</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;PermissionType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/credentials/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html
new file mode 100644
index 0000000..8958ece
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/permission/package-use.html
@@ -0,0 +1,301 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.permission (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.permission" class="title">Uses of Package<br>org.apache.guacamole.net.auth.permission</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.permission">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.permission">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html#org.apache.guacamole.net.auth.permission">ObjectPermission</a>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html#org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/Permission.html#org.apache.guacamole.net.auth.permission">Permission</a>
+<div class="block">A permission which affects a specific type of operation, where all available
+ operation types are defined by an enumeration.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html#org.apache.guacamole.net.auth.permission">PermissionSet</a>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html#org.apache.guacamole.net.auth.permission">SystemPermission</a>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html#org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.html#org.apache.guacamole.net.auth.simple">ObjectPermission</a>
+<div class="block">A permission which affects a specific object, rather than the system as a
+ whole.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermission.Type.html#org.apache.guacamole.net.auth.simple">ObjectPermission.Type</a>
+<div class="block">Specific types of object-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/ObjectPermissionSet.html#org.apache.guacamole.net.auth.simple">ObjectPermissionSet</a>
+<div class="block">A set of permissions which affect arbitrary objects, where each object has
+ an associated unique identifier.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/PermissionSet.html#org.apache.guacamole.net.auth.simple">PermissionSet</a>
+<div class="block">An arbitrary set of permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.html#org.apache.guacamole.net.auth.simple">SystemPermission</a>
+<div class="block">A permission which affects the system as a whole, rather than an individual
+ object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermission.Type.html#org.apache.guacamole.net.auth.simple">SystemPermission.Type</a>
+<div class="block">Specific types of system-level permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/permission/class-use/SystemPermissionSet.html#org.apache.guacamole.net.auth.simple">SystemPermissionSet</a>
+<div class="block">A set of permissions which affects the system as a whole.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/permission/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html
new file mode 100644
index 0000000..b0d2197
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html
@@ -0,0 +1,431 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleActivityRecordSet" class="title">Class SimpleActivityRecordSet&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet&lt;RecordType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>RecordType</code> - The type of ActivityRecord contained within this set.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleActivityRecordSet&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;</pre>
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#SimpleActivityRecordSet--">SimpleActivityRecordSet</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleActivityRecordSet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleActivityRecordSet</h4>
+<pre>public&nbsp;SimpleActivityRecordSet()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;asCollection()
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;limit(int&nbsp;limit)
+                                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a>&gt;&nbsp;sort(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                          boolean&nbsp;desc)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="type parameter in SimpleActivityRecordSet">RecordType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleActivityRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html
new file mode 100644
index 0000000..5393e65
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html
@@ -0,0 +1,420 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":6,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleAuthenticationProvider" class="title">Class SimpleAuthenticationProvider</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractAuthenticationProvider</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">SimpleAuthenticationProvider</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></pre>
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object. This is a simple AuthenticationProvider
+ implementation intended to be easily extended. It is useful for simple
+ authentication situations where access to web-based administration and
+ complex users and permissions are not required.
+
+ The interface provided by SimpleAuthenticationProvider is similar to that of
+ the AuthenticationProvider interface of older Guacamole releases.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#SimpleAuthenticationProvider--">SimpleAuthenticationProvider</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>abstract <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">getAuthorizedConfigurations</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractAuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#decorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">decorate</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getResource--">getResource</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#redecorate-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">redecorate</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#shutdown--">shutdown</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateAuthenticatedUser-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateAuthenticatedUser</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#updateUserContext-org.apache.guacamole.net.auth.UserContext-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-">updateUserContext</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AuthenticationProvider">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getIdentifier--">getIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleAuthenticationProvider</h4>
+<pre>public&nbsp;SimpleAuthenticationProvider()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthorizedConfigurations-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthorizedConfigurations</h4>
+<pre>public abstract&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;getAuthorizedConfigurations(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                                                                                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Given an arbitrary credentials object, returns a Map containing all
+ configurations authorized by those credentials. The keys of this Map
+ are Strings which uniquely identify each configuration.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use to retrieve authorized
+                    configurations.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Map of all configurations authorized by the given credentials,
+         or null if the credentials given are not authorized.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            configurations.</dd>
+</dl>
+</li>
+</ul>
+<a name="authenticateUser-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>authenticateUser</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticateUser(<a href="../../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)
+                                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">AbstractAuthenticationProvider</a></code></span></div>
+<div class="block">Returns an AuthenticatedUser representing the user authenticated by the
+ given credentials, if any.
+
+ <p>This implementation performs no authentication whatsoever, ignoring
+ the provided <code>credentials</code> and simply returning <code>null</code>. Any
+ authentication attempt will thus fall through to other
+ <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations, perhaps within other
+ installed extensions, with this <code>AuthenticationProvider</code> making no
+ claim regarding the user's identity nor whether the user should be
+ allowed or disallowed from accessing Guacamole. Implementations that wish
+ to authenticate users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#authenticateUser-org.apache.guacamole.net.auth.Credentials-">authenticateUser</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials to use for authentication.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An AuthenticatedUser representing the user authenticated by the
+     given credentials, if any, or null if the credentials are invalid.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while authenticating the user, or if access is
+     temporarily, permanently, or conditionally denied, such as if the
+     supplied credentials are insufficient or invalid.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserContext</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>&nbsp;getUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">AbstractAuthenticationProvider</a></code></span></div>
+<div class="block">Returns the UserContext of the user authenticated by the given
+ credentials.
+
+ <p>This implementation simply returns <code>null</code>, effectively allowing
+ authentication to continue but refusing to provide data for the given
+ user. Implementations that wish to veto the authentication results of
+ other <a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><code>AuthenticationProvider</code></a> implementations or provide data for
+ authenticated users should override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html#getUserContext-org.apache.guacamole.net.auth.AuthenticatedUser-">getUserContext</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth">AbstractAuthenticationProvider</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - An AuthenticatedUser object representing the user authenticated by
+     an arbitrary set of credentials. The AuthenticatedUser may come from
+     this AuthenticationProvider or any other installed
+     AuthenticationProvider.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A UserContext describing the permissions, connection, connection
+     groups, etc. accessible or associated with the given authenticated
+     user, or null if this AuthenticationProvider refuses to provide any
+     such data.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the UserContext.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleAuthenticationProvider.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html
new file mode 100644
index 0000000..2001d88
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnection.html
@@ -0,0 +1,673 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnection" class="title">Class SimpleConnection</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractConnection</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnection</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleConnection</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></pre>
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.
+ Parameter tokens provided to connect() are automatically applied if
+ explicitly requested. Tracking of active connections and connection history
+ is not provided.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection--">SimpleConnection</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-boolean-">SimpleConnection</a></span>(boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a completely uninitialized SimpleConnection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">SimpleConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">SimpleConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config,
+                boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected org.apache.guacamole.protocol.GuacamoleConfiguration</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--">getFullConfiguration</a></span>()</code>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getHistory--">getHistory</a></span>()</code>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getLastActive--">getLastActive</a></span>()</code>
+<div class="block">Returns the date and time that this connection was last used.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></span>(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</code>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractConnection">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--">getConfiguration</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getName--">getName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getSharingProfileIdentifiers--">getSharingProfileIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setName-java.lang.String-">setName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection()</pre>
+<div class="block">Creates a completely uninitialized SimpleConnection. The name,
+ identifier, and configuration of this SimpleConnection must eventually
+ be set before the SimpleConnection may be used. Parameter tokens within
+ the GuacamoleConfiguration eventually supplied with
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>
+ will not be interpreted.</div>
+</li>
+</ul>
+<a name="SimpleConnection-boolean-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a completely uninitialized SimpleConnection. The name,
+ identifier, and configuration of this SimpleConnection must eventually
+ be set before the SimpleConnection may be used. Parameter tokens within
+ the GuacamoleConfiguration eventually supplied with
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>
+ will not be interpreted unless explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfiguration
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                        org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration. Parameter tokens within the
+ GuacamoleConfiguration will not be interpreted unless explicitly
+ requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection.</dd>
+<dd><code>config</code> - The configuration describing how to connect to this connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleConnection-java.lang.String-java.lang.String-org.apache.guacamole.protocol.GuacamoleConfiguration-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnection</h4>
+<pre>public&nbsp;SimpleConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                        org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config,
+                        boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a new SimpleConnection having the given identifier and
+ GuacamoleConfiguration. Parameter tokens will be interpreted if
+ explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection.</dd>
+<dd><code>config</code> - The configuration describing how to connect to this connection.</dd>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfiguration
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getFullConfiguration--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getFullConfiguration</h4>
+<pre>protected&nbsp;org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;getFullConfiguration()</pre>
+<div class="block">Returns the GuacamoleConfiguration describing how to connect to this
+ connection. Unlike <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#getConfiguration--"><code>AbstractConnection.getConfiguration()</code></a>, which is allowed to omit
+ or tokenize information, the GuacamoleConfiguration returned by this
+ function will always be the full configuration to be used to establish
+ the connection, as provided when this SimpleConnection was created or via
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-"><code>setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration)</code></a>.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The full GuacamoleConfiguration describing how to connect to this
+     connection, without any information omitted or tokenized.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConfiguration</h4>
+<pre>public&nbsp;void&nbsp;setConfiguration(org.apache.guacamole.protocol.GuacamoleConfiguration&nbsp;config)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">Connection</a></code></span></div>
+<div class="block">Sets the GuacamoleConfiguration associated with this Connection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html#setConfiguration-org.apache.guacamole.protocol.GuacamoleConfiguration-">setConfiguration</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth">AbstractConnection</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>config</code> - The GuacamoleConfiguration to associate with this
+               Connection.</dd>
+</dl>
+</li>
+</ul>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.
+
+ <p>This implementation will connect using the GuacamoleConfiguration
+ returned by <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html#getFullConfiguration--"><code>getFullConfiguration()</code></a>, honoring the
+ "guacd-hostname", "guacd-port", and "guacd-ssl" properties set within
+ guacamole.properties. Parameter tokens will be taken into account if
+ the SimpleConnection was explicitly requested to do so when created.
+
+ <p>Implementations requiring more complex behavior should consider using
+ the <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><code>AbstractConnection</code></a> base class or implementing
+ <a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><code>Connection</code></a> directly.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+<a name="getLastActive--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getLastActive</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Date.html?is-external=true" title="class or interface in java.util">Date</a>&nbsp;getLastActive()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getLastActive--">Connection</a></code></span></div>
+<div class="block">Returns the date and time that this connection was last used. If the
+ connection was never used, the time that the connection was last used is
+ unknown, or this information is not visible to the current user, this
+ may be null.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The date and time this connection was last used, or null if this
+     information is unavailable or inapplicable.</dd>
+</dl>
+</li>
+</ul>
+<a name="getHistory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getHistory</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;getHistory()
+                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html#getHistory--">Connection</a></code></span></div>
+<div class="block">Returns a list of ConnectionRecords representing the usage history
+ of this Connection, including any active users. ConnectionRecords
+ in this list will be sorted in descending order of end time (active
+ connections are first), and then in descending order of start time
+ (newer connections are first).</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A list of ConnectionRecrods representing the usage history
+         of this Connection.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while reading the history
+                            of this connection, or if permission is
+                            denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnection.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html
new file mode 100644
index 0000000..b0c5415
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html
@@ -0,0 +1,354 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionDirectory" class="title">Class SimpleConnectionDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of
+ GuacamoleConfigurations which provides access to a pre-defined Map of
+ GuacamoleConfigurations.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#SimpleConnectionDirectory-java.util.Collection-">SimpleConnectionDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#putConnection-org.apache.guacamole.net.auth.Connection-">putConnection</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html#removeConnection-java.lang.String-">removeConnection</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionDirectory</h4>
+<pre>public&nbsp;SimpleConnectionDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;connections)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionDirectory which provides access to the
+ connections contained within the given Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connections</code> - A Collection of all connections that should be present in this
+     connection directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="putConnection-org.apache.guacamole.net.auth.Connection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putConnection</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;putConnection(<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;connection)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the Connections in this Directory.
+ Returns the previous connection for the given identifier, if found.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The connection to add or update the Directory with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection for the connection identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeConnection-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeConnection</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&nbsp;removeConnection(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a Connection from this Directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the Connection to remove.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection for the given identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html
new file mode 100644
index 0000000..3f630a7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html
@@ -0,0 +1,537 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionGroup" class="title">Class SimpleConnectionGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractConnectionGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleConnectionGroup</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></pre>
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with. Load balancing across this connection group is not allowed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ConnectionGroup">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth">ConnectionGroup.Type</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">SimpleConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">connect</a></span>(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+       <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getActiveConnections--">getActiveConnections</a></span>()</code>
+<div class="block">Returns the number of active connections associated with this object.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getAttributes--">getAttributes</a></span>()</code>
+<div class="block">Returns all attributes associated with this object.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionGroupIdentifiers--">getConnectionGroupIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#getConnectionIdentifiers--">getConnectionIdentifiers</a></span>()</code>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html#setAttributes-java.util.Map-">setAttributes</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</code>
+<div class="block">Sets the given attributes.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractConnectionGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth">AbstractConnectionGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getName--">getName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getParentIdentifier--">getParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#getType--">getType</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setName-java.lang.String-">setName</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setParentIdentifier-java.lang.String-">setParentIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html#setType-org.apache.guacamole.net.auth.ConnectionGroup.Type-">setType</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionGroup-java.lang.String-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionGroup</h4>
+<pre>public&nbsp;SimpleConnectionGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block">Creates a new SimpleConnectionGroup having the given name and identifier
+ which will expose the given contents.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name to associate with this connection group.</dd>
+<dd><code>identifier</code> - The identifier to associate with this connection group.</dd>
+<dd><code>connectionIdentifiers</code> - The connection identifiers to expose when requested.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The connection group identifiers to expose when requested.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getActiveConnections--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getActiveConnections</h4>
+<pre>public&nbsp;int&nbsp;getActiveConnections()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#getActiveConnections--">Connectable</a></code></span></div>
+<div class="block">Returns the number of active connections associated with this object.
+ Implementations may simply return 0 if this value is not tracked.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The number of active connections associated with this object.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionIdentifiers()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connections that are children
+ of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connections that are children
+     of this connection group.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getConnectionGroupIdentifiers()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html#getConnectionGroupIdentifiers--">ConnectionGroup</a></code></span></div>
+<div class="block">Returns the identifiers of all readable connection groups that are
+ children of this connection group.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The set of identifiers of all readable connection groups that are
+     children of this connection group.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAttributes--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAttributes</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAttributes()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#getAttributes--">Attributes</a></code></span></div>
+<div class="block">Returns all attributes associated with this object. The returned map
+ may not be modifiable.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all attribute identifiers to their corresponding values,
+     for all attributes associated with this object, which may not be
+     modifiable.</dd>
+</dl>
+</li>
+</ul>
+<a name="setAttributes-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setAttributes</h4>
+<pre>public&nbsp;void&nbsp;setAttributes(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;attributes)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html#setAttributes-java.util.Map-">Attributes</a></code></span></div>
+<div class="block">Sets the given attributes. If an attribute within the map is not
+ supported, it will simply be dropped. Any attributes not within the given
+ map will be left untouched. Attributes which are not declared within the
+ associated UserContext MUST NOT be submitted, but other extensions may
+ manipulate the declared attributes through decorate() and redecorate().
+
+ Implementations may optionally allow storage of unsupported attributes.
+ Extensions which rely on other extensions to store their attribute
+ values should verify that such storage is supported by first testing
+ that the attribute value is retrievable via getAttributes() after being
+ set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - A map of all attribute identifiers to their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>connect</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info)
+                                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>connect</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;connect(org.apache.guacamole.protocol.GuacamoleClientInformation&nbsp;info,
+                                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)
+                                                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Connectable.html#connect-org.apache.guacamole.protocol.GuacamoleClientInformation-java.util.Map-">Connectable</a></code></span></div>
+<div class="block">Establishes a connection to guacd using the information associated with
+ this object. The connection will be provided the given client
+ information. Implementations which support parameter tokens should
+ apply the given tokens when configuring the connection, such as with a
+ <a href="../../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><code>TokenFilter</code></a>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>info</code> - Information associated with the connecting client.</dd>
+<dd><code>tokens</code> - A Map containing the token names and corresponding values to be
+     applied as parameter tokens when establishing the connection. If the
+     implementation does not support parameter tokens, this Map may be
+     ignored.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A fully-established GuacamoleTunnel.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while connecting to guacd, or if permission to
+     connect is denied.</dd>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="http://guacamole.apache.org/doc/gug/configuring-guacamole.html#parameter-tokens">Parameter Tokens</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html
new file mode 100644
index 0000000..9605227
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html
@@ -0,0 +1,356 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroupDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionGroupDirectory" class="title">Class SimpleConnectionGroupDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionGroupDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of
+ ConnectionGroup which provides which provides access to a pre-defined
+ Collection of ConnectionGroups.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#SimpleConnectionGroupDirectory-java.util.Collection-">SimpleConnectionGroupDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">putConnectionGroup</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html#removeConnectionGroup-java.lang.String-">removeConnectionGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionGroupDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionGroupDirectory</h4>
+<pre>public&nbsp;SimpleConnectionGroupDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&gt;&nbsp;groups)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleConnectionGroupDirectory which contains the given
+ groups.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>groups</code> - A Collection of all groups that should be present in this
+               connection group directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="putConnectionGroup-org.apache.guacamole.net.auth.ConnectionGroup-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;putConnectionGroup(<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;connectionGroup)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for modifying the ConnectionGroups in this Directory.
+ Returns the previous connection group for the given identifier, if found.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionGroup</code> - The connection group to add or update the
+                        Directory with.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection group for the connection group
+         identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeConnectionGroup-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeConnectionGroup</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>&nbsp;removeConnectionGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">An internal method for removing a ConnectionGroup from this Directory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the ConnectionGroup to remove.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The previous connection group for the given identifier, if found.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionGroupDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html
new file mode 100644
index 0000000..2951ed8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html
@@ -0,0 +1,443 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":42,"i1":42,"i2":42,"i3":42};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleConnectionRecordSet" class="title">Class SimpleConnectionRecordSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;, <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleConnectionRecordSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></pre>
+<div class="block">An immutable and empty ConnectionRecordSet.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.ActivityRecordSet">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#SimpleConnectionRecordSet--">SimpleConnectionRecordSet</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#asCollection--">asCollection</a></span>()</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#contains-java.lang.String-">contains</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns the subset of records which contain the given value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#limit-int-">limit</a></span>(int&nbsp;limit)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+    boolean&nbsp;desc)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleConnectionRecordSet--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleConnectionRecordSet</h4>
+<pre>public&nbsp;SimpleConnectionRecordSet()</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="asCollection--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>asCollection</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;&nbsp;asCollection()
+                                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns all records within this set as a standard Collection.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#asCollection--">asCollection</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing all records within this set.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the records within this set.</dd>
+</dl>
+</li>
+</ul>
+<a name="contains-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>contains</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;contains(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records which contain the given value. The
+ properties and semantics involved with determining whether a particular
+ record "contains" the given value is implementation dependent. This
+ function may affect the contents of the current ActivityRecordSet. The
+ contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#contains-java.lang.String-">contains</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The value which all records within the resulting subset should
+     contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records which contain the specified value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while restricting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="limit-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>limit</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;limit(int&nbsp;limit)
+                          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns the subset of records containing only the first
+ <code>limit</code> records. If the subset has fewer than
+ <code>limit</code> records, then this function has no effect. This
+ function may also affect the contents of the current ActivityRecordSet.
+ The contents of the current ActivityRecordSet should NOT be relied upon
+ after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#limit-int-">limit</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>limit</code> - The maximum number of records that the new subset should contain.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The subset of records that containing only the first
+     <code>limit</code> records.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while limiting the current subset.</dd>
+</dl>
+</li>
+</ul>
+<a name="sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>sort</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>&nbsp;sort(<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth">ActivityRecordSet.SortableProperty</a>&nbsp;property,
+                                boolean&nbsp;desc)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">ActivityRecordSet</a></code></span></div>
+<div class="block">Returns a ActivityRecordSet containing identically the records within
+ this set, sorted according to the specified criteria. The sort operation
+ performed is guaranteed to be stable with respect to any past call to
+ sort(). This function may also affect the contents of the current
+ ActivityRecordSet. The contents of the current ActivityRecordSet
+ should NOT be relied upon after this function is called.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html#sort-org.apache.guacamole.net.auth.ActivityRecordSet.SortableProperty-boolean-">sort</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecord</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>property</code> - The property by which the records within the resulting set should be
+     sorted.</dd>
+<dd><code>desc</code> - Whether the records should be sorted according to the specified
+     property in descending order. If false, records will be sorted
+     according to the specified property in ascending order.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The ActivityRecordSet, sorted according to the specified criteria.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while sorting the current subset, or if the given
+     property is not supported by the implementation.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleConnectionRecordSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html
new file mode 100644
index 0000000..8445d99
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleDirectory.html
@@ -0,0 +1,616 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleDirectory" class="title">Class SimpleDirectory&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleDirectory&lt;ObjectType&gt;</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>ObjectType</code> - The type of objects stored within this SimpleDirectory.</dd>
+</dl>
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</dd>
+</dl>
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleDirectory&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects. Any changes to the Map
+ will affect the available contents of this SimpleDirectory.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory--">SimpleDirectory</a></span>()</code>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Collection-">SimpleDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-">SimpleDirectory</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType...-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-ObjectType-">SimpleDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;object)</code>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)</code>
+<div class="block">Adds the given object to the overall set.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Returns the object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Returns the objects having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a></span>()</code>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns the Map which currently backs this SimpleDirectory.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</code>
+<div class="block">Sets the Map which backs this SimpleDirectory.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)</code>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleDirectory--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory()</pre>
+<div class="block">Creates a new empty SimpleDirectory which does not provide access to
+ any objects.</div>
+</li>
+</ul>
+<a name="SimpleDirectory-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the objects
+ contained within the given Map. The given Map will be used to back all
+ operations on the SimpleDirectory.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The Map of objects to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="SimpleDirectory-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;object)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the given object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>object</code> - The object to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-org.apache.guacamole.net.auth.Identifiable:A-">
+<!--   -->
+</a><a name="SimpleDirectory-ObjectType...-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/SafeVarargs.html?is-external=true" title="class or interface in java.lang">@SafeVarargs</a>
+public&nbsp;SimpleDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>...&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the given
+ objects. Note that a new Map will be created to store the given objects.
+ If the objects are already available in Map form, it is more efficient
+ to use the <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-"><code>SimpleDirectory(java.util.Map)</code></a> constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The objects that should be present in this directory.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleDirectory-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleDirectory</h4>
+<pre>public&nbsp;SimpleDirectory(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Creates a new SimpleDirectory which provides access to the
+ objects contained within the Collection. Note that a new Map will be
+ created to store the given objects. If the objects are already available
+ in Map form, it is more efficient to use the
+ <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#SimpleDirectory-java.util.Map-"><code>SimpleDirectory(java.util.Map)</code></a> constructor.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - A Collection of all objects that should be present in this directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setObjects-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjects</h4>
+<pre>protected&nbsp;void&nbsp;setObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;objects)</pre>
+<div class="block">Sets the Map which backs this SimpleDirectory. Future function calls
+ which retrieve objects from this SimpleDirectory will use the provided
+ Map.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>objects</code> - The Map of objects to provide access to.</dd>
+</dl>
+</li>
+</ul>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;getObjects()</pre>
+<div class="block">Returns the Map which currently backs this SimpleDirectory. Changes to
+ this Map will affect future function calls that retrieve objects from
+ this SimpleDirectory.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The Map of objects which currently backs this SimpleDirectory.</dd>
+</dl>
+</li>
+</ul>
+<a name="get-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>get</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;get(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+               throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Returns the object having the given identifier. Note that changes to
+ the object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within an
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#get-java.lang.String-">get</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to use when locating the object to
+                   return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The object having the given identifier, or null if no such object
+         exists.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the
+                            object, or if permission for retrieving the
+                            object is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAll-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAll</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&gt;&nbsp;getAll(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">Directory</a></code></span></div>
+<div class="block">Returns the objects having the given identifiers. Note that changes to
+ any object returned will not necessarily affect the object stored within
+ the Directory. To update an object stored within a
+ Directory such that future calls to get() will return the updated
+ object, you must call update() on the object after modification.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getAll-java.util.Collection-">getAll</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers to use when locating the objects to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The objects having the given identifiers. If any identifiers do not
+     correspond to accessible objects, those identifiers will be ignored.
+     If no objects correspond to any of the given identifiers, the
+     returned collection will be empty.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving the objects, or if permission
+     to retrieve the requested objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getIdentifiers--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getIdentifiers</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getIdentifiers()
+                           throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">Directory</a></code></span></div>
+<div class="block">Returns a Set containing all identifiers for all objects within this
+ Directory.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#getIdentifiers--">getIdentifiers</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set of all identifiers.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving
+                            the identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="add-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="add-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>add</h4>
+<pre>public&nbsp;void&nbsp;add(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">Directory</a></code></span></div>
+<div class="block">Adds the given object to the overall set. If a new identifier is
+ created for the added object, that identifier will be automatically
+ assigned via setIdentifier().</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#add-ObjectType-">add</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The object to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the object, or if adding the object
+     is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="update-org.apache.guacamole.net.auth.Identifiable-">
+<!--   -->
+</a><a name="update-ObjectType-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>update</h4>
+<pre>public&nbsp;void&nbsp;update(<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a>&nbsp;connection)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">Directory</a></code></span></div>
+<div class="block">Updates the stored object with the data contained in the given object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#update-ObjectType-">update</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connection</code> - The object which will supply the data for the update.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while updating the object,
+                            or if updating the object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="remove-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>remove</h4>
+<pre>public&nbsp;void&nbsp;remove(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+            throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">Directory</a></code></span></div>
+<div class="block">Removes the object with the given identifier from the overall set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html#remove-java.lang.String-">remove</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="type parameter in SimpleDirectory">ObjectType</a> extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier of the object to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the object,
+                            or if removing object is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html
new file mode 100644
index 0000000..5051184
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html
@@ -0,0 +1,622 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleObjectPermissionSet" class="title">Class SimpleObjectPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>, <a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleObjectPermissionSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></pre>
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.permission.ObjectPermissionSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet--">SimpleObjectPermissionSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#SimpleObjectPermissionSet-java.util.Set-">SimpleObjectPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleObjectPermissionSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet()</pre>
+<div class="block">Creates a new empty SimpleObjectPermissionSet. If you are not extending
+ SimpleObjectPermissionSet and only need an immutable, empty
+ ObjectPermissionSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#EMPTY_SET"><code>ObjectPermissionSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;types)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains permissions for
+ all possible unique combinations of the given identifiers and permission
+ types.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers which should be associated permissions having each
+     of the given permission types.</dd>
+<dd><code>types</code> - The types of permissions which should be granted for each of the
+     given identifiers.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains only READ
+ permissions for each of the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers which should each be associated with READ
+     permission.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleObjectPermissionSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleObjectPermissionSet</h4>
+<pre>public&nbsp;SimpleObjectPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Creates a new SimpleObjectPermissionSet which contains the permissions
+ within the given Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleObjectPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPermissions</h4>
+<pre>protected&nbsp;void&nbsp;setPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Sets the Set which backs this SimpleObjectPermissionSet. Future function
+ calls on this SimpleObjectPermissionSet will use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleObjectPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;getPermissions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>public&nbsp;boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Tests whether the permission of the given type is granted for the
+ object having the given identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">hasPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>public&nbsp;void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Adds the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">addPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>public&nbsp;void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&nbsp;permission,
+                             <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Removes the specified permission for the object having the given
+ identifier.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.ObjectPermission.Type-java.lang.String-">removePermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dd><code>identifier</code> - The identifier of the object affected by the permission being
+     added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAccessibleObjects-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAccessibleObjects</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getAccessibleObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">ObjectPermission.Type</a>&gt;&nbsp;permissionTypes,
+                                               <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                                        throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">ObjectPermissionSet</a></code></span></div>
+<div class="block">Tests whether this user has the specified permissions for the objects
+ having the given identifiers. The identifier of an object is returned
+ in a new collection if at least one of the specified permissions is
+ granted for that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#getAccessibleObjects-java.util.Collection-java.util.Collection-">getAccessibleObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissionTypes</code> - The permissions to check. An identifier will be included in the
+     resulting collection if at least one of these permissions is granted
+     for the associated object</dd>
+<dd><code>identifiers</code> - The identifiers of the objects affected by the permissions being
+     checked.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A collection containing the subset of identifiers for which at least
+     one of the specified permissions is granted.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>public&nbsp;void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>public&nbsp;void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;&nbsp;permissions)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission">ObjectPermission</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleObjectPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html
new file mode 100644
index 0000000..2fc5fa1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html
@@ -0,0 +1,432 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleRelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleRelatedObjectSet" class="title">Class SimpleRelatedObjectSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleRelatedObjectSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></pre>
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.RelatedObjectSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet--">SimpleRelatedObjectSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleRelatedObjectSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#SimpleRelatedObjectSet-java.util.Set-">SimpleRelatedObjectSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Adds the objects having the given identifiers, if not already present.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#getObjects--">getObjects</a></span>()</code>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html#setObjects-java.util.Set-">setObjects</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</code>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleRelatedObjectSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleRelatedObjectSet</h4>
+<pre>public&nbsp;SimpleRelatedObjectSet()</pre>
+<div class="block">Creates a new empty SimpleRelatedObjectSet. If you are not extending
+ SimpleRelatedObjectSet and only need an immutable, empty
+ RelatedObjectSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#EMPTY_SET"><code>RelatedObjectSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleRelatedObjectSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleRelatedObjectSet</h4>
+<pre>public&nbsp;SimpleRelatedObjectSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Creates a new SimpleRelatedObjectSet which contains the objects having
+ the identifiers within the given Set. The given Set backs the contents
+ of the new SimpleRelatedObjectSet. While the SimpleRelatedObjectSet is
+ read-only, any changes to the underlying Set will be reflected in the
+ SimpleRelatedObjectSet.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The Set containing the identifiers of all objects which should be
+     present within the new SimpleRelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setObjects</h4>
+<pre>protected&nbsp;void&nbsp;setObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)</pre>
+<div class="block">Replaces the Set of object identifiers which backs this
+ SimpleRelatedObjectSet. Future function calls on this
+ SimpleRelatedObjectSet will instead use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The Set containing the identifiers of all objects which should be
+     present within this SimpleRelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+<a name="getObjects--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getObjects</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getObjects()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">RelatedObjectSet</a></code></span></div>
+<div class="block">Returns a Set which contains the identifiers of all objects contained
+ within this RelatedObjectSet.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#getObjects--">getObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set which contains the identifiers of all objects contained
+     within this RelatedObjectSet.</dd>
+</dl>
+</li>
+</ul>
+<a name="addObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addObjects</h4>
+<pre>public&nbsp;void&nbsp;addObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">RelatedObjectSet</a></code></span></div>
+<div class="block">Adds the objects having the given identifiers, if not already present.
+ If a specified object is already present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#addObjects-java.util.Set-">addObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being added.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the objects, or if permission to add
+     objects is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removeObjects-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removeObjects</h4>
+<pre>public&nbsp;void&nbsp;removeObjects(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;identifiers)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">RelatedObjectSet</a></code></span></div>
+<div class="block">Removes each of the objects having the specified identifiers, if
+ present. If a specified object is not present, no operation is performed
+ regarding that object.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html#removeObjects-java.util.Set-">removeObjects</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifiers</code> - The identifiers of all objects being removed.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the objects, or if permission to
+     remove objects is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleRelatedObjectSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html
new file mode 100644
index 0000000..42c4e8c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html
@@ -0,0 +1,514 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleSystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleSystemPermissionSet" class="title">Class SimpleSystemPermissionSet</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;, <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleSystemPermissionSet</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></pre>
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.permission.SystemPermissionSet">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET">EMPTY_SET</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet--">SimpleSystemPermissionSet</a></span>()</code>
+<div class="block">Creates a new empty SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#SimpleSystemPermissionSet-java.util.Set-">SimpleSystemPermissionSet</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Adds the specified permission.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Adds the specified permissions, if not already granted.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#getPermissions--">getPermissions</a></span>()</code>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)</code>
+<div class="block">Removes the specified permission.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Removes each of the specified permissions, if granted.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html#setPermissions-java.util.Set-">setPermissions</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</code>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleSystemPermissionSet--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleSystemPermissionSet</h4>
+<pre>public&nbsp;SimpleSystemPermissionSet()</pre>
+<div class="block">Creates a new empty SimpleSystemPermissionSet. If you are not extending
+ SimpleSystemPermissionSet and only need an immutable, empty
+ SystemPermissionSet, consider using <a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#EMPTY_SET"><code>SystemPermissionSet.EMPTY_SET</code></a>
+ instead.</div>
+</li>
+</ul>
+<a name="SimpleSystemPermissionSet-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleSystemPermissionSet</h4>
+<pre>public&nbsp;SimpleSystemPermissionSet(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Creates a new SimpleSystemPermissionSet which contains the permissions
+ within the given Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleSystemPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setPermissions</h4>
+<pre>protected&nbsp;void&nbsp;setPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)</pre>
+<div class="block">Sets the Set which backs this SimpleSystemPermissionSet. Future function
+ calls on this SimpleSystemPermissionSet will use the provided Set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The Set of permissions this SimpleSystemPermissionSet should
+     contain.</dd>
+</dl>
+</li>
+</ul>
+<a name="getPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getPermissions</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;getPermissions()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">PermissionSet</a></code></span></div>
+<div class="block">Returns a Set which contains all permissions granted within this
+ permission set.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#getPermissions--">getPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Set containing all permissions granted within this permission set.</dd>
+</dl>
+</li>
+</ul>
+<a name="hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hasPermission</h4>
+<pre>public&nbsp;boolean&nbsp;hasPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Tests whether the permission of the given type is granted.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#hasPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">hasPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to check.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the permission is granted, false otherwise.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while checking permissions, or if permissions
+     cannot be checked due to lack of permissions to do so.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermission</h4>
+<pre>public&nbsp;void&nbsp;addPermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Adds the specified permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">addPermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permission, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>removePermission</h4>
+<pre>public&nbsp;void&nbsp;removePermission(<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission">SystemPermission.Type</a>&nbsp;permission)
+                      throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">SystemPermissionSet</a></code></span></div>
+<div class="block">Removes the specified permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermission-org.apache.guacamole.net.auth.permission.SystemPermission.Type-">removePermission</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permission</code> - The permission to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permission, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="addPermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addPermissions</h4>
+<pre>public&nbsp;void&nbsp;addPermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                    throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Adds the specified permissions, if not already granted. If a specified
+ permission is already granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#addPermissions-java.util.Set-">addPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to add.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while adding the permissions, or if permission to
+     add permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+<a name="removePermissions-java.util.Set-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>removePermissions</h4>
+<pre>public&nbsp;void&nbsp;removePermissions(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;&nbsp;permissions)
+                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">PermissionSet</a></code></span></div>
+<div class="block">Removes each of the specified permissions, if granted. If a specified
+ permission is not granted, no operation is performed regarding that
+ permission.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">PermissionSet</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission">SystemPermission</a>&gt;</code></dd>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html#removePermissions-java.util.Set-">removePermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>permissions</code> - The permissions to remove.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while removing the permissions, or if permission
+     to remove permissions is denied.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleSystemPermissionSet.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html
new file mode 100644
index 0000000..1be1568
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUser.html
@@ -0,0 +1,528 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUser" class="title">Class SimpleUser</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUser</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUser</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUser</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></pre>
+<div class="block">A read-only User implementation which has no permissions. Implementations
+ that need to define permissions should extend this class and override the
+ associated getters.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.guacamole.net.auth.User">
+<!--   -->
+</a>
+<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth">User.Attribute</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser--">SimpleUser</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</code>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">SimpleUser</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;userIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></span>()</code>
+<div class="block">Returns all connection group permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getConnectionPermissions--">getConnectionPermissions</a></span>()</code>
+<div class="block">Returns all connection permissions given to this object.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html#getUserPermissions--">getUserPermissions</a></span>()</code>
+<div class="block">Returns all user permissions given to this object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUser">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getAttributes--">getAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getEffectivePermissions--">getEffectivePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getHistory--">getHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getLastActive--">getLastActive</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getPassword--">getPassword</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserGroups--">getUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setAttributes-java.util.Map-">setAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#setPassword-java.lang.String-">setPassword</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre>public&nbsp;SimpleUser()</pre>
+<div class="block">Creates a completely uninitialized SimpleUser.</div>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre>public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username)</pre>
+<div class="block">Creates a new SimpleUser having the given username.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+<div class="block">Creates a new SimpleUser having the given username and READ access to
+ the connections and connection groups having the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+<dd><code>connectionIdentifiers</code> - The identifiers of all connections this user has READ access to.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The identifiers of all connection groups this user has READ access
+     to.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUser-java.lang.String-java.util.Collection-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUser</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public&nbsp;SimpleUser(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;userIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionIdentifiers,
+                              <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;connectionGroupIdentifiers)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Extend and override the applicable permission set getters instead,
+     relying on SimpleUser to expose no permissions by default for all
+     permission sets that aren't overridden. See <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleObjectPermissionSet</code></a>
+     for convenient methods of providing a read-only permission set with
+     specific permissions.</span></div>
+<div class="block">Creates a new SimpleUser having the given username and READ access to
+ the users, connections, and groups having the given identifiers.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>username</code> - The username to assign to this SimpleUser.</dd>
+<dd><code>userIdentifiers</code> - The identifiers of all users this user has READ access to.</dd>
+<dd><code>connectionIdentifiers</code> - The identifiers of all connections this user has READ access to.</dd>
+<dd><code>connectionGroupIdentifiers</code> - The identifiers of all connection groups this user has READ access
+     to.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getConnectionPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionPermissions()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all connection permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionPermissions--">getConnectionPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionGroupPermissions--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionGroupPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getConnectionGroupPermissions()
+                                                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all connection group permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all connection group permissions granted
+     to this object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getUserPermissions--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getUserPermissions</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>&nbsp;getUserPermissions()
+                                       throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">AbstractUser</a></code></span></div>
+<div class="block">Returns all user permissions given to this object.
+
+ <p>This implementation simply an immutable, empty permission set.
+ Implementations that wish to expose permissions should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html#getUserPermissions--">getUserPermissions</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth">AbstractUser</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An ObjectPermissionSet of all user permissions granted to this
+     object.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while retrieving permissions, or if reading all
+     permissions is not allowed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUser.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html
new file mode 100644
index 0000000..5ec8f6d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserContext.html
@@ -0,0 +1,516 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserContext" class="title">Class SimpleUserContext</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUserContext</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserContext</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUserContext</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></pre>
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations. Access to
+ querying or modifying either users or permissions is denied.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#DEFAULT_ROOT_CONNECTION_GROUP">DEFAULT_ROOT_CONNECTION_GROUP</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">SimpleUserContext</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                 <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                 boolean&nbsp;interpretTokens)</code>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getAuthenticationProvider--">getAuthenticationProvider</a></span>()</code>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></span>()</code>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#getResource--">getResource</a></span>()</code>
+<div class="block">Returns an arbitrary REST resource representing this UserContext.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html#self--">self</a></span>()</code>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getActiveConnectionDirectory--">getActiveConnectionDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionAttributes--">getConnectionAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupAttributes--">getConnectionGroupAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionGroupDirectory--">getConnectionGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionHistory--">getConnectionHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getRootConnectionGroup--">getRootConnectionGroup</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileAttributes--">getSharingProfileAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getSharingProfileDirectory--">getSharingProfileDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserAttributes--">getUserAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserDirectory--">getUserDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupAttributes--">getUserGroupAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserGroupDirectory--">getUserGroupDirectory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getUserHistory--">getUserHistory</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#invalidate--">invalidate</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</pre>
+<div class="block">Creates a new SimpleUserContext which provides access to only those
+ configurations within the given Map. The username is set to the
+ ANONYMOUS_IDENTIFIER defined by AuthenticatedUser, effectively declaring
+ the current user as anonymous. Parameter tokens within the given
+ GuacamoleConfigurations will not be interpreted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with this
+     UserContext has read access.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs)</pre>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.
+ Parameter tokens within the given GuacamoleConfigurations will not be
+ interpreted.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>username</code> - The username of the user associated with this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with
+     this UserContext has read access.</dd>
+</dl>
+</li>
+</ul>
+<a name="SimpleUserContext-org.apache.guacamole.net.auth.AuthenticationProvider-java.lang.String-java.util.Map-boolean-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserContext</h4>
+<pre>public&nbsp;SimpleUserContext(<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;authProvider,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;username,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,org.apache.guacamole.protocol.GuacamoleConfiguration&gt;&nbsp;configs,
+                         boolean&nbsp;interpretTokens)</pre>
+<div class="block">Creates a new SimpleUserContext for the user with the given username
+ which provides access to only those configurations within the given Map.
+ Parameter tokens within the given GuacamoleConfigurations will be
+ interpreted if explicitly requested.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authProvider</code> - The AuthenticationProvider creating this UserContext.</dd>
+<dd><code>username</code> - The username of the user associated with this UserContext.</dd>
+<dd><code>configs</code> - A Map of all configurations for which the user associated with
+     this UserContext has read access.</dd>
+<dd><code>interpretTokens</code> - Whether parameter tokens in the underlying GuacamoleConfigurations
+     should be automatically applied upon connecting. If false, parameter
+     tokens will not be interpreted at all.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="self--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>self</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;self()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#self--">UserContext</a></code></span></div>
+<div class="block">Returns the User whose access rights control the operations of this
+ UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The User whose access rights control the operations of this
+         UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getResource--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getResource</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;getResource()
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">AbstractUserContext</a></code></span></div>
+<div class="block">Returns an arbitrary REST resource representing this UserContext. The
+ REST resource returned must be properly annotated with JSR-311
+ annotations, and may serve as the root resource for any number of
+ subresources. The returned resource is ultimately exposed at
+ ".../api/session/ext/IDENTIFIER/", where IDENTIFIER is the identifier of
+ the AuthenticationProvider associated with this UserContext.
+
+ REST resources returned by this function will only be reachable by
+ authenticated users with valid authentication tokens. REST resources
+ which should be accessible by all users regardless of whether they have
+ authenticated should instead be returned from
+ AuthenticationProvider.getResource().
+
+ <p>This implementation simply returns <code>null</code>. Implementations that
+ wish to expose REST resources specific to a user's session should
+ override this function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getResource--">getResource</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getResource--">getResource</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>An arbitrary REST resource, annotated with JSR-311 annotations, or
+     null if no such resource is defined.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the REST resource cannot be returned due to an error.</dd>
+</dl>
+</li>
+</ul>
+<a name="getAuthenticationProvider--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticationProvider</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>&nbsp;getAuthenticationProvider()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getAuthenticationProvider--">UserContext</a></code></span></div>
+<div class="block">Returns the AuthenticationProvider which created this UserContext, which
+ may not be the same AuthenticationProvider that authenticated the user
+ associated with this UserContext.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticationProvider that created this UserContext.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionDirectory--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getConnectionDirectory</h4>
+<pre>public&nbsp;<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>&gt;&nbsp;getConnectionDirectory()
+                                             throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">AbstractUserContext</a></code></span></div>
+<div class="block">Retrieves a Directory which can be used to view and manipulate
+ connections and their configurations, but only as allowed by the
+ permissions given to the user.
+
+ <p>This implementation simply returns an empty <a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><code>Directory</code></a>.
+ Implementations that wish to expose connections should override this
+ function.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html#getConnectionDirectory--">getConnectionDirectory</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth">AbstractUserContext</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A Directory whose operations are bound by the permissions of 
+         the user.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while creating the
+                            Directory.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserContext.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserContext">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html
new file mode 100644
index 0000000..480b26b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html
@@ -0,0 +1,282 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserDirectory" class="title">Class SimpleUserDirectory</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple.SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserDirectory</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</dd>
+</dl>
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">SimpleUserDirectory</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&gt;</pre>
+<div class="block">An extremely simple read-only implementation of a Directory of Users which
+ provides access to a single pre-defined User.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html#SimpleUserDirectory-org.apache.guacamole.net.auth.User-">SimpleUserDirectory</a></span>(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#add-ObjectType-">add</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#get-java.lang.String-">get</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getAll-java.util.Collection-">getAll</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getIdentifiers--">getIdentifiers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#getObjects--">getObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#remove-java.lang.String-">remove</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#setObjects-java.util.Map-">setObjects</a>, <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html#update-ObjectType-">update</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserDirectory-org.apache.guacamole.net.auth.User-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserDirectory</h4>
+<pre>public&nbsp;SimpleUserDirectory(<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>&nbsp;user)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Creates a new SimpleUserDirectory which provides access to the single
+ user provided.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>user</code> - The user to provide access to.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserDirectory.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.simple.SimpleDirectory">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html
new file mode 100644
index 0000000..9ed43f1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/SimpleUserGroup.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>SimpleUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="SimpleUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.auth.simple</div>
+<h2 title="Class SimpleUserGroup" class="title">Class SimpleUserGroup</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractIdentifiable</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.AbstractUserGroup</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.auth.simple.SimpleUserGroup</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../../org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">SimpleUserGroup</span>
+extends <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></pre>
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions. Implementations that need to define members or permissions
+ should extend this class and override the associated getters.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup--">SimpleUserGroup</a></span>()</code>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html#SimpleUserGroup-java.lang.String-">SimpleUserGroup</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</code>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth">AbstractUserGroup</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getActiveConnectionPermissions--">getActiveConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getAttributes--">getAttributes</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionGroupPermissions--">getConnectionGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getConnectionPermissions--">getConnectionPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUserGroups--">getMemberUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getMemberUsers--">getMemberUsers</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSharingProfilePermissions--">getSharingProfilePermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getSystemPermissions--">getSystemPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroupPermissions--">getUserGroupPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserGroups--">getUserGroups</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#getUserPermissions--">getUserPermissions</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html#setAttributes-java.util.Map-">setAttributes</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractIdentifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth">AbstractIdentifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.net.auth.Identifiable">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a></h3>
+<code><a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#getIdentifier--">getIdentifier</a>, <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html#setIdentifier-java.lang.String-">setIdentifier</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="SimpleUserGroup--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SimpleUserGroup</h4>
+<pre>public&nbsp;SimpleUserGroup()</pre>
+<div class="block">Creates a completely uninitialized SimpleUserGroup.</div>
+</li>
+</ul>
+<a name="SimpleUserGroup-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>SimpleUserGroup</h4>
+<pre>public&nbsp;SimpleUserGroup(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;identifier)</pre>
+<div class="block">Creates a new SimpleUserGroup having the given identifier.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>identifier</code> - The identifier to assign to this SimpleUserGroup.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/SimpleUserGroup.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#methods.inherited.from.class.org.apache.guacamole.net.auth.AbstractUserGroup">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li>Method</li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html
new file mode 100644
index 0000000..4c5f79d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleActivityRecordSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleActivityRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleActivityRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html
new file mode 100644
index 0000000..1837e45
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleAuthenticationProvider.html" target="_top">Frames</a></li>
+<li><a href="SimpleAuthenticationProvider.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html
new file mode 100644
index 0000000..7715792
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnection" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnection</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnection</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnection.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnection.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html
new file mode 100644
index 0000000..9d86107
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html
new file mode 100644
index 0000000..bd111f7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html
new file mode 100644
index 0000000..b9a8c11
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionGroupDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionGroupDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html
new file mode 100644
index 0000000..1ae05ee
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleConnectionRecordSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleConnectionRecordSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleConnectionRecordSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html
new file mode 100644
index 0000000..4e318b3
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html
@@ -0,0 +1,200 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleDirectory</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a> in <a href="../../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html
new file mode 100644
index 0000000..229ef26
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleObjectPermissionSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleObjectPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleObjectPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html
new file mode 100644
index 0000000..9922264
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleRelatedObjectSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleRelatedObjectSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleRelatedObjectSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html
new file mode 100644
index 0000000..b89793b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleSystemPermissionSet</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleSystemPermissionSet.html" target="_top">Frames</a></li>
+<li><a href="SimpleSystemPermissionSet.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html
new file mode 100644
index 0000000..ea4547f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUser" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUser</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUser</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUser.html" target="_top">Frames</a></li>
+<li><a href="SimpleUser.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html
new file mode 100644
index 0000000..51cfaa5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserContext" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserContext</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserContext</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserContext.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserContext.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html
new file mode 100644
index 0000000..beaf86c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserDirectory" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserDirectory</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserDirectory</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserDirectory.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserDirectory.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html
new file mode 100644
index 0000000..ca55e99
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.auth.simple.SimpleUserGroup" class="title">Uses of Class<br>org.apache.guacamole.net.auth.simple.SimpleUserGroup</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.auth.simple.SimpleUserGroup</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/auth/simple/class-use/SimpleUserGroup.html" target="_top">Frames</a></li>
+<li><a href="SimpleUserGroup.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html
new file mode 100644
index 0000000..4e4c4e7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-frame.html
@@ -0,0 +1,45 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html" target="classFrame">org.apache.guacamole.net.auth.simple</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleActivityRecordSet</a></li>
+<li><a href="SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleAuthenticationProvider</a></li>
+<li><a href="SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnection</a></li>
+<li><a href="SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionDirectory</a></li>
+<li><a href="SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroup</a></li>
+<li><a href="SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionGroupDirectory</a></li>
+<li><a href="SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleConnectionRecordSet</a></li>
+<li><a href="SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleDirectory</a></li>
+<li><a href="SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleObjectPermissionSet</a></li>
+<li><a href="SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleRelatedObjectSet</a></li>
+<li><a href="SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleSystemPermissionSet</a></li>
+<li><a href="SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUser</a></li>
+<li><a href="SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserContext</a></li>
+<li><a href="SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserDirectory</a></li>
+<li><a href="SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple" target="classFrame">SimpleUserGroup</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html
new file mode 100644
index 0000000..4908899
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-summary.html
@@ -0,0 +1,264 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.auth.simple</h1>
+<div class="docSummary">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleActivityRecordSet</a>&lt;RecordType extends <a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth">ActivityRecord</a>&gt;</td>
+<td class="colLast">
+<div class="block">An immutable and empty ActivityRecordSet.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple">SimpleAuthenticationProvider</a></td>
+<td class="colLast">
+<div class="block">Provides means of retrieving a set of named GuacamoleConfigurations for a
+ given Credentials object.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnection</a></td>
+<td class="colLast">
+<div class="block">A Connection implementation which establishes the underlying connection to
+ guacd using the configuration information provided in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroup</a></td>
+<td class="colLast">
+<div class="block">An extremely simple read-only implementation of a ConnectionGroup which
+ returns the connection and connection group identifiers it was constructed
+ with.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionGroupDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleConnectionRecordSet</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleActivityRecordSet</code></a>&lt;<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><code>ConnectionRecord</code></a>&gt;
+     instead.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleDirectory</a>&lt;ObjectType extends <a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>&gt;</td>
+<td class="colLast">
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleObjectPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of ObjectPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleRelatedObjectSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of RelatedObjectSet which uses a backing Set
+ of identifiers to determine which objects are present.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple">SimpleSystemPermissionSet</a></td>
+<td class="colLast">
+<div class="block">A read-only implementation of SystemPermissionSet which uses a backing Set
+ of Permissions to determine which permissions are present.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUser</a></td>
+<td class="colLast">
+<div class="block">A read-only User implementation which has no permissions.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserContext</a></td>
+<td class="colLast">
+<div class="block">An extremely simple UserContext implementation which provides access to
+ a defined and restricted set of GuacamoleConfigurations.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserDirectory</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Use <a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><code>SimpleDirectory</code></a> instead.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple">SimpleUserGroup</a></td>
+<td class="colLast">
+<div class="block">A read-only UserGroup implementation which has no members and no
+ permissions.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.auth.simple Description">Package org.apache.guacamole.net.auth.simple Description</h2>
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html
new file mode 100644
index 0000000..1b520e5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-tree.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.auth.simple Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.auth.simple Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.auth.simple</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;RecordType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> (implements org.apache.guacamole.net.auth.<a href="../../../../../../org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="../../../../../../org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="../../../../../../org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>)</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/auth/permission/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html
new file mode 100644
index 0000000..9b7a71b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/auth/simple/package-use.html
@@ -0,0 +1,176 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.auth.simple (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.auth.simple" class="title">Uses of Package<br>org.apache.guacamole.net.auth.simple</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.auth.simple">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.simple">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a> used by <a href="../../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../../org/apache/guacamole/net/auth/simple/class-use/SimpleDirectory.html#org.apache.guacamole.net.auth.simple">SimpleDirectory</a>
+<div class="block">An extremely simple read-only implementation of a Directory which provides
+ access to a pre-defined Map of arbitrary objects.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/auth/simple/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html
new file mode 100644
index 0000000..953243c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationFailureEvent.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationFailureEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationFailureEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class AuthenticationFailureEvent" class="title">Class AuthenticationFailureEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.AuthenticationFailureEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AuthenticationFailureEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></pre>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated. The credentials that failed to be authenticated are included
+ within this event, and can be retrieved using getCredentials().</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">AuthenticationFailureEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AuthenticationFailureEvent-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AuthenticationFailureEvent</h4>
+<pre>public&nbsp;AuthenticationFailureEvent(<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</pre>
+<div class="block">Creates a new AuthenticationFailureEvent which represents the failure
+ to authenticate the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>credentials</code> - The credentials which failed authentication.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html
new file mode 100644
index 0000000..afcdb95
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/AuthenticationSuccessEvent.html
@@ -0,0 +1,345 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class AuthenticationSuccessEvent" class="title">Class AuthenticationSuccessEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.AuthenticationSuccessEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">AuthenticationSuccessEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></pre>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication. The credentials that passed authentication are included
+ within this event, and can be retrieved using getCredentials().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, successful authentication
+ is effectively <em>vetoed</em> and will be subsequently processed as though the
+ authentication failed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">AuthenticationSuccessEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</code>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="AuthenticationSuccessEvent-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>AuthenticationSuccessEvent</h4>
+<pre>public&nbsp;AuthenticationSuccessEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser)</pre>
+<div class="block">Creates a new AuthenticationSuccessEvent which represents a successful
+ authentication attempt by the user identified by the given
+ AuthenticatedUser object.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser identifying the user that successfully
+     authenticated.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html
new file mode 100644
index 0000000..c6cad2c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/CredentialEvent.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>CredentialEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="CredentialEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface CredentialEvent" class="title">Interface CredentialEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">CredentialEvent</span></pre>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/CredentialEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html
new file mode 100644
index 0000000..b943003
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelCloseEvent.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelCloseEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelCloseEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class TunnelCloseEvent" class="title">Class TunnelCloseEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.TunnelCloseEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TunnelCloseEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></pre>
+<div class="block">An event which is triggered whenever a tunnel is being closed. The tunnel
+ being closed can be accessed through getTunnel(), and the UserContext
+ associated with the request which is closing the tunnel can be retrieved
+ with getUserContext().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, the request to close
+ the tunnel is effectively <em>vetoed</em> and will remain connected.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelCloseEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TunnelCloseEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TunnelCloseEvent</h4>
+<pre>public&nbsp;TunnelCloseEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                        <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                        org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Creates a new TunnelCloseEvent which represents the closing of the
+ given tunnel via a request associated with the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser associated with the user that is closing the
+     tunnel, if any.</dd>
+<dd><code>credentials</code> - The credentials associated with the request that closed the
+     tunnel. Note that these credentials are not necessarily the same as
+     the credentials provided when the user authenticated.</dd>
+<dd><code>tunnel</code> - The tunnel being closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">TunnelEvent</a></code></span></div>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html
new file mode 100644
index 0000000..e6f116c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelConnectEvent.html
@@ -0,0 +1,375 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelConnectEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelConnectEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Class TunnelConnectEvent" class="title">Class TunnelConnectEvent</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.net.event.TunnelConnectEvent</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TunnelConnectEvent</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></pre>
+<div class="block">An event which is triggered whenever a tunnel is being connected. The tunnel
+ being connected can be accessed through getTunnel(), and the UserContext
+ associated with the request which is connecting the tunnel can be retrieved
+ with getUserContext().
+ <p>
+ If a <a href="../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> throws
+ a GuacamoleException when handling an event of this type, the tunnel connection
+ is effectively <em>vetoed</em> and will be subsequently closed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">TunnelConnectEvent</a></span>(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                  <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                  org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</code>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getCredentials--">getCredentials</a></span>()</code>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TunnelConnectEvent-org.apache.guacamole.net.auth.AuthenticatedUser-org.apache.guacamole.net.auth.Credentials-org.apache.guacamole.net.GuacamoleTunnel-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TunnelConnectEvent</h4>
+<pre>public&nbsp;TunnelConnectEvent(<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;authenticatedUser,
+                          <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials,
+                          org.apache.guacamole.net.GuacamoleTunnel&nbsp;tunnel)</pre>
+<div class="block">Creates a new TunnelConnectEvent which represents the connecting of the
+ given tunnel via a request associated with the given credentials.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>authenticatedUser</code> - The AuthenticatedUser associated with the user that is connecting the
+     tunnel, if any.</dd>
+<dd><code>credentials</code> - The credentials associated with the request that connected the
+     tunnel. Note that these credentials are not necessarily the same as
+     the credentials provided when the user authenticated.</dd>
+<dd><code>tunnel</code> - The tunnel being connected.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">UserEvent</a></code></span></div>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getCredentials--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getCredentials</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;getCredentials()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">CredentialEvent</a></code></span></div>
+<div class="block">Returns the current credentials of the user triggering the event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html#getCredentials--">getCredentials</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The current credentials of the user triggering the event, if
+         any, or null if no credentials are associated with the event.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>public&nbsp;org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">TunnelEvent</a></code></span></div>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html
new file mode 100644
index 0000000..e55241c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/TunnelEvent.html
@@ -0,0 +1,246 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface TunnelEvent" class="title">Interface TunnelEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">TunnelEvent</span></pre>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>org.apache.guacamole.net.GuacamoleTunnel</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html#getTunnel--">getTunnel</a></span>()</code>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getTunnel--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getTunnel</h4>
+<pre>org.apache.guacamole.net.GuacamoleTunnel&nbsp;getTunnel()</pre>
+<div class="block">Returns the tunnel associated with this event, if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The tunnel associated with this event, if any, or null if no
+         tunnel is associated with this event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html
new file mode 100644
index 0000000..f18c34f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/UserEvent.html
@@ -0,0 +1,249 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>UserEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="UserEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event</div>
+<h2 title="Interface UserEvent" class="title">Interface UserEvent</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>, <a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">UserEvent</span></pre>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html#getAuthenticatedUser--">getAuthenticatedUser</a></span>()</code>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getAuthenticatedUser--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAuthenticatedUser</h4>
+<pre><a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;getAuthenticatedUser()</pre>
+<div class="block">Returns the AuthenticatedUser identifying the user triggering the event,
+ if any.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The AuthenticatedUser identifying the user triggering the event, if
+     any, or null if no AuthenticatedUser is associated with the event.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/UserEvent.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html
new file mode 100644
index 0000000..e0771eb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.AuthenticationFailureEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.AuthenticationFailureEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationFailureListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html
new file mode 100644
index 0000000..0a74678
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.AuthenticationSuccessEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.AuthenticationSuccessEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">AuthenticationSuccessListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html
new file mode 100644
index 0000000..b7b1a4c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/CredentialEvent.html
@@ -0,0 +1,201 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.CredentialEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.CredentialEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.CredentialEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.CredentialEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/CredentialEvent.html" target="_top">Frames</a></li>
+<li><a href="CredentialEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html
new file mode 100644
index 0000000..af0a7bd
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.TunnelCloseEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.TunnelCloseEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelCloseListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html
new file mode 100644
index 0000000..9a5dcd0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html
@@ -0,0 +1,182 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.net.event.TunnelConnectEvent" class="title">Uses of Class<br>org.apache.guacamole.net.event.TunnelConnectEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a> with parameters of type <a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><span class="typeNameLabel">TunnelConnectListener.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html
new file mode 100644
index 0000000..e954468
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/TunnelEvent.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.TunnelEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.TunnelEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.TunnelEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.TunnelEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/TunnelEvent.html" target="_top">Frames</a></li>
+<li><a href="TunnelEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html
new file mode 100644
index 0000000..3191921
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/class-use/UserEvent.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.UserEvent (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.UserEvent (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.UserEvent" class="title">Uses of Interface<br>org.apache.guacamole.net.event.UserEvent</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a> in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> that implement <a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></span></code>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></span></code>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/class-use/UserEvent.html" target="_top">Frames</a></li>
+<li><a href="UserEvent.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html
new file mode 100644
index 0000000..f6fbae6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationFailureListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationFailureListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface AuthenticationFailureListener" class="title">Interface AuthenticationFailureListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">AuthenticationFailureListener</span></pre>
+<div class="block">A listener whose authenticationFailed() hook will fire immediately
+ after a user's authentication attempt fails. Note that this hook cannot
+ be used to cancel the authentication failure.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html#authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">authenticationFailed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="authenticationFailed-org.apache.guacamole.net.event.AuthenticationFailureEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>authenticationFailed</h4>
+<pre>void&nbsp;authenticationFailed(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a>&nbsp;e)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ fails.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The AuthenticationFailureEvent describing the authentication
+      failure that just occurred.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the authentication failure event.
+      Note that throwing an exception will NOT cause the authentication
+      failure to be canceled (which makes no sense), but it will prevent
+      subsequent listeners from receiving the notification.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationFailureListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html
new file mode 100644
index 0000000..b096358
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html
@@ -0,0 +1,262 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>AuthenticationSuccessListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="AuthenticationSuccessListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface AuthenticationSuccessListener" class="title">Interface AuthenticationSuccessListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">AuthenticationSuccessListener</span></pre>
+<div class="block">A listener whose hooks will fire immediately before and after a user's
+ authentication attempt succeeds. If a user successfully authenticates,
+ the authenticationSucceeded() hook has the opportunity to cancel the
+ authentication and force it to fail.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html#authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">authenticationSucceeded</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="authenticationSucceeded-org.apache.guacamole.net.event.AuthenticationSuccessEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>authenticationSucceeded</h4>
+<pre>boolean&nbsp;authenticationSucceeded(<a href="../../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a>&nbsp;e)
+                         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a user's authentication attempt
+ succeeds. The return value of this hook dictates whether the
+ successful authentication attempt is canceled.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The AuthenticationFailureEvent describing the authentication
+      failure that just occurred.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the successful authentication attempt should be
+      allowed, or false if the attempt should be denied, causing
+      the attempt to effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the authentication success event.
+      Throwing an exception will also cancel the authentication success.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/AuthenticationSuccessListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html
new file mode 100644
index 0000000..308396c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/Listener.html
@@ -0,0 +1,255 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Listener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface Listener" class="title">Interface Listener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">Listener</span></pre>
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc. Listeners are registered
+ through the extension manifest mechanism. When an event occurs, listeners
+ are notified in the order in which they are declared in the manifest and
+ continues until either all listeners have been notified or with the first
+ listener that throws a GuacamoleException or other runtime exception.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html#handleEvent-java.lang.Object-">handleEvent</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;event)</code>
+<div class="block">Notifies the recipient that an event has occurred.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="handleEvent-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>handleEvent</h4>
+<pre>void&nbsp;handleEvent(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;event)
+          throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Notifies the recipient that an event has occurred.
+ <p>
+ Throwing an exception from an event listener can act to veto an action in
+ progress for some event types. See the Javadoc for specific event types for
+ details.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>event</code> - An object that describes the event that has occurred.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If the listener wishes to stop notification of the event to subsequent
+     listeners. For some event types, this acts to veto an action in progress;
+     e.g. treating a successful authentication as though it failed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/Listener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html
new file mode 100644
index 0000000..874cb3a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelCloseListener.html
@@ -0,0 +1,259 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelCloseListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelCloseListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface TunnelCloseListener" class="title">Interface TunnelCloseListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">TunnelCloseListener</span></pre>
+<div class="block">A listener whose tunnelClosed() hook will fire immediately before an
+ existing tunnel is closed.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html#tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">tunnelClosed</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="tunnelClosed-org.apache.guacamole.net.event.TunnelCloseEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tunnelClosed</h4>
+<pre>boolean&nbsp;tunnelClosed(<a href="../../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a>&nbsp;e)
+              throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately before an existing tunnel is closed.
+ The return value of this hook dictates whether the tunnel is allowed to
+ be closed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The TunnelCloseEvent describing the tunnel being closed and
+      any associated credentials.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the tunnel should be allowed to be closed, or false
+      if the attempt should be denied, causing the attempt to
+      effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the tunnel close event. Throwing
+      an exception will also stop the tunnel from being closed.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelCloseListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html
new file mode 100644
index 0000000..614a86f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/TunnelConnectListener.html
@@ -0,0 +1,260 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TunnelConnectListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TunnelConnectListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":38};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.net.event.listener</div>
+<h2 title="Interface TunnelConnectListener" class="title">Interface TunnelConnectListener</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public interface <span class="typeNameLabel">TunnelConnectListener</span></pre>
+<div class="block">A listener whose tunnelConnected() hook will fire immediately after a new
+ tunnel is connected.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html#tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">tunnelConnected</a></span>(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="tunnelConnected-org.apache.guacamole.net.event.TunnelConnectEvent-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>tunnelConnected</h4>
+<pre>boolean&nbsp;tunnelConnected(<a href="../../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a>&nbsp;e)
+                 throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Event hook which fires immediately after a new tunnel is connected.
+ The return value of this hook dictates whether the tunnel is made visible
+ to the session.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>e</code> - The TunnelConnectEvent describing the tunnel being connected and
+      any associated credentials.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if the tunnel should be allowed to be connected, or false
+      if the attempt should be denied, causing the attempt to
+      effectively fail.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while handling the tunnel connect event. Throwing
+       an exception will also stop the tunnel from being made visible to the
+       session.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TunnelConnectListener.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html
new file mode 100644
index 0000000..015bb74
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationFailureListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.AuthenticationFailureListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.AuthenticationFailureListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationFailureListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationFailureListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html
new file mode 100644
index 0000000..e00fa77
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.AuthenticationSuccessListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.AuthenticationSuccessListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/AuthenticationSuccessListener.html" target="_top">Frames</a></li>
+<li><a href="AuthenticationSuccessListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html
new file mode 100644
index 0000000..97518e0
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/Listener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.Listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.Listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.Listener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.Listener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.Listener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/Listener.html" target="_top">Frames</a></li>
+<li><a href="Listener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html
new file mode 100644
index 0000000..f539741
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelCloseListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.TunnelCloseListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.TunnelCloseListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelCloseListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelCloseListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html
new file mode 100644
index 0000000..4235ec7
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.net.event.listener.TunnelConnectListener" class="title">Uses of Interface<br>org.apache.guacamole.net.event.listener.TunnelConnectListener</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.net.event.listener.TunnelConnectListener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../../index.html?org/apache/guacamole/net/event/listener/class-use/TunnelConnectListener.html" target="_top">Frames</a></li>
+<li><a href="TunnelConnectListener.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html
new file mode 100644
index 0000000..1acaa72
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../../org/apache/guacamole/net/event/listener/package-summary.html" target="classFrame">org.apache.guacamole.net.event.listener</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationFailureListener</span></a></li>
+<li><a href="AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">AuthenticationSuccessListener</span></a></li>
+<li><a href="Listener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">Listener</span></a></li>
+<li><a href="TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelCloseListener</span></a></li>
+<li><a href="TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener" target="classFrame"><span class="interfaceName">TunnelConnectListener</span></a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html
new file mode 100644
index 0000000..42adfcf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-summary.html
@@ -0,0 +1,195 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.event.listener</h1>
+<div class="docSummary">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationFailureListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener">AuthenticationSuccessListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener">Listener</a></td>
+<td class="colLast">
+<div class="block">A listener for events that occur in handing various Guacamole requests
+ such as authentication, tunnel connect/close, etc.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelCloseListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener">TunnelConnectListener</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Listeners should instead implement the <a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><code>Listener</code></a> interface.</span></div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.event.listener Description">Package org.apache.guacamole.net.event.listener Description</h2>
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application. These event
+ hooks can be used to take action upon occurrence of an event and,
+ in some cases, prevent the web application from allowing the
+ event to continue for the user that triggered it.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html
new file mode 100644
index 0000000..68a631b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-tree.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event.listener Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event.listener Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.event.listener</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="../../../../../../org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../../org/apache/guacamole/net/event/package-tree.html">Prev</a></li>
+<li><a href="../../../../../../org/apache/guacamole/properties/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html
new file mode 100644
index 0000000..6ff082e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/listener/package-use.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.event.listener (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.event.listener" class="title">Uses of Package<br>org.apache.guacamole.net.event.listener</h1>
+</div>
+<div class="contentContainer">No usage of org.apache.guacamole.net.event.listener</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/guacamole/net/event/listener/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html
new file mode 100644
index 0000000..86999aa
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-frame.html
@@ -0,0 +1,40 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../../org/apache/guacamole/net/event/package-summary.html" target="classFrame">org.apache.guacamole.net.event</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="CredentialEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">CredentialEvent</span></a></li>
+<li><a href="TunnelEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">TunnelEvent</span></a></li>
+<li><a href="UserEvent.html" title="interface in org.apache.guacamole.net.event" target="classFrame"><span class="interfaceName">UserEvent</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationFailureEvent</a></li>
+<li><a href="AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">AuthenticationSuccessEvent</a></li>
+<li><a href="TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelCloseEvent</a></li>
+<li><a href="TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event" target="classFrame">TunnelConnectEvent</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html
new file mode 100644
index 0000000..3b8d820
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-summary.html
@@ -0,0 +1,224 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.net.event</h1>
+<div class="docSummary">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a></td>
+<td class="colLast">
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationFailureEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event">AuthenticationSuccessEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event">TunnelCloseEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event">TunnelConnectEvent</a></td>
+<td class="colLast">
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.net.event Description">Package org.apache.guacamole.net.event Description</h2>
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.
+ These event classes are most useful when used with hooks implemented
+ using listener classes.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html"><code>org.apache.guacamole.net.event.listener</code></a></dd>
+</dl>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html
new file mode 100644
index 0000000..603c1e1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-tree.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.net.event Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.net.event Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.net.event</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> (implements org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="../../../../../org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/guacamole/net/auth/simple/package-tree.html">Prev</a></li>
+<li><a href="../../../../../org/apache/guacamole/net/event/listener/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html
new file mode 100644
index 0000000..f8b2f81
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/net/event/package-use.html
@@ -0,0 +1,227 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.net.event (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.net.event" class="title">Uses of Package<br>org.apache.guacamole.net.event</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.net.event.listener">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> used by <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/CredentialEvent.html#org.apache.guacamole.net.event">CredentialEvent</a>
+<div class="block">Abstract basis for events which may have associated user credentials when
+ triggered.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelEvent.html#org.apache.guacamole.net.event">TunnelEvent</a>
+<div class="block">Abstract basis for events associated with tunnels.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/UserEvent.html#org.apache.guacamole.net.event">UserEvent</a>
+<div class="block">Abstract basis for events which may have an associated AuthenticatedUser when
+ triggered.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.event.listener">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a> used by <a href="../../../../../org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/AuthenticationFailureEvent.html#org.apache.guacamole.net.event.listener">AuthenticationFailureEvent</a>
+<div class="block">An event which is triggered whenever a user's credentials fail to be
+ authenticated.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/AuthenticationSuccessEvent.html#org.apache.guacamole.net.event.listener">AuthenticationSuccessEvent</a>
+<div class="block">An event which is triggered whenever a user's credentials pass
+ authentication.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelCloseEvent.html#org.apache.guacamole.net.event.listener">TunnelCloseEvent</a>
+<div class="block">An event which is triggered whenever a tunnel is being closed.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/guacamole/net/event/class-use/TunnelConnectEvent.html#org.apache.guacamole.net.event.listener">TunnelConnectEvent</a>
+<div class="block">An event which is triggered whenever a tunnel is being connected.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/net/event/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html
new file mode 100644
index 0000000..d316156
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/BooleanGuacamoleProperty.html
@@ -0,0 +1,315 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class BooleanGuacamoleProperty" class="title">Class BooleanGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.BooleanGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">BooleanGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an boolean. Legal true values are "true",
+ or "false". Case does not matter.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html#BooleanGuacamoleProperty--">BooleanGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="BooleanGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>BooleanGuacamoleProperty</h4>
+<pre>public&nbsp;BooleanGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/BooleanGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html
new file mode 100644
index 0000000..cddd032
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/FileGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>FileGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="FileGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FileGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class FileGuacamoleProperty" class="title">Class FileGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.FileGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">FileGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html#FileGuacamoleProperty--">FileGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="FileGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>FileGuacamoleProperty</h4>
+<pre>public&nbsp;FileGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/FileGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html
new file mode 100644
index 0000000..995885f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/GuacamoleProperty.html
@@ -0,0 +1,281 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>GuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="GuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Interface GuacamoleProperty" class="title">Interface GuacamoleProperty&lt;Type&gt;</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt><span class="paramLabel">Type Parameters:</span></dt>
+<dd><code>Type</code> - The type this GuacamoleProperty will parse into.</dd>
+</dl>
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a>, <a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">GuacamoleProperty&lt;Type&gt;</span></pre>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the name of the property in guacamole.properties that this
+ GuacamoleProperty will parse.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the property in guacamole.properties that this
+         GuacamoleProperty will parse.</dd>
+</dl>
+</li>
+</ul>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="type parameter in GuacamoleProperty">Type</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+         throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/GuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html
new file mode 100644
index 0000000..5c4325e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/IntegerGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class IntegerGuacamoleProperty" class="title">Class IntegerGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.IntegerGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">IntegerGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html#IntegerGuacamoleProperty--">IntegerGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="IntegerGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>IntegerGuacamoleProperty</h4>
+<pre>public&nbsp;IntegerGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                   throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/IntegerGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html
new file mode 100644
index 0000000..55c6f9e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/LongGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>LongGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="LongGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class LongGuacamoleProperty" class="title">Class LongGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.LongGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">LongGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html#LongGuacamoleProperty--">LongGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="LongGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>LongGuacamoleProperty</h4>
+<pre>public&nbsp;LongGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/LongGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html
new file mode 100644
index 0000000..cc2dcb5
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/StringGuacamoleProperty.html
@@ -0,0 +1,314 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StringGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StringGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.properties</div>
+<h2 title="Class StringGuacamoleProperty" class="title">Class StringGuacamoleProperty</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.properties.StringGuacamoleProperty</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</dd>
+</dl>
+<hr>
+<br>
+<pre>public abstract class <span class="typeNameLabel">StringGuacamoleProperty</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
+implements <a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</pre>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html#StringGuacamoleProperty--">StringGuacamoleProperty</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.guacamole.properties.GuacamoleProperty">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></h3>
+<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#getName--">getName</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="StringGuacamoleProperty--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>StringGuacamoleProperty</h4>
+<pre>public&nbsp;StringGuacamoleProperty()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="parseValue-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>parseValue</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;parseValue(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)
+                  throws org.apache.guacamole.GuacamoleException</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">GuacamoleProperty</a></code></span></div>
+<div class="block">Parses the given string value into the type associated with this
+ GuacamoleProperty.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html#parseValue-java.lang.String-">parseValue</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>value</code> - The string value to parse.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The parsed value.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code>org.apache.guacamole.GuacamoleException</code> - If an error occurs while parsing the
+                            provided value.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StringGuacamoleProperty.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html
new file mode 100644
index 0000000..753fb7b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.BooleanGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.BooleanGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_SSL">GUACD_SSL</a></span></code>
+<div class="block">Whether guacd requires SSL/TLS on connections.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="BooleanGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html
new file mode 100644
index 0000000..13c9b04
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.FileGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.FileGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.FileGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/FileGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="FileGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html
new file mode 100644
index 0000000..90e340e
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/GuacamoleProperty.html
@@ -0,0 +1,258 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.properties.GuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.properties.GuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.properties.GuacamoleProperty" class="title">Uses of Interface<br>org.apache.guacamole.properties.GuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.properties">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> with parameters of type <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties, if any.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProperty-org.apache.guacamole.properties.GuacamoleProperty-Type-">getProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property,
+           Type&nbsp;defaultValue)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>
+<div class="block">Given a GuacamoleProperty, parses and returns the value set for that
+ property in guacamole.properties.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>&lt;Type&gt;&nbsp;Type</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getRequiredProperty-org.apache.guacamole.properties.GuacamoleProperty-">getRequiredProperty</a></span>(<a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;&nbsp;property)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.properties">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> that implement <a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span></code>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/GuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="GuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html
new file mode 100644
index 0000000..921f2c1
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.IntegerGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.IntegerGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_PORT">GUACD_PORT</a></span></code>
+<div class="block">The port that guacd (the Guacamole proxy server) is listening on.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="IntegerGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html
new file mode 100644
index 0000000..d12c168
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.LongGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.LongGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.properties.LongGuacamoleProperty</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/LongGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="LongGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html
new file mode 100644
index 0000000..c1f9374
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html
@@ -0,0 +1,179 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.properties.StringGuacamoleProperty" class="title">Uses of Class<br>org.apache.guacamole.properties.StringGuacamoleProperty</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> declared as <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#GUACD_HOSTNAME">GUACD_HOSTNAME</a></span></code>
+<div class="block">The hostname of the server where guacd (the Guacamole proxy server) is
+ running.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html" target="_top">Frames</a></li>
+<li><a href="StringGuacamoleProperty.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html
new file mode 100644
index 0000000..0bfb9d8
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-frame.html
@@ -0,0 +1,39 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/properties/package-summary.html" target="classFrame">org.apache.guacamole.properties</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="GuacamoleProperty.html" title="interface in org.apache.guacamole.properties" target="classFrame"><span class="interfaceName">GuacamoleProperty</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">BooleanGuacamoleProperty</a></li>
+<li><a href="FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">FileGuacamoleProperty</a></li>
+<li><a href="IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">IntegerGuacamoleProperty</a></li>
+<li><a href="LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">LongGuacamoleProperty</a></li>
+<li><a href="StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties" target="classFrame">StringGuacamoleProperty</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html
new file mode 100644
index 0000000..bcc6064
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-summary.html
@@ -0,0 +1,209 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.properties (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.properties</h1>
+<div class="docSummary">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;</td>
+<td class="colLast">
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties">BooleanGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties">FileGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a filename.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties">IntegerGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties">LongGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is an long.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties">StringGuacamoleProperty</a></td>
+<td class="colLast">
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.properties Description">Package org.apache.guacamole.properties Description</h2>
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html
new file mode 100644
index 0000000..12dd77b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-tree.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.properties Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.properties Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.properties</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.properties.<a href="../../../../org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;Type&gt;</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/net/event/listener/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-use.html
new file mode 100644
index 0000000..a7225ca
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/properties/package-use.html
@@ -0,0 +1,212 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.properties (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.properties (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.properties" class="title">Uses of Package<br>org.apache.guacamole.properties</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="#org.apache.guacamole.properties">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/BooleanGuacamoleProperty.html#org.apache.guacamole.environment">BooleanGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is an boolean.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/GuacamoleProperty.html#org.apache.guacamole.environment">GuacamoleProperty</a>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/IntegerGuacamoleProperty.html#org.apache.guacamole.environment">IntegerGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is an integer.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/StringGuacamoleProperty.html#org.apache.guacamole.environment">StringGuacamoleProperty</a>
+<div class="block">A GuacamoleProperty whose value is a simple string.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.properties">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a> used by <a href="../../../../org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/properties/class-use/GuacamoleProperty.html#org.apache.guacamole.properties">GuacamoleProperty</a>
+<div class="block">An abstract representation of a property in the guacamole.properties file,
+ which parses into a specific type.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/properties/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html
new file mode 100644
index 0000000..459cc7d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/ProtocolInfo.html
@@ -0,0 +1,492 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ProtocolInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ProtocolInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.protocols</div>
+<h2 title="Class ProtocolInfo" class="title">Class ProtocolInfo</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.protocols.ProtocolInfo</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">ProtocolInfo</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd. Each parameter is described with a Form, which
+ allows the parameters of a protocol to be exposed to the user as friendly
+ groupings of fields.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo--">ProtocolInfo</a></span>()</code>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">ProtocolInfo</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Creates a new ProtocolInfo having the given name and forms.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getConnectionForms--">getConnectionForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getName--">getName</a></span>()</code>
+<div class="block">Returns the unique name of this protocol.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#getSharingProfileForms--">getSharingProfileForms</a></span>()</code>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setConnectionForms-java.util.Collection-">setConnectionForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setName-java.lang.String-">setName</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Sets the unique name of this protocol.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html#setSharingProfileForms-java.util.Collection-">setSharingProfileForms</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</code>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ProtocolInfo-java.lang.String-java.util.Collection-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name and forms. The given
+ collections of forms are used to describe the parameters for connections
+ and sharing profiles respectively.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+<dd><code>connectionForms</code> - A collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+<dd><code>sharingProfileForms</code> - A collection of forms describing all known parameters relevant to a
+     sharing profile whose primary connection uses this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="ProtocolInfo--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo()</pre>
+<div class="block">Creates a new ProtocolInfo with no associated name or forms.</div>
+</li>
+</ul>
+<a name="ProtocolInfo-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name, but without any forms.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="ProtocolInfo-java.lang.String-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ProtocolInfo</h4>
+<pre>public&nbsp;ProtocolInfo(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                    <a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;forms)</pre>
+<div class="block">Creates a new ProtocolInfo having the given name and forms. The given
+ forms are used to describe the parameters for both connections and
+ sharing profiles.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name associated with the protocol.</dd>
+<dd><code>forms</code> - A collection of forms describing all known parameters for this
+     protocol, regardless of whether it is used in the context of a
+     connection or a sharing profile.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="getName--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getName</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
+<div class="block">Returns the unique name of this protocol. The protocol name is the
+ value required by the corresponding protocol plugin for guacd.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The unique name of this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setName</h4>
+<pre>public&nbsp;void&nbsp;setName(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Sets the unique name of this protocol. The protocol name is the value
+ required by the corresponding protocol plugin for guacd.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The unique name of this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="getConnectionForms--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getConnectionForms</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getConnectionForms()</pre>
+<div class="block">Returns a mutable collection of forms describing all known parameters for
+ a connection using this protocol. Changes to this collection affect the
+ forms exposed to the user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setConnectionForms-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setConnectionForms</h4>
+<pre>public&nbsp;void&nbsp;setConnectionForms(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;connectionForms)</pre>
+<div class="block">Sets the collection of forms describing all known parameters for a
+ connection using this protocol. The provided collection must be mutable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>connectionForms</code> - A mutable collection of forms describing all known parameters for a
+     connection using this protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="getSharingProfileForms--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSharingProfileForms</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;getSharingProfileForms()</pre>
+<div class="block">Returns a mutable collection of forms describing all known parameters
+ relevant to a sharing profile whose primary connection uses this
+ protocol. Changes to this collection affect the forms exposed to the
+ user.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A mutable collection of forms describing all known parameters
+     relevant to a sharing profile whose primary connection uses this
+     protocol.</dd>
+</dl>
+</li>
+</ul>
+<a name="setSharingProfileForms-java.util.Collection-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>setSharingProfileForms</h4>
+<pre>public&nbsp;void&nbsp;setSharingProfileForms(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form">Form</a>&gt;&nbsp;sharingProfileForms)</pre>
+<div class="block">Sets the collection of forms describing all known parameters relevant to
+ a sharing profile whose primary connection uses this protocol. The
+ provided collection must be mutable.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>sharingProfileForms</code> - A mutable collection of forms describing all known parameters
+     relevant to a sharing profile whose primary connection uses this
+     protocol.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ProtocolInfo.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html
new file mode 100644
index 0000000..e4335f4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/class-use/ProtocolInfo.html
@@ -0,0 +1,202 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.protocols.ProtocolInfo (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.protocols.ProtocolInfo (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocols/class-use/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.protocols.ProtocolInfo" class="title">Uses of Class<br>org.apache.guacamole.protocols.ProtocolInfo</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a> in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the protocol having the given name.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocol-java.lang.String-">getProtocol</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a> that return types with arguments of type <a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">Environment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/Environment.html#getProtocols--">getProtocols</a></span>()</code>
+<div class="block">Returns a map of all available protocols, where each key is the name of
+ that protocol as would be passed to guacd during connection.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">LocalEnvironment.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/environment/LocalEnvironment.html#getProtocols--">getProtocols</a></span>()</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/protocols/class-use/ProtocolInfo.html" target="_top">Frames</a></li>
+<li><a href="ProtocolInfo.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html
new file mode 100644
index 0000000..dc99d48
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-frame.html
@@ -0,0 +1,31 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/protocols/package-summary.html" target="classFrame">org.apache.guacamole.protocols</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="ProtocolInfo.html" title="class in org.apache.guacamole.protocols" target="classFrame">ProtocolInfo</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html
new file mode 100644
index 0000000..e1cc6c6
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-summary.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.protocols</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols">ProtocolInfo</a></td>
+<td class="colLast">
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html
new file mode 100644
index 0000000..37ff32b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-tree.html
@@ -0,0 +1,149 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.protocols Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.protocols Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.protocols</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.protocols.<a href="../../../../org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/properties/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html
new file mode 100644
index 0000000..3f6cbbc
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/protocols/package-use.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.protocols (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.protocols" class="title">Uses of Package<br>org.apache.guacamole.protocols</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.environment">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.environment">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a> used by <a href="../../../../org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/protocols/class-use/ProtocolInfo.html#org.apache.guacamole.environment">ProtocolInfo</a>
+<div class="block">Describes a protocol and all parameters associated with it, as required by
+ a protocol plugin for guacd.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/protocols/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html
new file mode 100644
index 0000000..935099b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/StandardTokens.html
@@ -0,0 +1,495 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>StandardTokens (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="StandardTokens (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":41,"i1":41,"i2":41};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StandardTokens.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class StandardTokens" class="title">Class StandardTokens</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.StandardTokens</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups. Manually generating the
+ standard tokens is not necessary.</span></div>
+</div>
+<br>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
+public class <span class="typeNameLabel">StandardTokens</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Utility class which provides access to standardized token names, as well as
+ facilities for generating those tokens from common objects.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#CLIENT_ADDRESS_TOKEN">CLIENT_ADDRESS_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#CLIENT_HOSTNAME_TOKEN">CLIENT_HOSTNAME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#DATE_TOKEN">DATE_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#PASSWORD_TOKEN">PASSWORD_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#TIME_TOKEN">TIME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#USERNAME_TOKEN">USERNAME_TOKEN</a></span></code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="USERNAME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>USERNAME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> USERNAME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the username token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.USERNAME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="PASSWORD_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PASSWORD_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> PASSWORD_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the password token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.PASSWORD_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="CLIENT_HOSTNAME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_HOSTNAME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CLIENT_HOSTNAME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client hostname token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.CLIENT_HOSTNAME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="CLIENT_ADDRESS_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>CLIENT_ADDRESS_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> CLIENT_ADDRESS_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the client address token added via addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.CLIENT_ADDRESS_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DATE_TOKEN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DATE_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> DATE_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the date token (server-local time) added via
+ addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.DATE_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="TIME_TOKEN">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TIME_TOKEN</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> TIME_TOKEN</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">The name of the time token (server-local time) added via
+ addStandardTokens().</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../constant-values.html#org.apache.guacamole.token.StandardTokens.TIME_TOKEN">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.
+ These the server date and time (GUAC_DATE and GUAC_TIME respectively).</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+</dl>
+</li>
+</ul>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                                     <a href="../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object. These
+ standardized tokens include the current username (GUAC_USERNAME),
+ password (GUAC_PASSWORD), and the server date and time (GUAC_DATE and
+ GUAC_TIME respectively). If either the username or password are not set
+ within the given credentials, the corresponding token(s) will remain
+ unset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+<dd><code>credentials</code> - The Credentials to use when populating the GUAC_USERNAME and
+     GUAC_PASSWORD tokens.</dd>
+</dl>
+</li>
+</ul>
+<a name="addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>addStandardTokens</h4>
+<pre>public static&nbsp;void&nbsp;addStandardTokens(<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                                     <a href="../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</pre>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials. These standardized tokens include
+ the current username (GUAC_USERNAME), password (GUAC_PASSWORD), and the
+ server date and time (GUAC_DATE and GUAC_TIME respectively). If either
+ the username or password are not set within the given user or their
+ provided credentials, the corresponding token(s) will remain unset.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>filter</code> - The TokenFilter to add standard tokens to.</dd>
+<dd><code>user</code> - The AuthenticatedUser to use when populating the GUAC_USERNAME and
+     GUAC_PASSWORD tokens.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/StandardTokens.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html
new file mode 100644
index 0000000..88017bf
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenFilter.html
@@ -0,0 +1,465 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenFilter (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenFilter (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class TokenFilter" class="title">Class TokenFilter</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.TokenFilter</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenFilter</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values. Unknown tokens are not replaced. If TOKEN_NAME
+ is a valid token, the literal value "${TOKEN_NAME}" can be included by using
+ "$${TOKEN_NAME}".</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#TokenFilter--">TokenFilter</a></span>()</code>
+<div class="block">Creates a new TokenFilter which has no associated tokens.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#TokenFilter-java.util.Map-">TokenFilter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokenValues)</code>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#filter-java.lang.String-">filter</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</code>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#filterValues-java.util.Map-">filterValues</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)</code>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#getToken-java.lang.String-">getToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#getTokens--">getTokens</a></span>()</code>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-">setToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</code>
+<div class="block">Sets the token having the given name to the given value.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-">setTokens</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</code>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenFilter.html#unsetToken-java.lang.String-">unsetToken</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Removes the value of the token with the given name.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TokenFilter--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>TokenFilter</h4>
+<pre>public&nbsp;TokenFilter()</pre>
+<div class="block">Creates a new TokenFilter which has no associated tokens. Tokens must
+ later be given using <a href="../../../../org/apache/guacamole/token/TokenFilter.html#setToken-java.lang.String-java.lang.String-"><code>setToken(java.lang.String, java.lang.String)</code></a>
+ or <a href="../../../../org/apache/guacamole/token/TokenFilter.html#setTokens-java.util.Map-"><code>setTokens(java.util.Map)</code></a>.</div>
+</li>
+</ul>
+<a name="TokenFilter-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TokenFilter</h4>
+<pre>public&nbsp;TokenFilter(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokenValues)</pre>
+<div class="block">Creates a new TokenFilter which is initialized with the given token
+ name/value pairs.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tokenValues</code> - A map containing token names and their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="setToken-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setToken</h4>
+<pre>public&nbsp;void&nbsp;setToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                     <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;value)</pre>
+<div class="block">Sets the token having the given name to the given value. Any existing
+ value for that token is replaced.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token to set.</dd>
+<dd><code>value</code> - The value to set the token to.</dd>
+</dl>
+</li>
+</ul>
+<a name="getToken-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getToken</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Returns the value of the token with the given name, or null if no such
+ token has been set.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token to return.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The value of the token with the given name, or null if no such
+     token exists.</dd>
+</dl>
+</li>
+</ul>
+<a name="unsetToken-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>unsetToken</h4>
+<pre>public&nbsp;void&nbsp;unsetToken(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Removes the value of the token with the given name. If no such token
+ exists, this function has no effect.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The name of the token whose value should be removed.</dd>
+</dl>
+</li>
+</ul>
+<a name="getTokens--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTokens</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;getTokens()</pre>
+<div class="block">Returns a map of all tokens, with each key being a token name, and each
+ value being the corresponding token value. Changes to this map will
+ directly affect the tokens associated with this filter.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A map of all token names and their corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="setTokens-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>setTokens</h4>
+<pre>public&nbsp;void&nbsp;setTokens(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;tokens)</pre>
+<div class="block">Replaces all current token values with the contents of the given map,
+ where each map key represents a token name, and each map value
+ represents a token value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tokens</code> - A map containing the token names and corresponding values to
+     assign.</dd>
+</dl>
+</li>
+</ul>
+<a name="filter-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>filter</h4>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;filter(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;input)</pre>
+<div class="block">Filters the given string, replacing any tokens with their corresponding
+ values.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>input</code> - The string to filter.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A copy of the input string, with any tokens replaced with their
+     corresponding values.</dd>
+</dl>
+</li>
+</ul>
+<a name="filterValues-java.util.Map-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>filterValues</h4>
+<pre>public&nbsp;void&nbsp;filterValues(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;map)</pre>
+<div class="block">Given an arbitrary map containing String values, replace each non-null
+ value with the corresponding filtered value.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>map</code> - The map whose values should be filtered.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenFilter.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenName.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenName.html
new file mode 100644
index 0000000..9b26bc9
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/TokenName.html
@@ -0,0 +1,298 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TokenName (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TokenName (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":9,"i1":9};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenName.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.token</div>
+<h2 title="Class TokenName" class="title">Class TokenName</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.token.TokenName</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">TokenName</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">Utility class for generating parameter token names.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-">canonicalize</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</code>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-">canonicalize</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</code>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="canonicalize-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>canonicalize</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalize(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+                                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;prefix)</pre>
+<div class="block">Generates the name of the parameter token that should be populated with
+ the given string. The provided string will be automatically transformed
+ from "CamelCase", "headlessCamelCase", "lowercase_with_underscores",
+ and "mixes_ofBoth_Styles" to consistent "UPPERCASE_WITH_UNDERSCORES".
+ Each returned token name will be prefixed with the string value provided
+ in the prefix.  The value provided in prefix will be prepended to the
+ string, but will itself not be transformed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The string to be used to generate the token name.</dd>
+<dd><code>prefix</code> - The prefix to prepend to the generated token name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the parameter token that should be populated with the
+     given string.</dd>
+</dl>
+</li>
+</ul>
+<a name="canonicalize-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>canonicalize</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;canonicalize(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name)</pre>
+<div class="block">Generate the name of a parameter token from the given string, with no
+ added prefix, such that the token name will simply be the transformed
+ version of the string. See
+ <a href="../../../../org/apache/guacamole/token/TokenName.html#canonicalize-java.lang.String-java.lang.String-"><code>canonicalize(java.lang.String, java.lang.String)</code></a></div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>name</code> - The string to use to generate the token name.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The name of the parameter token that should be populated with the
+     given string.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TokenName.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html
new file mode 100644
index 0000000..d9d04f4
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/StandardTokens.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.StandardTokens (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.StandardTokens (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.StandardTokens" class="title">Uses of Class<br>org.apache.guacamole.token.StandardTokens</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.token.StandardTokens</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/StandardTokens.html" target="_top">Frames</a></li>
+<li><a href="StandardTokens.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html
new file mode 100644
index 0000000..6873515
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenFilter.html
@@ -0,0 +1,199 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.TokenFilter (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.TokenFilter (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.TokenFilter" class="title">Uses of Class<br>org.apache.guacamole.token.TokenFilter</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a> in <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> with parameters of type <a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter and which do not require a corresponding Credentials object.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.AuthenticatedUser-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>&nbsp;user)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given AuthenticatedUser object,
+ including any associated credentials.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static void</code></td>
+<td class="colLast"><span class="typeNameLabel">StandardTokens.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/token/StandardTokens.html#addStandardTokens-org.apache.guacamole.token.TokenFilter-org.apache.guacamole.net.auth.Credentials-">addStandardTokens</a></span>(<a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a>&nbsp;filter,
+                 <a href="../../../../../org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">Credentials</a>&nbsp;credentials)</code>
+<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
+<div class="block">Adds tokens which are standardized by guacamole-ext to the given
+ TokenFilter using the values from the given Credentials object.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenFilter.html" target="_top">Frames</a></li>
+<li><a href="TokenFilter.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html
new file mode 100644
index 0000000..b809767
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/class-use/TokenName.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.token.TokenName (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.token.TokenName (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.token.TokenName" class="title">Uses of Class<br>org.apache.guacamole.token.TokenName</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.token.TokenName</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/token/class-use/TokenName.html" target="_top">Frames</a></li>
+<li><a href="TokenName.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-frame.html
new file mode 100644
index 0000000..ea37e8d
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-frame.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/token/package-summary.html" target="classFrame">org.apache.guacamole.token</a></h1>
+<div class="indexContainer">
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="StandardTokens.html" title="class in org.apache.guacamole.token" target="classFrame">StandardTokens</a></li>
+<li><a href="TokenFilter.html" title="class in org.apache.guacamole.token" target="classFrame">TokenFilter</a></li>
+<li><a href="TokenName.html" title="class in org.apache.guacamole.token" target="classFrame">TokenName</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-summary.html
new file mode 100644
index 0000000..c0e9e71
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-summary.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.token (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.token</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token">StandardTokens</a></td>
+<td class="colLast">Deprecated
+<div class="block"><span class="deprecationComment">Standard tokens are now supplied by default to the connect()
+ functions of connections and connection groups.</span></div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token">TokenFilter</a></td>
+<td class="colLast">
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token">TokenName</a></td>
+<td class="colLast">
+<div class="block">Utility class for generating parameter token names.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-summary.html">Prev&nbsp;Package</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-summary.html">Next&nbsp;Package</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-tree.html
new file mode 100644
index 0000000..cb4ac84
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-tree.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.token Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.token Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.token</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="../../../../org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a></li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/protocols/package-tree.html">Prev</a></li>
+<li><a href="../../../../org/apache/guacamole/xml/package-tree.html">Next</a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-use.html
new file mode 100644
index 0000000..e844dd2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/token/package-use.html
@@ -0,0 +1,172 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.token (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.token (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.token" class="title">Uses of Package<br>org.apache.guacamole.token</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.token">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.token">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a> used by <a href="../../../../org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/token/class-use/TokenFilter.html#org.apache.guacamole.token">TokenFilter</a>
+<div class="block">Filtering object which replaces tokens of the form "${TOKEN_NAME}" with
+ their corresponding values.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/token/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html
new file mode 100644
index 0000000..7162c9b
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/DocumentHandler.html
@@ -0,0 +1,382 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>DocumentHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="DocumentHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DocumentHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.xml</div>
+<h2 title="Class DocumentHandler" class="title">Class DocumentHandler</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.guacamole.xml.DocumentHandler</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public class <span class="typeNameLabel">DocumentHandler</span>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></pre>
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+               <a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</code>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#characters-char:A-int-int-">characters</a></span>(char[]&nbsp;ch,
+          int&nbsp;start,
+          int&nbsp;length)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#endElement-java.lang.String-java.lang.String-java.lang.String-">endElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+          <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">startElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+            <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName,
+            <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.xml.sax.helpers.DefaultHandler">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">DefaultHandler</a></h3>
+<code>endDocument, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning</code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>DocumentHandler</h4>
+<pre>public&nbsp;DocumentHandler(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+                       <a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</pre>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>rootElementName</code> - The name of the root element of the document
+                        being handled.</dd>
+<dd><code>root</code> - The TagHandler to use for the root element.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>startElement</h4>
+<pre>public&nbsp;void&nbsp;startElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)
+                  throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-" title="class or interface in org.xml.sax">startElement</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#startElement-java.lang.String-java.lang.String-java.lang.String-org.xml.sax.Attributes-" title="class or interface in org.xml.sax">startElement</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="endElement-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>endElement</h4>
+<pre>public&nbsp;void&nbsp;endElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;uri,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName,
+                       <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;qName)
+                throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#endElement-java.lang.String-java.lang.String-java.lang.String-" title="class or interface in org.xml.sax">endElement</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#endElement-java.lang.String-java.lang.String-java.lang.String-" title="class or interface in org.xml.sax">endElement</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="characters-char:A-int-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>characters</h4>
+<pre>public&nbsp;void&nbsp;characters(char[]&nbsp;ch,
+                       int&nbsp;start,
+                       int&nbsp;length)
+                throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true#characters-char:A-int-int-" title="class or interface in org.xml.sax">characters</a></code>&nbsp;in interface&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a></code></dd>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true#characters-char:A-int-int-" title="class or interface in org.xml.sax">characters</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax">org.xml.sax.helpers.DefaultHandler</a></code></dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/DocumentHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev&nbsp;Class</li>
+<li><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html
new file mode 100644
index 0000000..fe39d0a
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/TagHandler.html
@@ -0,0 +1,303 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:16 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TagHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TagHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TagHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.guacamole.xml</div>
+<h2 title="Interface TagHandler" class="title">Interface TagHandler</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public interface <span class="typeNameLabel">TagHandler</span></pre>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)</code>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#complete-java.lang.String-">complete</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;textContent)</code>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/guacamole/xml/TagHandler.html#init-org.xml.sax.Attributes-">init</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)</code>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="childElement-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>childElement</h4>
+<pre><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;childElement(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)
+                 throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when a child element of the current element is parsed.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>localName</code> - The local name of the child element seen.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The TagHandler which should handle all element-level events
+         related to the child element.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If the child element being parsed was not expected,
+                      or some other error prevents a proper TagHandler
+                      from being constructed for the child element.</dd>
+</dl>
+</li>
+</ul>
+<a name="init-org.xml.sax.Attributes-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>init</h4>
+<pre>void&nbsp;init(<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/Attributes.html?is-external=true" title="class or interface in org.xml.sax">Attributes</a>&nbsp;attributes)
+   throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when the element corresponding to this TagHandler is first seen,
+ just after an instance is created.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>attributes</code> - The attributes of the element seen.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If an error prevents a the TagHandler from being
+                      from being initialized.</dd>
+</dl>
+</li>
+</ul>
+<a name="complete-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>complete</h4>
+<pre>void&nbsp;complete(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;textContent)
+       throws <a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></pre>
+<div class="block">Called when this element, and all child elements, have been fully parsed,
+ and the entire text content of this element (if any) is available.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>textContent</code> - The full text content of this element, if any.</dd>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/SAXException.html?is-external=true" title="class or interface in org.xml.sax">SAXException</a></code> - If the text content received is not valid for any
+                      reason, or the child elements parsed are not
+                      correct.</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TagHandler.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html
new file mode 100644
index 0000000..b8d3945
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/DocumentHandler.html
@@ -0,0 +1,136 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.guacamole.xml.DocumentHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.guacamole.xml.DocumentHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.guacamole.xml.DocumentHandler" class="title">Uses of Class<br>org.apache.guacamole.xml.DocumentHandler</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.guacamole.xml.DocumentHandler</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/DocumentHandler.html" target="_top">Frames</a></li>
+<li><a href="DocumentHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html
new file mode 100644
index 0000000..cb91588
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/class-use/TagHandler.html
@@ -0,0 +1,196 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.guacamole.xml.TagHandler (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.guacamole.xml.TagHandler (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.guacamole.xml.TagHandler" class="title">Uses of Interface<br>org.apache.guacamole.xml.TagHandler</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.xml">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.xml">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a> in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> that return <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TagHandler.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/xml/TagHandler.html#childElement-java.lang.String-">childElement</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;localName)</code>
+<div class="block">Called when a child element of the current element is parsed.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> with parameters of type <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/guacamole/xml/DocumentHandler.html#DocumentHandler-java.lang.String-org.apache.guacamole.xml.TagHandler-">DocumentHandler</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;rootElementName,
+               <a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a>&nbsp;root)</code>
+<div class="block">Creates a new DocumentHandler which will use the given TagHandler
+ to handle the root element.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/guacamole/xml/class-use/TagHandler.html" target="_top">Frames</a></li>
+<li><a href="TagHandler.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html
new file mode 100644
index 0000000..d4f0d36
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-frame.html
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<h1 class="bar"><a href="../../../../org/apache/guacamole/xml/package-summary.html" target="classFrame">org.apache.guacamole.xml</a></h1>
+<div class="indexContainer">
+<h2 title="Interfaces">Interfaces</h2>
+<ul title="Interfaces">
+<li><a href="TagHandler.html" title="interface in org.apache.guacamole.xml" target="classFrame"><span class="interfaceName">TagHandler</span></a></li>
+</ul>
+<h2 title="Classes">Classes</h2>
+<ul title="Classes">
+<li><a href="DocumentHandler.html" title="class in org.apache.guacamole.xml" target="classFrame">DocumentHandler</a></li>
+</ul>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html
new file mode 100644
index 0000000..2d0f79c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-summary.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.xml (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Package" class="title">Package&nbsp;org.apache.guacamole.xml</h1>
+<div class="docSummary">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</div>
+<p>See:&nbsp;<a href="#package.description">Description</a></p>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
+<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Interface</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml">TagHandler</a></td>
+<td class="colLast">
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
+<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Class</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml">DocumentHandler</a></td>
+<td class="colLast">
+<div class="block">A simple ContentHandler implementation which digests SAX document events and
+ produces simpler tag-level events, maintaining its own stack for the
+ convenience of the tag handlers.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+<a name="package.description">
+<!--   -->
+</a>
+<h2 title="Package org.apache.guacamole.xml Description">Package org.apache.guacamole.xml Description</h2>
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li class="navBarCell1Rev">Package</li>
+<li>Class</li>
+<li><a href="package-use.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-summary.html">Prev&nbsp;Package</a></li>
+<li>Next&nbsp;Package</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-summary.html" target="_top">Frames</a></li>
+<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html
new file mode 100644
index 0000000..fea882f
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-tree.html
@@ -0,0 +1,157 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>org.apache.guacamole.xml Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="org.apache.guacamole.xml Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For Package org.apache.guacamole.xml</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="../../../../overview-tree.html">All Packages</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax"><span class="typeNameLink">DefaultHandler</span></a> (implements org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a>)
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="../../../../org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="../../../../org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a></li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../org/apache/guacamole/token/package-tree.html">Prev</a></li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-tree.html" target="_top">Frames</a></li>
+<li><a href="package-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-use.html b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-use.html
new file mode 100644
index 0000000..ab41fad
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/org/apache/guacamole/xml/package-use.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Package org.apache.guacamole.xml (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Package org.apache.guacamole.xml (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Uses of Package org.apache.guacamole.xml" class="title">Uses of Package<br>org.apache.guacamole.xml</h1>
+</div>
+<div class="contentContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.guacamole.xml">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.xml">
+<!--   -->
+</a>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a> used by <a href="../../../../org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../org/apache/guacamole/xml/class-use/TagHandler.html#org.apache.guacamole.xml">TagHandler</a>
+<div class="block">A simple element-level event handler for events triggered by the
+ SAX-driven DocumentHandler parser.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li>Class</li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../index-all.html">Index</a></li>
+<li><a href="../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../index.html?org/apache/guacamole/xml/package-use.html" target="_top">Frames</a></li>
+<li><a href="package-use.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/overview-frame.html b/doc/1.1.0/guacamole-ext/overview-frame.html
new file mode 100644
index 0000000..8949409
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/overview-frame.html
@@ -0,0 +1,44 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview List (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<div class="indexHeader"><span><a href="allclasses-frame.html" target="packageFrame">All&nbsp;Classes</a></span></div>
+<div class="indexContainer">
+<h2 title="Packages">Packages</h2>
+<ul title="Packages">
+<li><a href="org/apache/guacamole/environment/package-frame.html" target="packageFrame">org.apache.guacamole.environment</a></li>
+<li><a href="org/apache/guacamole/form/package-frame.html" target="packageFrame">org.apache.guacamole.form</a></li>
+<li><a href="org/apache/guacamole/language/package-frame.html" target="packageFrame">org.apache.guacamole.language</a></li>
+<li><a href="org/apache/guacamole/net/auth/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth</a></li>
+<li><a href="org/apache/guacamole/net/auth/credentials/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.credentials</a></li>
+<li><a href="org/apache/guacamole/net/auth/permission/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.permission</a></li>
+<li><a href="org/apache/guacamole/net/auth/simple/package-frame.html" target="packageFrame">org.apache.guacamole.net.auth.simple</a></li>
+<li><a href="org/apache/guacamole/net/event/package-frame.html" target="packageFrame">org.apache.guacamole.net.event</a></li>
+<li><a href="org/apache/guacamole/net/event/listener/package-frame.html" target="packageFrame">org.apache.guacamole.net.event.listener</a></li>
+<li><a href="org/apache/guacamole/properties/package-frame.html" target="packageFrame">org.apache.guacamole.properties</a></li>
+<li><a href="org/apache/guacamole/protocols/package-frame.html" target="packageFrame">org.apache.guacamole.protocols</a></li>
+<li><a href="org/apache/guacamole/token/package-frame.html" target="packageFrame">org.apache.guacamole.token</a></li>
+<li><a href="org/apache/guacamole/xml/package-frame.html" target="packageFrame">org.apache.guacamole.xml</a></li>
+</ul>
+</div>
+<p>&nbsp;</p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/overview-summary.html b/doc/1.1.0/guacamole-ext/overview-summary.html
new file mode 100644
index 0000000..63768eb
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/overview-summary.html
@@ -0,0 +1,223 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Overview (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Overview (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">guacamole-ext 1.1.0 API</h1>
+</div>
+<div class="contentContainer">
+<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Packages table, listing packages, and an explanation">
+<caption><span>Packages</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/environment/package-summary.html">org.apache.guacamole.environment</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/form/package-summary.html">org.apache.guacamole.form</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the contents and semantics of forms which
+ may be presented to the user.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/language/package-summary.html">org.apache.guacamole.language</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/package-summary.html">org.apache.guacamole.net.auth</a></td>
+<td class="colLast">
+<div class="block">Provides classes which can be used to extend or replace the authentication
+ functionality of the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/credentials/package-summary.html">org.apache.guacamole.net.auth.credentials</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/permission/package-summary.html">org.apache.guacamole.net.auth.permission</a></td>
+<td class="colLast">
+<div class="block">Provides classes which describe the various permissions a Guacamole user
+ can be granted.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/auth/simple/package-summary.html">org.apache.guacamole.net.auth.simple</a></td>
+<td class="colLast">
+<div class="block">Provides a basic AuthenticationProvider base class that can be used to create
+ simple AuthenticationProviders in the same way allowed by the old
+ authentication API.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/event/package-summary.html">org.apache.guacamole.net.event</a></td>
+<td class="colLast">
+<div class="block">Provides classes for storing information about events that are
+ triggered when users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/net/event/listener/package-summary.html">org.apache.guacamole.net.event.listener</a></td>
+<td class="colLast">
+<div class="block">Provides classes for hooking into various events that take place as
+ users log into and use the Guacamole web application.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/properties/package-summary.html">org.apache.guacamole.properties</a></td>
+<td class="colLast">
+<div class="block">Provides classes for reading properties from the web-application-wide
+ guacamole.properties file.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/protocols/package-summary.html">org.apache.guacamole.protocols</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="org/apache/guacamole/token/package-summary.html">org.apache.guacamole.token</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="org/apache/guacamole/xml/package-summary.html">org.apache.guacamole.xml</a></td>
+<td class="colLast">
+<div class="block">Classes driving the SAX-based XML parser used by the Guacamole web
+ application.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li class="navBarCell1Rev">Overview</li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-summary.html" target="_top">Frames</a></li>
+<li><a href="overview-summary.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/overview-tree.html b/doc/1.1.0/guacamole-ext/overview-tree.html
new file mode 100644
index 0000000..f5c0907
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/overview-tree.html
@@ -0,0 +1,402 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:18 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Class Hierarchy (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Class Hierarchy (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 class="title">Hierarchy For All Packages</h1>
+<span class="packageHierarchyLabel">Package Hierarchies:</span>
+<ul class="horizontal">
+<li><a href="org/apache/guacamole/environment/package-tree.html">org.apache.guacamole.environment</a>, </li>
+<li><a href="org/apache/guacamole/form/package-tree.html">org.apache.guacamole.form</a>, </li>
+<li><a href="org/apache/guacamole/language/package-tree.html">org.apache.guacamole.language</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/package-tree.html">org.apache.guacamole.net.auth</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/credentials/package-tree.html">org.apache.guacamole.net.auth.credentials</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/permission/package-tree.html">org.apache.guacamole.net.auth.permission</a>, </li>
+<li><a href="org/apache/guacamole/net/auth/simple/package-tree.html">org.apache.guacamole.net.auth.simple</a>, </li>
+<li><a href="org/apache/guacamole/net/event/package-tree.html">org.apache.guacamole.net.event</a>, </li>
+<li><a href="org/apache/guacamole/net/event/listener/package-tree.html">org.apache.guacamole.net.event.listener</a>, </li>
+<li><a href="org/apache/guacamole/properties/package-tree.html">org.apache.guacamole.properties</a>, </li>
+<li><a href="org/apache/guacamole/protocols/package-tree.html">org.apache.guacamole.protocols</a>, </li>
+<li><a href="org/apache/guacamole/token/package-tree.html">org.apache.guacamole.token</a>, </li>
+<li><a href="org/apache/guacamole/xml/package-tree.html">org.apache.guacamole.xml</a></li>
+</ul>
+</div>
+<div class="contentContainer">
+<h2 title="Class Hierarchy">Class Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticationProvider</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth">AuthenticationProvider</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleAuthenticationProvider.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleAuthenticationProvider</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractIdentifiable.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractIdentifiable</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractActiveConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractActiveConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth">ActiveConnection</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractAuthenticatedUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractAuthenticatedUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth">AuthenticatedUser</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnection.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUser.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUser</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserGroup.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserGroup</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AbstractUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">AbstractUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserContext.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationFailureEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationFailureEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/AuthenticationSuccessEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">AuthenticationSuccessEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/BooleanGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">BooleanGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">Credentials</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">CredentialsInfo</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/UserCredentials.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">UserCredentials</span></a></li>
+</ul>
+</li>
+<li type="circle">org.xml.sax.helpers.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/helpers.DefaultHandler.html?is-external=true" title="class or interface in org.xml.sax"><span class="typeNameLink">DefaultHandler</span></a> (implements org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ContentHandler.html?is-external=true" title="class or interface in org.xml.sax">ContentHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/DTDHandler.html?is-external=true" title="class or interface in org.xml.sax">DTDHandler</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html?is-external=true" title="class or interface in org.xml.sax">EntityResolver</a>, org.xml.sax.<a href="http://docs.oracle.com/javase/8/docs/api/org/xml/sax/ErrorHandler.html?is-external=true" title="class or interface in org.xml.sax">ErrorHandler</a>)
+<ul>
+<li type="circle">org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/DocumentHandler.html" title="class in org.apache.guacamole.xml"><span class="typeNameLink">DocumentHandler</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnection</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth">Connection</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnection.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnection</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingConnectionGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth">ConnectionGroup</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingConnectionGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingConnectionGroup</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DecoratingDirectory.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DecoratingDirectory</span></a>&lt;ObjectType&gt;</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingSharingProfile.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingSharingProfile</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth">SharingProfile</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUser.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUser</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth">User</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserContext</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth">UserContext</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/TokenInjectingUserContext.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">TokenInjectingUserContext</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/DelegatingUserGroup.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">DelegatingUserGroup</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth">UserGroup</a>)</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/BooleanField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">BooleanField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/DateField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">DateField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/EmailField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EmailField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/EnumField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">EnumField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/LanguageField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">LanguageField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/MultilineField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">MultilineField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/NumericField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">NumericField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/PasswordField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">PasswordField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TerminalColorSchemeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TerminalColorSchemeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TextField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TextField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/TimeZoneField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">TimeZoneField</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/UsernameField.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">UsernameField</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Field.Type.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Field.Type</span></a></li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/FieldOption.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">FieldOption</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/FileGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">FileGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.form.<a href="org/apache/guacamole/form/Form.html" title="class in org.apache.guacamole.form"><span class="typeNameLink">Form</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/IntegerGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">IntegerGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/LocalEnvironment.html" title="class in org.apache.guacamole.environment"><span class="typeNameLink">LocalEnvironment</span></a> (implements org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment">Environment</a>)</li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/LongGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">LongGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.protocols.<a href="org/apache/guacamole/protocols/ProtocolInfo.html" title="class in org.apache.guacamole.protocols"><span class="typeNameLink">ProtocolInfo</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleActivityRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleActivityRecordSet</span></a>&lt;RecordType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth">ActivityRecordSet</a>&lt;RecordType&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionRecordSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionRecordSet</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth">ConnectionRecordSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleDirectory</span></a>&lt;ObjectType&gt; (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth">Directory</a>&lt;ObjectType&gt;)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleConnectionGroupDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleConnectionGroupDirectory</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleUserDirectory.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleUserDirectory</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleObjectPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleObjectPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">ObjectPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleRelatedObjectSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleRelatedObjectSet</span></a> (implements org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth">RelatedObjectSet</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.simple.<a href="org/apache/guacamole/net/auth/simple/SimpleSystemPermissionSet.html" title="class in org.apache.guacamole.net.auth.simple"><span class="typeNameLink">SimpleSystemPermissionSet</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission">SystemPermissionSet</a>)</li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/StandardTokens.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">StandardTokens</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/StringGuacamoleProperty.html" title="class in org.apache.guacamole.properties"><span class="typeNameLink">StringGuacamoleProperty</span></a> (implements org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties">GuacamoleProperty</a>&lt;Type&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.html" title="class in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission</span></a> (implements org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission">Permission</a>&lt;Type&gt;)</li>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Throwable</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Exception</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleClientException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleSecurityException
+<ul>
+<li type="circle">org.apache.guacamole.GuacamoleUnauthorizedException
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleCredentialsException</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInsufficientCredentialsException</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.credentials.<a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials"><span class="typeNameLink">GuacamoleInvalidCredentialsException</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenFilter.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenFilter</span></a></li>
+<li type="circle">org.apache.guacamole.token.<a href="org/apache/guacamole/token/TokenName.html" title="class in org.apache.guacamole.token"><span class="typeNameLink">TokenName</span></a></li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/TranslatableMessage.html" title="class in org.apache.guacamole.language"><span class="typeNameLink">TranslatableMessage</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelCloseEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelCloseEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelConnectEvent.html" title="class in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelConnectEvent</span></a> (implements org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event">CredentialEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event">TunnelEvent</a>, org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event">UserEvent</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.Attribute.html" title="class in org.apache.guacamole.net.auth"><span class="typeNameLink">User.Attribute</span></a></li>
+</ul>
+</li>
+</ul>
+<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecord</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecord.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecord</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet</span></a>&lt;RecordType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionRecordSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionRecordSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Attributes</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationFailureListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationFailureListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticationProvider.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticationProvider</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/AuthenticationSuccessListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">AuthenticationSuccessListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connectable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/CredentialEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">CredentialEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Directory.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Directory</span></a>&lt;ObjectType&gt;</li>
+<li type="circle">org.apache.guacamole.environment.<a href="org/apache/guacamole/environment/Environment.html" title="interface in org.apache.guacamole.environment"><span class="typeNameLink">Environment</span></a></li>
+<li type="circle">org.apache.guacamole.properties.<a href="org/apache/guacamole/properties/GuacamoleProperty.html" title="interface in org.apache.guacamole.properties"><span class="typeNameLink">GuacamoleProperty</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Identifiable</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth">Shareable</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/AuthenticatedUser.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">AuthenticatedUser</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Connection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/SharingProfile.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">SharingProfile</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth">Permissions</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/Listener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">Listener</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/Permission.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">Permission</span></a>&lt;Type&gt;</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Permissions.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Permissions</span></a>
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/User.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">User</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserGroup.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserGroup</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Attributes.html" title="interface in org.apache.guacamole.net.auth">Attributes</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/PermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">PermissionSet</span></a>&lt;PermissionType&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermissionSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermissionSet.html" title="interface in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermissionSet</span></a></li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/RelatedObjectSet.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">RelatedObjectSet</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Shareable.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">Shareable</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActiveConnection.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">ActiveConnection</span></a> (also extends org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Connectable.html" title="interface in org.apache.guacamole.net.auth">Connectable</a>, org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/Identifiable.html" title="interface in org.apache.guacamole.net.auth">Identifiable</a>)</li>
+</ul>
+</li>
+<li type="circle">org.apache.guacamole.xml.<a href="org/apache/guacamole/xml/TagHandler.html" title="interface in org.apache.guacamole.xml"><span class="typeNameLink">TagHandler</span></a></li>
+<li type="circle">org.apache.guacamole.language.<a href="org/apache/guacamole/language/Translatable.html" title="interface in org.apache.guacamole.language"><span class="typeNameLink">Translatable</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelCloseListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelCloseListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.listener.<a href="org/apache/guacamole/net/event/listener/TunnelConnectListener.html" title="interface in org.apache.guacamole.net.event.listener"><span class="typeNameLink">TunnelConnectListener</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/TunnelEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">TunnelEvent</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/UserContext.html" title="interface in org.apache.guacamole.net.auth"><span class="typeNameLink">UserContext</span></a></li>
+<li type="circle">org.apache.guacamole.net.event.<a href="org/apache/guacamole/net/event/UserEvent.html" title="interface in org.apache.guacamole.net.event"><span class="typeNameLink">UserEvent</span></a></li>
+</ul>
+<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
+<ul>
+<li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
+<ul>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ActivityRecordSet.SortableProperty.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ActivityRecordSet.SortableProperty</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/ConnectionGroup.Type.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">ConnectionGroup.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.<a href="org/apache/guacamole/net/auth/GuacamoleProxyConfiguration.EncryptionMethod.html" title="enum in org.apache.guacamole.net.auth"><span class="typeNameLink">GuacamoleProxyConfiguration.EncryptionMethod</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/SystemPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">SystemPermission.Type</span></a></li>
+<li type="circle">org.apache.guacamole.net.auth.permission.<a href="org/apache/guacamole/net/auth/permission/ObjectPermission.Type.html" title="enum in org.apache.guacamole.net.auth.permission"><span class="typeNameLink">ObjectPermission.Type</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li class="navBarCell1Rev">Tree</li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?overview-tree.html" target="_top">Frames</a></li>
+<li><a href="overview-tree.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/package-list b/doc/1.1.0/guacamole-ext/package-list
new file mode 100644
index 0000000..c4b215c
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/package-list
@@ -0,0 +1,13 @@
+org.apache.guacamole.environment
+org.apache.guacamole.form
+org.apache.guacamole.language
+org.apache.guacamole.net.auth
+org.apache.guacamole.net.auth.credentials
+org.apache.guacamole.net.auth.permission
+org.apache.guacamole.net.auth.simple
+org.apache.guacamole.net.event
+org.apache.guacamole.net.event.listener
+org.apache.guacamole.properties
+org.apache.guacamole.protocols
+org.apache.guacamole.token
+org.apache.guacamole.xml
diff --git a/doc/1.1.0/guacamole-ext/script.js b/doc/1.1.0/guacamole-ext/script.js
new file mode 100644
index 0000000..b346356
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/script.js
@@ -0,0 +1,30 @@
+function show(type)
+{
+    count = 0;
+    for (var key in methods) {
+        var row = document.getElementById(key);
+        if ((methods[key] &  type) != 0) {
+            row.style.display = '';
+            row.className = (count++ % 2) ? rowColor : altColor;
+        }
+        else
+            row.style.display = 'none';
+    }
+    updateTabs(type);
+}
+
+function updateTabs(type)
+{
+    for (var value in tabs) {
+        var sNode = document.getElementById(tabs[value][0]);
+        var spanNode = sNode.firstChild;
+        if (value == type) {
+            sNode.className = activeTableTab;
+            spanNode.innerHTML = tabs[value][1];
+        }
+        else {
+            sNode.className = tableTab;
+            spanNode.innerHTML = "<a href=\"javascript:show("+ value + ");\">" + tabs[value][1] + "</a>";
+        }
+    }
+}
diff --git a/doc/1.1.0/guacamole-ext/serialized-form.html b/doc/1.1.0/guacamole-ext/serialized-form.html
new file mode 100644
index 0000000..076d0e2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/serialized-form.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc (1.8.0_212) on Sun Jan 26 10:16:17 PST 2020 -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Serialized Form (guacamole-ext 1.1.0 API)</title>
+<meta name="date" content="2020-01-26">
+<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
+<script type="text/javascript" src="script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Serialized Form (guacamole-ext 1.1.0 API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h1 title="Serialized Form" class="title">Serialized Form</h1>
+</div>
+<div class="serializedFormContainer">
+<ul class="blockList">
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.net.auth</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.Credentials">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/Credentials.html" title="class in org.apache.guacamole.net.auth">org.apache.guacamole.net.auth.Credentials</a> extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a> implements Serializable</h3>
+<dl class="nameValue">
+<dt>serialVersionUID:</dt>
+<dd>1L</dd>
+</dl>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockList">
+<h4>username</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> username</pre>
+<div class="block">An arbitrary username.</div>
+</li>
+<li class="blockList">
+<h4>password</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> password</pre>
+<div class="block">An arbitrary password.</div>
+</li>
+<li class="blockList">
+<h4>remoteAddress</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> remoteAddress</pre>
+<div class="block">The address of the client end of the connection which provided these
+ credentials, if known.</div>
+</li>
+<li class="blockListLast">
+<h4>remoteHostname</h4>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> remoteHostname</pre>
+<div class="block">The hostname or, if the hostname cannot be determined, the address of
+ the client end of the connection which provided these credentials, if
+ known.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList">
+<h2 title="Package">Package&nbsp;org.apache.guacamole.net.auth.credentials</h2>
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleCredentialsException</a> extends org.apache.guacamole.GuacamoleUnauthorizedException implements Serializable</h3>
+<ul class="blockList">
+<li class="blockList">
+<h3>Serialized Fields</h3>
+<ul class="blockList">
+<li class="blockListLast">
+<h4>credentialsInfo</h4>
+<pre><a href="org/apache/guacamole/net/auth/credentials/CredentialsInfo.html" title="class in org.apache.guacamole.net.auth.credentials">CredentialsInfo</a> credentialsInfo</pre>
+<div class="block">Information describing the form of valid credentials.</div>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInsufficientCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInsufficientCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> implements Serializable</h3>
+</li>
+<li class="blockList"><a name="org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException">
+<!--   -->
+</a>
+<h3>Class <a href="org/apache/guacamole/net/auth/credentials/GuacamoleInvalidCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">org.apache.guacamole.net.auth.credentials.GuacamoleInvalidCredentialsException</a> extends <a href="org/apache/guacamole/net/auth/credentials/GuacamoleCredentialsException.html" title="class in org.apache.guacamole.net.auth.credentials">GuacamoleCredentialsException</a> implements Serializable</h3>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="overview-summary.html">Overview</a></li>
+<li>Package</li>
+<li>Class</li>
+<li>Use</li>
+<li><a href="overview-tree.html">Tree</a></li>
+<li><a href="deprecated-list.html">Deprecated</a></li>
+<li><a href="index-all.html">Index</a></li>
+<li><a href="help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="index.html?serialized-form.html" target="_top">Frames</a></li>
+<li><a href="serialized-form.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2020. All rights reserved.</small></p>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/guacamole-ext/stylesheet.css b/doc/1.1.0/guacamole-ext/stylesheet.css
new file mode 100644
index 0000000..98055b2
--- /dev/null
+++ b/doc/1.1.0/guacamole-ext/stylesheet.css
@@ -0,0 +1,574 @@
+/* Javadoc style sheet */
+/*
+Overall document style
+*/
+
+@import url('resources/fonts/dejavu.css');
+
+body {
+    background-color:#ffffff;
+    color:#353833;
+    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
+    font-size:14px;
+    margin:0;
+}
+a:link, a:visited {
+    text-decoration:none;
+    color:#4A6782;
+}
+a:hover, a:focus {
+    text-decoration:none;
+    color:#bb7a2a;
+}
+a:active {
+    text-decoration:none;
+    color:#4A6782;
+}
+a[name] {
+    color:#353833;
+}
+a[name]:hover {
+    text-decoration:none;
+    color:#353833;
+}
+pre {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+}
+h1 {
+    font-size:20px;
+}
+h2 {
+    font-size:18px;
+}
+h3 {
+    font-size:16px;
+    font-style:italic;
+}
+h4 {
+    font-size:13px;
+}
+h5 {
+    font-size:12px;
+}
+h6 {
+    font-size:11px;
+}
+ul {
+    list-style-type:disc;
+}
+code, tt {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+    margin-top:8px;
+    line-height:1.4em;
+}
+dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    padding-top:4px;
+}
+table tr td dt code {
+    font-family:'DejaVu Sans Mono', monospace;
+    font-size:14px;
+    vertical-align:top;
+    padding-top:4px;
+}
+sup {
+    font-size:8px;
+}
+/*
+Document title and Copyright styles
+*/
+.clear {
+    clear:both;
+    height:0px;
+    overflow:hidden;
+}
+.aboutLanguage {
+    float:right;
+    padding:0px 21px;
+    font-size:11px;
+    z-index:200;
+    margin-top:-9px;
+}
+.legalCopy {
+    margin-left:.5em;
+}
+.bar a, .bar a:link, .bar a:visited, .bar a:active {
+    color:#FFFFFF;
+    text-decoration:none;
+}
+.bar a:hover, .bar a:focus {
+    color:#bb7a2a;
+}
+.tab {
+    background-color:#0066FF;
+    color:#ffffff;
+    padding:8px;
+    width:5em;
+    font-weight:bold;
+}
+/*
+Navigation bar styles
+*/
+.bar {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    padding:.8em .5em .4em .8em;
+    height:auto;/*height:1.8em;*/
+    font-size:11px;
+    margin:0;
+}
+.topNav {
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px; 
+}
+.bottomNav {
+    margin-top:10px;
+    background-color:#4D7A97;
+    color:#FFFFFF;
+    float:left;
+    padding:0;
+    width:100%;
+    clear:right;
+    height:2.8em;
+    padding-top:10px;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav {
+    background-color:#dee3e9;
+    float:left;
+    width:100%;
+    overflow:hidden;
+    font-size:12px;
+}
+.subNav div {
+    clear:left;
+    float:left;
+    padding:0 0 5px 6px;
+    text-transform:uppercase;
+}
+ul.navList, ul.subNavList {
+    float:left;
+    margin:0 25px 0 0;
+    padding:0;
+}
+ul.navList li{
+    list-style:none;
+    float:left;
+    padding: 5px 6px;
+    text-transform:uppercase;
+}
+ul.subNavList li{
+    list-style:none;
+    float:left;
+}
+.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited {
+    color:#FFFFFF;
+    text-decoration:none;
+    text-transform:uppercase;
+}
+.topNav a:hover, .bottomNav a:hover {
+    text-decoration:none;
+    color:#bb7a2a;
+    text-transform:uppercase;
+}
+.navBarCell1Rev {
+    background-color:#F8981D;
+    color:#253441;
+    margin: auto 5px;
+}
+.skipNav {
+    position:absolute;
+    top:auto;
+    left:-9999px;
+    overflow:hidden;
+}
+/*
+Page header and footer styles
+*/
+.header, .footer {
+    clear:both;
+    margin:0 20px;
+    padding:5px 0 0 0;
+}
+.indexHeader {
+    margin:10px;
+    position:relative;
+}
+.indexHeader span{
+    margin-right:15px;
+}
+.indexHeader h1 {
+    font-size:13px;
+}
+.title {
+    color:#2c4557;
+    margin:10px 0;
+}
+.subTitle {
+    margin:5px 0 0 0;
+}
+.header ul {
+    margin:0 0 15px 0;
+    padding:0;
+}
+.footer ul {
+    margin:20px 0 5px 0;
+}
+.header ul li, .footer ul li {
+    list-style:none;
+    font-size:13px;
+}
+/*
+Heading styles
+*/
+div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    background-color:#dee3e9;
+    border:1px solid #d0d9e0;
+    margin:0 0 6px -8px;
+    padding:7px 5px;
+}
+ul.blockList ul.blockList li.blockList h3 {
+    padding:0;
+    margin:15px 0;
+}
+ul.blockList li.blockList h2 {
+    padding:0px 0 20px 0;
+}
+/*
+Page layout container styles
+*/
+.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer {
+    clear:both;
+    padding:10px 20px;
+    position:relative;
+}
+.indexContainer {
+    margin:10px;
+    position:relative;
+    font-size:12px;
+}
+.indexContainer h2 {
+    font-size:13px;
+    padding:0 0 3px 0;
+}
+.indexContainer ul {
+    margin:0;
+    padding:0;
+}
+.indexContainer ul li {
+    list-style:none;
+    padding-top:2px;
+}
+.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt {
+    font-size:12px;
+    font-weight:bold;
+    margin:10px 0 0 0;
+    color:#4E4E4E;
+}
+.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd {
+    margin:5px 0 10px 0px;
+    font-size:14px;
+    font-family:'DejaVu Sans Mono',monospace;
+}
+.serializedFormContainer dl.nameValue dt {
+    margin-left:1px;
+    font-size:1.1em;
+    display:inline;
+    font-weight:bold;
+}
+.serializedFormContainer dl.nameValue dd {
+    margin:0 0 0 1px;
+    font-size:1.1em;
+    display:inline;
+}
+/*
+List styles
+*/
+ul.horizontal li {
+    display:inline;
+    font-size:0.9em;
+}
+ul.inheritance {
+    margin:0;
+    padding:0;
+}
+ul.inheritance li {
+    display:inline;
+    list-style:none;
+}
+ul.inheritance li ul.inheritance {
+    margin-left:15px;
+    padding-left:15px;
+    padding-top:1px;
+}
+ul.blockList, ul.blockListLast {
+    margin:10px 0 10px 0;
+    padding:0;
+}
+ul.blockList li.blockList, ul.blockListLast li.blockList {
+    list-style:none;
+    margin-bottom:15px;
+    line-height:1.4;
+}
+ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList {
+    padding:0px 20px 5px 10px;
+    border:1px solid #ededed; 
+    background-color:#f8f8f8;
+}
+ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList {
+    padding:0 0 5px 8px;
+    background-color:#ffffff;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockList {
+    margin-left:0;
+    padding-left:0;
+    padding-bottom:15px;
+    border:none;
+}
+ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast {
+    list-style:none;
+    border-bottom:none;
+    padding-bottom:0;
+}
+table tr td dl, table tr td dl dt, table tr td dl dd {
+    margin-top:0;
+    margin-bottom:1px;
+}
+/*
+Table styles
+*/
+.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary {
+    width:100%;
+    border-left:1px solid #EEE; 
+    border-right:1px solid #EEE; 
+    border-bottom:1px solid #EEE; 
+}
+.overviewSummary, .memberSummary  {
+    padding:0px;
+}
+.overviewSummary caption, .memberSummary caption, .typeSummary caption,
+.useSummary caption, .constantsSummary caption, .deprecatedSummary caption {
+    position:relative;
+    text-align:left;
+    background-repeat:no-repeat;
+    color:#253441;
+    font-weight:bold;
+    clear:none;
+    overflow:hidden;
+    padding:0px;
+    padding-top:10px;
+    padding-left:1px;
+    margin:0px;
+    white-space:pre;
+}
+.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link,
+.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link,
+.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover,
+.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover,
+.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active,
+.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active,
+.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited,
+.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited {
+    color:#FFFFFF;
+}
+.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span,
+.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    padding-bottom:7px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    border: none;
+    height:16px;
+}
+.memberSummary caption span.activeTableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#F8981D;
+    height:16px;
+}
+.memberSummary caption span.tableTab span {
+    white-space:nowrap;
+    padding-top:5px;
+    padding-left:12px;
+    padding-right:12px;
+    margin-right:3px;
+    display:inline-block;
+    float:left;
+    background-color:#4D7A97;
+    height:16px;
+}
+.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab {
+    padding-top:0px;
+    padding-left:0px;
+    padding-right:0px;
+    background-image:none;
+    float:none;
+    display:inline;
+}
+.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd,
+.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd {
+    display:none;
+    width:5px;
+    position:relative;
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .activeTableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative; 
+    float:left;
+    background-color:#F8981D;
+}
+.memberSummary .tableTab .tabEnd {
+    display:none;
+    width:5px;
+    margin-right:3px;
+    position:relative;
+    background-color:#4D7A97;
+    float:left;
+
+}
+.overviewSummary td, .memberSummary td, .typeSummary td,
+.useSummary td, .constantsSummary td, .deprecatedSummary td {
+    text-align:left;
+    padding:0px 0px 12px 10px;
+}
+th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th,
+td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{
+    vertical-align:top;
+    padding-right:0px;
+    padding-top:8px;
+    padding-bottom:3px;
+}
+th.colFirst, th.colLast, th.colOne, .constantsSummary th {
+    background:#dee3e9;
+    text-align:left;
+    padding:8px 3px 3px 7px;
+}
+td.colFirst, th.colFirst {
+    white-space:nowrap;
+    font-size:13px;
+}
+td.colLast, th.colLast {
+    font-size:13px;
+}
+td.colOne, th.colOne {
+    font-size:13px;
+}
+.overviewSummary td.colFirst, .overviewSummary th.colFirst,
+.useSummary td.colFirst, .useSummary th.colFirst,
+.overviewSummary td.colOne, .overviewSummary th.colOne,
+.memberSummary td.colFirst, .memberSummary th.colFirst,
+.memberSummary td.colOne, .memberSummary th.colOne,
+.typeSummary td.colFirst{
+    width:25%;
+    vertical-align:top;
+}
+td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover {
+    font-weight:bold;
+}
+.tableSubHeadingColor {
+    background-color:#EEEEFF;
+}
+.altColor {
+    background-color:#FFFFFF;
+}
+.rowColor {
+    background-color:#EEEEEF;
+}
+/*
+Content styles
+*/
+.description pre {
+    margin-top:0;
+}
+.deprecatedContent {
+    margin:0;
+    padding:10px 0;
+}
+.docSummary {
+    padding:0;
+}
+
+ul.blockList ul.blockList ul.blockList li.blockList h3 {
+    font-style:normal;
+}
+
+div.block {
+    font-size:14px;
+    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
+}
+
+td.colLast div {
+    padding-top:0px;
+}
+
+
+td.colLast a {
+    padding-bottom:3px;
+}
+/*
+Formatting effect styles
+*/
+.sourceLineNo {
+    color:green;
+    padding:0 30px 0 0;
+}
+h1.hidden {
+    visibility:hidden;
+    overflow:hidden;
+    font-size:10px;
+}
+.block {
+    display:block;
+    margin:3px 10px 2px 0px;
+    color:#474747;
+}
+.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink,
+.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel,
+.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink {
+    font-weight:bold;
+}
+.deprecationComment, .emphasizedPhrase, .interfaceName {
+    font-style:italic;
+}
+
+div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase,
+div.block div.block span.interfaceName {
+    font-style:normal;
+}
+
+div.contentContainer ul.blockList li.blockList h2{
+    padding-bottom:0px;
+}
diff --git a/doc/1.1.0/gug/adhoc-connections.html b/doc/1.1.0/gug/adhoc-connections.html
new file mode 100644
index 0000000..14a2b82
--- /dev/null
+++ b/doc/1.1.0/gug/adhoc-connections.html
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 14. Ad-hoc Connections</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="radius-auth.html" title="Chapter 13. RADIUS Authentication" /><link rel="next" href="using-guacamole.html" title="Chapter 15. Using Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 14. Ad-hoc Connections</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="radius-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="using-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="adhoc-connections"></a>Chapter 14. Ad-hoc Connections</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="adhoc-connections.html#quickconnect-downloading">Downloading the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#installing-quickconnect">Installing the quickconnect extension</a></span></dt><dd><dl><dt><span class="section"><a href="adhoc-connections.html#guac-quickconnect-config">Configuring Guacamole for the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#completing-quickconnect-install">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="adhoc-connections.html#using-quickconnect">Using the quickconnect extension</a></span></dt></dl></div><a id="idm46420848482096" class="indexterm"></a><a id="idm46420847676416" class="indexterm"></a><a id="idm46420847675520" class="indexterm"></a><p>The quickconnect extension provides a connection bar on the Guacamole Client home page
+        that allows users to type in the URI of a server to which they want to connect and the client
+        will parse the URI and immediately establish the connection.  The purpose of the extension is
+        to allow situations where administrators want to allow users the flexibility of establishing
+        their own connections without having to grant them access to edit connections or even to have
+        to create the connections at all, aside from typing the URI.</p><div class="important"><h3 class="title">Important</h3><p>There are several implications of using this extension that should be well-understood
+            by administrators prior to implementing it:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Connections established with this extension are created in-memory
+                    and only persist until the Guacamole session ends.</p></li><li class="listitem"><p>Connections created with this extension are not accessible to other users, and
+                    cannot be shared with other users.</p></li><li class="listitem"><p>This extension provides no functionality for authenticating users - it does
+                    not allow anonymous logins, and requires that users are successfully authenticated
+                    by another authentication module before it can be used.</p></li><li class="listitem"><p>The extension provides users the ability not only to establish connections, but
+                    also to set any of the parameters for a connection.  There are security implications for
+                    this - for example, RDP file sharing can be used to pass through any directory available
+                    on the server running guacd to the remote desktop.  This should be taken into consideration
+                    when enabling this extension and making sure that guacd is configured in a way that
+                    does not compromise sensitive system files by allowing access to them.</p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="quickconnect-downloading"></a>Downloading the quickconnect extension</h2></div></div></div><p>The quickconnect extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided in the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The quickconnect extension is packaged as a <code class="filename">.tar.gz</code> file containing
+            only the extension itself, <code class="filename">guacamole-auth-quickconnect-1.1.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-quickconnect"></a>Installing the quickconnect extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Place the <code class="filename">guacamole-auth-quickconnect-1.1.0.jar</code> file in
+                    the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-quickconnect-config"></a>Configuring Guacamole for the quickconnect extension</h3></div></div></div><a id="idm46420848179008" class="indexterm"></a><p>This module has no configuration options.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-quickconnect-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only load newly-installed extensions during startup, so your
+                servlet container will need to be restarted before the quickconnect extension
+                can be used. <span class="emphasis"><em>Doing this will disconnect all active users, so be sure
+                    that it is safe to do so prior to attempting installation.</em></span>
+                When ready, restart your servlet container and give the extension a try.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-quickconnect"></a>Using the quickconnect extension</h2></div></div></div><p>The quickconnect extension provides a field on the home page that allows you to enter
+            a Uniform Resource Identifier (URI) to create a connection. A URI is in the form:</p><div class="informalexample"><p><code class="uri"><em class="replaceable"><code>protocol</code></em>://<em class="replaceable"><code>username</code></em>:<em class="replaceable"><code>password</code></em>@<em class="replaceable"><code>host</code></em>:<em class="replaceable"><code>port</code></em>/?<em class="replaceable"><code>parameters</code></em></code></p></div><p>The <em class="replaceable"><code>protocol</code></em> field can have any of the protocols supported
+            by Guacamole, as documented in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>. Many of the
+            protocols define a default <em class="replaceable"><code>port</code></em> value, with the exception of
+            VNC. The <em class="replaceable"><code>parameters</code></em> field can specify any of the
+            protocol-specific parameters as documented on the configuration page.</p><p>To establish a connection, simply type in a valid URI and either press "Enter" or
+            click the connect button. This extension will parse the URI and create a new connection,
+            and immediately start that connection in the current browser.</p><p>Here are a few examples of URIs:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><div class="informalexample"><p><code class="uri">ssh://linux1.example.com/</code></p></div><p>Connect to the server linux1.example.com using the SSH protocol on the default
+                    SSH port (22). This will result in prompting for both username and
+                    password.</p></li><li class="listitem"><div class="informalexample"><p><code class="uri">vnc://linux1.example.com:5900/</code></p></div><p>Connect to the server linux1.example.com using the VNC protocol and specifying
+                    the port as 5900.</p></li><li class="listitem"><div class="informalexample"><p><code class="uri">
+                            rdp://localuser@windows1.example.com/?security=rdp&amp;ignore-cert=true&amp;disable-audio=true&amp;enable-drive=true&amp;drive-path=/mnt/usb
+                        </code></p></div><p>Connect to the server windows1.example.com using the RDP protocol and the user
+                    "localuser". This URI also specifies several RDP-specific parameters on the
+                    connection, including forcing security mode to RDP (security=rdp), ignoring any
+                    certificate errors (ignore-cert=true), disabling audio pass-through
+                    (disable-audio=true), and enabling filesystem redirection (enable-drive=true) to
+                    the /mnt/usb folder on the system running guacd (drive-path=/mnt/usb).</p></li></ul></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="radius-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="using-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 13. RADIUS Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 15. Using Guacamole</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/administration.html b/doc/1.1.0/gug/administration.html
new file mode 100644
index 0000000..8ea8791
--- /dev/null
+++ b/doc/1.1.0/gug/administration.html
@@ -0,0 +1,163 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 16. Administration</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="using-guacamole.html" title="Chapter 15. Using Guacamole" /><link rel="next" href="troubleshooting.html" title="Chapter 17. Troubleshooting" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 16. Administration</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="using-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="troubleshooting.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="administration"></a>Chapter 16. Administration</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="administration.html#session-management">Managing sessions</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#filtering-sessions">Filtering and sorting</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#connection-history">Connection history</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#filtering-history">Filtering and sorting</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#user-management">User management</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#user-group-membership">Editing group membership</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#user-group-management">User group management</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#idm46420845391936">Group membership of groups</a></span></dt></dl></dd><dt><span class="section"><a href="administration.html#connection-management">Connections and connection groups</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#connection-group-management">Connection organization and balancing</a></span></dt><dt><span class="section"><a href="administration.html#idm46420845357872">Connection sharing</a></span></dt></dl></dd></dl></div><a id="idm46420847313712" class="indexterm"></a><p>Users, user groups, connections, and active sessions can be administered from within the
+        web interface if the underlying authentication module supports this. The only
+        officially-supported authentication modules supporting this are the database extensions,
+        which are documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p><p>If you are using the default authentication mechanism, or another authentication
+        extension, this chapter probably does not apply to you, and the management options will not
+        be visible in the Guacamole interface. If, on the other hand, you are using one of the
+        database authentication providers, and you are logged in as a user with sufficient
+        privileges, you will see management sections listed within the settings screen:</p><div class="informalfigure"><div class="mediaobject"><img src="images/guacamole-settings-sections.png" width="315" /><div class="caption"><p>Sections within the Guacamole settings screen.</p></div></div></div><p>Clicking any of these options will take you to a corresponding management section where
+        you can perform administrative tasks.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="session-management"></a>Managing sessions</h2></div></div></div><a id="idm46420847271824" class="indexterm"></a><p>Clicking "Active Sessions" navigates to the session management screen. The session
+            management screen displays all active sessions and allows system administrators to kill
+            them as needed.</p><p>When any user accesses a particular remote desktop connection, a unique session is
+            created and will appear in the list of active sessions in the session management screen.
+            Each active session is displayed in a sortable table, showing the corresponding user's
+            username, how long the session has been active, the IP address of the machine from which
+            the user is connecting, and the name of the connection being used.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-sessions.png" width="450" /><div class="caption"><p>Session management interface</p></div></div></div></div><p>To kill one or more sessions, select the sessions by clicking their checkboxes. Once
+            all desired sessions have been selected, clicking "Kill Sessions" will immediately
+            disconnect those users from the associated connection.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="filtering-sessions"></a>Filtering and sorting</h3></div></div></div><p>The table can be resorted by clicking on the column headers. Clicking any column
+                will resort the table by the values within that column, while clicking a column
+                which is already sorted will toggle between ascending and descending order.</p><p>The content of the table can be limited through search terms specified in the
+                "Filter" field. Entering search terms will limit the table to only sessions
+                containing those terms. For example, to list only connections by the user
+                "guacadmin" which have been active since March, 2015, you would enter: "guacadmin
+                2015-03". Beware that if a search term needs to contain spaces, it must be enclosed
+                in double quotes to avoid being interpreted as multiple terms.</p><div class="informalfigure"><div class="mediaobject"><img src="images/session-filter-example-1.png" width="450" /></div></div><p>If you wish to narrow the content of the table to only those connections which
+                originate from a particular block of IP addresses, you can do this by specifying the
+                block in standard CIDR notation, such "10.0.0.0/8" or "2001:db8:1234::/48". This
+                will work with both IPv4 and IPv6 addresses.</p><div class="informalfigure"><div class="mediaobject"><img src="images/session-filter-example-2.png" width="450" /></div></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-history"></a>Connection history</h2></div></div></div><a id="idm46420847827344" class="indexterm"></a><a id="idm46420847826448" class="indexterm"></a><p>Clicking "History" navigates to the connection history screen. The connection history
+            screen displays a table of the most recent connections, including the user that used
+            that connection, the time the connection began, and how long the connection was
+            used.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-history.png" width="450" /><div class="caption"><p>Connection history interface</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="filtering-history"></a>Filtering and sorting</h3></div></div></div><p>Initially, the connection history table will display only the most recent history
+                records. You can page through these records to see how and when Guacamole has been
+                used.</p><p>Just as with the table of active sessions described earlier, the table of history
+                records can be resorted by clicking on the column headers or filtered by entering
+                search terms within the "Filter" field.</p><p>The same filtering format applies - a search term containing spaces must be
+                enclosed in double quotes to avoid being interpreted as multiple terms, and only
+                history records which contain each term will be included in the history table.
+                Unlike the table of active sessions, however, the filter will only take effect once
+                you click the "Search" button. This is due to the nature of the connection history,
+                as the number of records may be quite extensive.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="user-management"></a>User management</h2></div></div></div><a id="idm46420847696272" class="indexterm"></a><p>Clicking "Users" within the list of settings sections will take you to the user
+            management screen. Here you can add new users, edit the properties and privileges of
+            existing users, and view the times that each user last logged in. If you have a large
+            number of users, you can also enter search terms within the "Filter" field to filter the
+            list of users by username.</p><p>To add a new user, click the "New User" button. This will take you to a screen where
+            you will be allowed to enter the details of the new user, such as the password and
+            username. Note that, unless you specify otherwise, the new user will have no access to
+            any existing connections, nor any administrative privileges, and you will need to
+            manually set the user's password before they will be able to log in.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-users.png" width="450" /><div class="caption"><p>User management interface</p></div></div></div></div><p>To edit a user, just click on the user you wish to edit. You will be taken to a screen
+            which allows you to change the user's password, expire their password (such that it must
+            be changed at next login), add or remove administrative permissions, and add or remove
+            read access to specific connections, sharing profiles, or groups. If you are managing a
+            large number of connections or groups and wish to reduce the size of the list displayed,
+            you can do so by specifying search terms within the "Filter" field. Groups will be
+            filtered by name and connections will be filtered by name or protocol.</p><p>If you have delete permission on the user, you will also see a "Delete" button.
+            Clicking this button will permanently delete the user. Alternatively, if you only wish
+            to temporarily disable the account, checking "Login disabled" will achieve the same
+            effect while not removing the user entirely. If they attempt to log in, the attempt will
+            be rejected as if their account did not exist at all.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user.png" width="450" /><div class="caption"><p>Editing a user</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-group-membership"></a>Editing group membership</h3></div></div></div><p>When editing a user, the groups that user is a member of may be modified within
+                the "Groups" section. By default, only groups that the user is already a member of
+                will be displayed. If you have permission to modify the user's membership within a
+                group, an "X" icon will be available next to that group's name. Clicking the "X"
+                will remove the user from that group, taking effect after the user is saved.</p><p>To add users to a group, the arrow next to the list of groups must be clicked to
+                expand the section and reveal all available groups. Available groups may then be
+                checked/unchecked to modify the user's membership within those groups:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user-membership.png" width="450" /><div class="caption"><p>Editing group membership of a user</p></div></div></div></div><p>If you have a large number of available groups, you can also enter search terms
+                within the "Filter" field to filter the list of groups by name.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="user-group-management"></a>User group management</h2></div></div></div><a id="idm46420847720688" class="indexterm"></a><a id="idm46420847719792" class="indexterm"></a><a id="idm46420847718896" class="indexterm"></a><p>Clicking "Groups" within the list of settings sections will take you to the user group
+            management screen. Here you can add new groups and edit the properties and privileges of
+            existing groups. If you have a large number of user groups, you can also enter search
+            terms within the "Filter" field to filter the list of groups by name:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-groups.png" width="450" /><div class="caption"><p>User group management interface</p></div></div></div></div><p>To add a new group, click the "New Group" button. This will take you to a screen where
+            you will be allowed to enter the details of the new group, including membership and any
+            permissions that members of the group should have.</p><p>To edit a group, just click on the group you wish to edit. You will be taken to a
+            screen which allows you to modify membership, add or remove administrative permissions,
+            and add or remove read access to specific connections, sharing profiles, or connection
+            groups. If you are managing a large number of connections or groups and wish to reduce
+            the size of the list displayed, you can do so by specifying search terms within the
+            "Filter" field. Connection groups will be filtered by name and connections will be
+            filtered by name or protocol.</p><p>If you have delete permission on the group, you will also see a "Delete" button.
+            Clicking this button will permanently delete the group. Alternatively, if you only wish
+            to temporarily disable the effects of membership in the group, checking "Disabled" will
+            achieve the same effect while not removing the group entirely.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-user-group.png" width="450" /><div class="caption"><p>Editing a user group</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845391936"></a>Group membership of groups</h3></div></div></div><p>Managing the group membership of groups is more complex than that of users, as
+                groups may contain both users and groups, with permissions from parent groups
+                possibly being inherited. Parent groups, member groups, and member users, can all be
+                managed identically to the <a class="link" href="administration.html#user-group-membership" title="Editing group membership">group memberships of users</a>, with a
+                corresponding section dedicated to each within the user group editor:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-group-memberships.png" width="450" /><div class="caption"><p>Editing the various membership relations of a user group</p></div></div></div></div><p>Note that it is ultimately up to the extension providing the group to determine
+                how permissions granted to that group are inherited, if at all. The <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database
+                    authentication extension</a> implements full recursive inheritance of group
+                permissions, with permissions granted to a group being granted to all
+                members/descendants of that group, regardless of how deeply those members are
+                nested.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-management"></a>Connections and connection groups</h2></div></div></div><a id="idm46420845382368" class="indexterm"></a><a id="idm46420845381472" class="indexterm"></a><a id="idm46420845380576" class="indexterm"></a><p>Clicking "Connections" within the list of settings sections will take you to the
+            connection management screen. The connection management screen allows administrators to
+            create and edit connections, sharing profiles, and connection groups. If you have a
+            large number of connections, you can also enter search terms within the "Filter" field
+            to filter the list of connections by name or protocol.</p><p>To add a new connection or connection group, click the "New Connection" or "New Group"
+            button, or the "New Connection" or "New Group" placeholders which appear when you expand
+            an existing connection group. These options will take you to a screen where you will be
+            allowed to enter the details of the new object, such as its location, parameters, and
+            name. This name should be descriptive, but must also be unique with respect to other
+            objects in the same location.</p><p>Once you click "Save", the new object will be added, but will initially only be usable
+            by administrators and your current user. To grant another user access to the new
+            connection or connection group, you must <a class="link" href="administration.html#user-management" title="User management">edit that
+                user</a> or <a class="link" href="administration.html#user-group-management" title="User group management">a user group that the user is a member of</a>,
+            checking the box corresponding to the connection or connection group you created.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/manage-connections.png" width="450" /><div class="caption"><p>Connection management interface</p></div></div></div></div><p>Editing connections, sharing profiles, and connection groups works identically to
+            editing a user. Click on the object you wish to edit, and you will be taken to screen
+            which allows you to edit it. The screen will display all properties of the object,
+            including its usage history, if applicable.</p><p>If you have delete permission on the object, you will also see a "Delete" button.
+            Clicking this button will permanently delete the object being edited.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-connection.png" width="450" /><div class="caption"><p>Editing a connection</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="connection-group-management"></a>Connection organization and balancing</h3></div></div></div><p>Connection groups can be either "organizational" or "balancing". Each group can
+                contain any number of other connections or groups, but the semantics of the group
+                change depending on the type.</p><p>An organizational group behaves exactly as a folder or directory in a file system.
+                It simply contains connections and other groups, but provides no other behavior.
+                Clicking on an organizational group within a connection list will expand the group,
+                revealing its contents.</p><p>A balancing group behaves as a connection. It dynamically balances load across the
+                connections it contains, choosing the connection with the fewest number of active
+                users. Unlike organizational groups, clicking on a balancing group causes a new
+                connection to be opened. The actual underlying connection used depends on which
+                connection has the least load at the time the group was clicked, and whether session
+                affinity is enabled on that group.</p><p><a id="idm46420845362960" class="indexterm"></a>Enabling session affinity for a balancing group ensures that users are
+                consistently routed to the same underlying connections until they log out of
+                Guacamole. The load balancing behavior of the balancing group will apply only for
+                the first time a particular user connects to the group. If your users may lose their
+                desktop state if they are routed to a different underlying connection, this option
+                should be enabled.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-group.png" width="450" /><div class="caption"><p>Editing a connection group</p></div></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845357872"></a>Connection sharing</h3></div></div></div><p>The ability to share a connection is governed through the use of "sharing
+                profiles". If a sharing profile is created for a connection, users with access to
+                both that connection and that sharing profile will be able to share the connection
+                with other users by <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">generating connection sharing links</a>, even if
+                those users do not otherwise have user accounts within Guacamole.</p><p>The name of the sharing profile will be presented an option within the <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">share
+                    menu</a> for any users with access, while the level of access granted to
+                users of generated share links will be dictated by the parameters specified for the
+                sharing profile.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The only extension which ships with Guacamole and implements enough
+                        of the <a class="link" href="guacamole-ext.html" title="Chapter 22. guacamole-ext">Guacamole extension API</a> to share its
+                        connections is the <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication extension</a></em></span>.
+                    If you wish to share connections (or allow your users to share connections), you
+                    will need to use the database authentication extension to store those
+                    connections.</p><p>If you need to use other authentication schemes, keep in mind that the
+                    database authentication extension can be used <a class="link" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">alongside other extensions</a>, with the database handling connection
+                    storage and permissions only. Writing your own extension which supports sharing
+                    is another alternative, though that may be overly complicated if everything you
+                    need is already provided.</p></div><p>Unlike connections and groups, there is no "New Sharing Profile" button. Sharing
+                profiles are created through clicking the "New Sharing Profile" placeholders which
+                appear when connections are expanded. Just as expanding a connection group reveals
+                the connections or groups therein, expanding a connection reveals the sharing
+                profiles associated with that connection. This holds true with both <a class="link" href="administration.html#connection-management" title="Connections and connection groups">the
+                    list of connections in the connection management screen</a> and <a class="link" href="administration.html#user-management" title="User management">the list of
+                    connections in the user editor</a>.</p><p>Creating or editing a sharing profile is virtually identical to creating or
+                editing a connection, with the exception that not all connection parameters are
+                available:</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/edit-sharing-profile.png" width="450" /><div class="caption"><p>Editing a sharing profile</p></div></div></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="using-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="troubleshooting.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 15. Using Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 17. Troubleshooting</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/appendices.html b/doc/1.1.0/gug/appendices.html
new file mode 100644
index 0000000..32e4512
--- /dev/null
+++ b/doc/1.1.0/gug/appendices.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part III. Appendices</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="writing-you-own-guacamole-app.html" title="Chapter 26. Writing your own Guacamole application" /><link rel="next" href="faq.html" title="Appendix A. FAQ" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part III. Appendices</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="writing-you-own-guacamole-app.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="appendices"></a>Part III. Appendices</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="appendix"><a href="faq.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="protocol-reference.html">B. Guacamole protocol reference</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#drawing-instructions">Drawing instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#streaming-instructions">Streaming instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#object-instructions">Object instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-handshake-instructions">Client handshake instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-handshake-instructions">Server handshake instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-control-instructions">Client control instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-control-instructions">Server control instructions</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-events">Client events</a></span></dt></dl></dd><dt><span class="index"><a href="book-index.html">Index</a></span></dt></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="writing-you-own-guacamole-app.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="faq.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 26. Writing your own Guacamole application </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix A. FAQ</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/book-index.html b/doc/1.1.0/gug/book-index.html
new file mode 100644
index 0000000..3b54392
--- /dev/null
+++ b/doc/1.1.0/gug/book-index.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Index</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Index</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="protocol-reference.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> </td></tr></table><hr /></div><div class="index"><div class="titlepage"><div><div><h2 class="title"><a id="book-index"></a>Index</h2></div></div></div><div xmlns:xlink="http://www.w3.org/1999/xlink" class="index"><div class="indexdiv"><h3>A</h3><dl><dt id="ientry-idm46420843086176">ack, <a class="indexterm" href="protocol-reference.html#ack-instruction">ack</a></dt><dt id="ientry-idm46420847676416">adhoc, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt><dt id="ientry-idm46420847313712">administration, <a class="indexterm" href="administration.html">Administration</a></dt><dt id="ientry-idm46420845124768">API</dt><dd><dl><dt>C, <a class="indexterm" href="libguac.html">libguac</a></dt><dt>Java, <a class="indexterm" href="guacamole-common.html">guacamole-common</a>, <a class="indexterm" href="guacamole-ext.html">guacamole-ext</a></dt><dt>JavaScript, <a class="indexterm" href="guacamole-common-js.html">guacamole-common-js</a></dt></dl></dd><dt id="ientry-idm46420848564688">api-session-timeout, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420844276048">application</dt><dd><dl><dt>development, <a class="indexterm" href="writing-you-own-guacamole-app.html">Writing your own Guacamole application</a></dt></dl></dd><dt id="ientry-idm46420843545568">arc, <a class="indexterm" href="protocol-reference.html#arc-instruction">arc</a></dt><dt id="ientry-idm46420849712288">architecture, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a></dt><dt id="ientry-idm46420843012912">argv, <a class="indexterm" href="protocol-reference.html#argv-instruction">argv</a></dt><dt id="ientry-idm46420846525152">audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="protocol-reference.html#audio-stream-instruction">audio</a>, <a class="indexterm" href="protocol-reference.html#audio-handshake-instruction">audio</a></dt><dt id="ientry-idm46420846520160">audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420847073952">authentication, <a class="indexterm" href="configuring-guacamole.html#basic-auth">Using the default authentication</a></dt><dd><dl><dt>custom, <a class="indexterm" href="custom-auth.html">Custom authentication</a></dt></dl></dd><dt id="ientry-idm46420848561648">available-languages, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt></dl></div><div class="indexdiv"><h3>B</h3><dl><dt id="ientry-idm46420845449744">bind_host, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420845446000">bind_port, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420842994352">blob, <a class="indexterm" href="protocol-reference.html#blob-instruction">blob</a></dt><dt id="ientry-idm46420842907408">body, <a class="indexterm" href="protocol-reference.html#body-object-instruction">body</a></dt></dl></div><div class="indexdiv"><h3>C</h3><dl><dt id="ientry-idm46420847951472">CAS Authentication, <a class="indexterm" href="cas-auth.html">CAS Authentication</a></dt><dt id="ientry-idm46420847159328">CAS authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></dt></dl></dd><dt id="ientry-idm46420843391888">cfill, <a class="indexterm" href="protocol-reference.html#cfill-instruction">cfill</a></dt><dt id="ientry-idm46420842801792">client instructions</dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt>events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt></dl></dd><dt id="ientry-idm46420849705664">client plugin, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt><dt id="ientry-idm46420843375712">clip, <a class="indexterm" href="protocol-reference.html#clip-instruction">clip</a></dt><dt id="ientry-idm46420847490688">clipboard, <a class="indexterm" href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a>, <a class="indexterm" href="protocol-reference.html#clipboard-instruction">clipboard</a></dt><dt id="ientry-idm46420846808608">clipboard encoding, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt><dt id="ientry-idm46420843369648">close, <a class="indexterm" href="protocol-reference.html#close-instruction">close</a></dt><dt id="ientry-idm46420849611040">compiling</dt><dd><dl><dt>Guacamole, <a class="indexterm" href="installing-guacamole.html">Installing Guacamole natively</a></dt></dl></dd><dt id="ientry-idm46420848573040">configuration, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420849431152">configuring CAS authentication, <a class="indexterm" href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></dt><dt id="ientry-idm46420849227472">configuring Duo, <a class="indexterm" href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></dt><dt id="ientry-idm46420848418672">configuring HTTP header authentication, <a class="indexterm" href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></dt><dt id="ientry-idm46420847161760">configuring LDAP, <a class="indexterm" href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></dt><dt id="ientry-idm46420848220640">configuring OpenID Connect authentication, <a class="indexterm" href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></dt><dt id="ientry-idm46420848179008">configuring quickconnect, <a class="indexterm" href="adhoc-connections.html#guac-quickconnect-config">Configuring Guacamole for the quickconnect extension</a></dt><dt id="ientry-idm46420848490096">configuring RADIUS authentication, <a class="indexterm" href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></dt><dt id="ientry-idm46420848413344">configuring TOTP, <a class="indexterm" href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></dt><dt id="ientry-idm46420842849264">connect, <a class="indexterm" href="protocol-reference.html#connect-instruction">connect</a></dt><dt id="ientry-idm46420845290896">Connecting, waiting for first update..., <a class="indexterm" href="troubleshooting.html#idm46420845291632">No graphics appear</a></dt><dt id="ientry-idm46420846418816">connection broker, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a></dt><dt id="ientry-idm46420845381472">connection groups, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46420847826448">connection history, <a class="indexterm" href="administration.html#connection-history">Connection history</a></dt><dt id="ientry-idm46420845382368">connection management, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46420847052192">connections</dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#connection-setup">Adding connections to a user</a></dt><dt>adhoc, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt></dl></dd><dt id="ientry-idm46420842804032">control instructions, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt id="ientry-idm46420843363424">copy, <a class="indexterm" href="protocol-reference.html#copy-instruction">copy</a></dt><dt id="ientry-idm46420843341456">cstroke, <a class="indexterm" href="protocol-reference.html#cstroke-instruction">cstroke</a></dt><dt id="ientry-idm46420843318640">cursor, <a class="indexterm" href="protocol-reference.html#cursor-instruction">cursor</a></dt><dt id="ientry-idm46420843301312">curve, <a class="indexterm" href="protocol-reference.html#curve-instruction">curve</a></dt><dt id="ientry-idm46420844277056">custom application, <a class="indexterm" href="writing-you-own-guacamole-app.html">Writing your own Guacamole application</a></dt></dl></div><div class="indexdiv"><h3>D</h3><dl><dt id="ientry-idm46420848059040">default user, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></dt><dt id="ientry-idm46420848921088">deploying, <a class="indexterm" href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></dt><dt id="ientry-idm46420846525936">disabling audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420842797968">disconnect, <a class="indexterm" href="protocol-reference.html#client-disconnect-instruction">disconnect</a>, <a class="indexterm" href="protocol-reference.html#server-disconnect-instruction">disconnect</a></dt><dt id="ientry-idm46420843283440">dispose, <a class="indexterm" href="protocol-reference.html#dispose-instruction">dispose</a></dt><dt id="ientry-idm46420844230576">distort, <a class="indexterm" href="protocol-reference.html#distort-instruction">distort</a></dt><dt id="ientry-idm46420849300368">docker, <a class="indexterm" href="guacamole-docker.html">Installing Guacamole with Docker</a></dt><dt id="ientry-idm46420843551136">drawing instructions, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt><dt id="ientry-idm46420849461648">Duo, <a class="indexterm" href="duo-auth.html">Duo two-factor authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>E</h3><dl><dt id="ientry-idm46420847131312">enable-environment-properties, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420846520960">enabling audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420846505280">enabling file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420846515776">enabling printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420842977440">end, <a class="indexterm" href="protocol-reference.html#end-instruction">end</a></dt><dt id="ientry-idm46420842776016">error, <a class="indexterm" href="protocol-reference.html#error-instruction">error</a></dt><dt id="ientry-idm46420845295376">errors, <a class="indexterm" href="troubleshooting.html">Troubleshooting</a></dt><dd><dl><dt>guacd, <a class="indexterm" href="troubleshooting.html#guacd-errors">guacd errors</a></dt></dl></dd><dt id="ientry-idm46420844613760">events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt><dd><dl><dt>listeners, <a class="indexterm" href="event-listeners.html">Event listeners</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>F</h3><dl><dt id="ientry-idm46420842971120">file, <a class="indexterm" href="protocol-reference.html#file-stream-instruction">file</a></dt><dt id="ientry-idm46420846504480">file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="using-guacamole.html#file-transfer">Transferring files</a></dt><dt id="ientry-idm46420842894832">filesystem, <a class="indexterm" href="protocol-reference.html#filesystem-object-instruction">filesystem</a></dt></dl></div><div class="indexdiv"><h3>G</h3><dl><dt id="ientry-idm46420846423264">gateway domain, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846435728">gateway hostname, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846426256">gateway password, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846432384">gateway port, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846429360">gateway username, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420842886304">get, <a class="indexterm" href="protocol-reference.html#get-object-instruction">get</a></dt><dt id="ientry-idm46420847718896">groups, <a class="indexterm" href="administration.html#user-group-management">User group management</a>, <a class="indexterm" href="administration.html#connection-management">Connections and connection groups</a></dt><dt id="ientry-idm46420848058144">guacadmin, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></dt><dt id="ientry-idm46420849661696">Guacamole</dt><dd><dl><dt>definition, <a class="indexterm" href="preface.html#what-is-guac">What is Guacamole?</a></dt><dt>history, <a class="indexterm" href="preface.html">Introduction</a></dt></dl></dd><dt id="ientry-idm46420849615680">Guacamole protocol, <a class="indexterm" href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a>, <a class="indexterm" href="guacamole-protocol.html">The Guacamole protocol</a>, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dt id="ientry-idm46420848951136">guacamole-client</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-client">guacamole-client</a></dt></dl></dd><dt id="ientry-idm46420847428496">guacamole-common, <a class="indexterm" href="guacamole-common.html">guacamole-common</a></dt><dt id="ientry-idm46420845022704">guacamole-common-js, <a class="indexterm" href="guacamole-common-js.html">guacamole-common-js</a></dt><dt id="ientry-idm46420844902320">guacamole-ext, <a class="indexterm" href="guacamole-ext.html">guacamole-ext</a></dt><dt id="ientry-idm46420849557072">guacamole-server</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420848574208">guacamole.properties, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420848952608">guacamole.war</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-client">guacamole-client</a></dt></dl></dd><dt id="ientry-idm46420847876752">guacamole_connection, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></dt><dt id="ientry-idm46420847350912">guacamole_connection_group, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-groups">Connection groups</a></dt><dt id="ientry-idm46420847894128">guacamole_connection_group_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-group-permissions">Connection group permissions</a></dt><dt id="ientry-idm46420848249248">guacamole_connection_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-history">Usage history</a></dt><dt id="ientry-idm46420847875728">guacamole_connection_parameter, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></dt><dt id="ientry-idm46420847923264">guacamole_connection_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-connection-permissions">Connection permissions</a></dt><dt id="ientry-idm46420848169472">guacamole_entity, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-entities">Entities</a></dt><dt id="ientry-idm46420848888464">GUACAMOLE_HOME, <a class="indexterm" href="configuring-guacamole.html#guacamole-home">GUACAMOLE_HOME (/etc/guacamole)</a></dt><dt id="ientry-idm46420847600832">guacamole_sharing_profile, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></dt><dt id="ientry-idm46420847599792">guacamole_sharing_profile_parameter, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></dt><dt id="ientry-idm46420847908848">guacamole_sharing_profile_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-sharing-profile-permissions">Sharing profile permissions</a></dt><dt id="ientry-idm46420847315120">guacamole_system_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-system-permissions">lSystem permissions</a></dt><dt id="ientry-idm46420848154192">guacamole_user, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-users">Users</a></dt><dt id="ientry-idm46420847186848">guacamole_user_group, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></dt><dt id="ientry-idm46420847170544">guacamole_user_group_member, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></dt><dt id="ientry-idm46420847535344">guacamole_user_group_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-group-permissions">User group permissions</a></dt><dt id="ientry-idm46420848325632">guacamole_user_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-login-history">Login history</a></dt><dt id="ientry-idm46420848519264">guacamole_user_password_history, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-password-history">Password history</a></dt><dt id="ientry-idm46420847550192">guacamole_user_permission, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema-user-permissions">User permissions</a></dt><dt id="ientry-idm46420847371648">guacctl, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt id="ientry-idm46420849706560">guacd, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt><dt>errors, <a class="indexterm" href="troubleshooting.html#guacd-errors">guacd errors</a></dt><dt>logging, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>startup script, <a class="indexterm" href="installing-guacamole.html#guacamole-server-build-process">The build process</a></dt></dl></dd><dt id="ientry-idm46420847124080">guacd-hostname, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420847120256">guacd-port, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420847116432">guacd-ssl, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420845489680">guacd.conf, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420847370784">guacget, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt></dl></div><div class="indexdiv"><h3>H</h3><dl><dt id="ientry-idm46420845155632">handshake</dt><dd><dl><dt>instructions, <a class="indexterm" href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></dt></dl></dd><dt id="ientry-idm46420849713184">history, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a>, <a class="indexterm" href="guacamole-architecture.html#realmint">RealMint</a>, <a class="indexterm" href="administration.html#connection-history">Connection history</a></dt><dt id="ientry-idm46420849422992">HTTP header authentication, <a class="indexterm" href="header-auth.html">HTTP header authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></dt></dl></dd><dt id="ientry-idm46420846478800">Hyper-V, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt></dl></div><div class="indexdiv"><h3>I</h3><dl><dt id="ientry-idm46420843264784">identity, <a class="indexterm" href="protocol-reference.html#identity-instruction">identity</a></dt><dt id="ientry-idm46420842844368">image, <a class="indexterm" href="protocol-reference.html#image-handshake-instruction">image</a></dt><dt id="ientry-idm46420842960672">img, <a class="indexterm" href="protocol-reference.html#img-instruction">img</a></dt><dt id="ientry-idm46420849711392">implementation, <a class="indexterm" href="guacamole-architecture.html">Implementation and architecture</a></dt><dt id="ientry-idm46420847750064">input method editors, <a class="indexterm" href="using-guacamole.html#text-input">Typing without a physical keyboard</a></dt><dt id="ientry-idm46420849611936">installing, <a class="indexterm" href="installing-guacamole.html">Installing Guacamole natively</a></dt><dt id="ientry-idm46420843553072">instructions, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#client-control-instructions">Client control instructions</a></dt><dt>drawing, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt><dt>events, <a class="indexterm" href="protocol-reference.html#client-events">Client events</a></dt></dl></dd><dt id="ientry-idm46420847819824">interacting, <a class="indexterm" href="using-guacamole.html">Using Guacamole</a></dt></dl></div><div class="indexdiv"><h3>K</h3><dl><dt id="ientry-idm46420842728352">key, <a class="indexterm" href="protocol-reference.html#key-instruction">key</a></dt><dt id="ientry-idm46420846663952">keyboard layout, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt id="ientry-idm46420845766288">Kubernetes, <a class="indexterm" href="configuring-guacamole.html#kubernetes">Kubernetes</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-kubernetes">Adding a Kubernetes connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>container, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#kubernetes-recording">Graphical session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>namespace, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>pod, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a></dt><dt>read-only, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>scrollback, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a></dt></dl></dd><dt id="ientry-idm46420846764784">KVM, <a class="indexterm" href="configuring-guacamole.html#qemu">QEMU or KVM</a></dt></dl></div><div class="indexdiv"><h3>L</h3><dl><dt id="ientry-idm46420848526848">LDAP, <a class="indexterm" href="ldap-auth.html">LDAP authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></dt></dl></dd><dt id="ientry-idm46420843258304">lfill, <a class="indexterm" href="protocol-reference.html#lfill-instruction">lfill</a></dt><dt id="ientry-idm46420849703680">libguac, <a class="indexterm" href="libguac.html">libguac</a></dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt><dt>relationship with guacd, <a class="indexterm" href="guacamole-architecture.html#guacd">guacd</a></dt></dl></dd><dt id="ientry-idm46420849558512">libguac-client-kubernetes</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849562928">libguac-client-rdp</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849561456">libguac-client-ssh</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849559984">libguac-client-telnet</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420849564400">libguac-client-vnc</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420843248000">line, <a class="indexterm" href="protocol-reference.html#line-instruction">line</a></dt><dt id="ientry-idm46420846419568">load balancing, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a>, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt><dt id="ientry-idm46420846407312">loadbalanceinfo, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a></dt><dt id="ientry-idm46420842766736">log, <a class="indexterm" href="protocol-reference.html#log-instruction">log</a></dt><dt id="ientry-idm46420847102048">logging, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dd><dl><dt>debug, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>errors, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>guacd, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>info, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>trace, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt><dt>warnings, <a class="indexterm" href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></dt></dl></dd><dt id="ientry-idm46420845456608">log_level, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420843237632">lstroke, <a class="indexterm" href="protocol-reference.html#lstroke-instruction">lstroke</a></dt></dl></div><div class="indexdiv"><h3>M</h3><dl><dt id="ientry-idm46420847765920">mouse, <a class="indexterm" href="using-guacamole.html#touch-mouse">Mouse emulation</a>, <a class="indexterm" href="protocol-reference.html#server-mouse-instruction">mouse</a>, <a class="indexterm" href="protocol-reference.html#client-mouse-instruction">mouse</a></dt><dt id="ientry-idm46420843221344">move, <a class="indexterm" href="protocol-reference.html#move-instruction">move</a></dt><dt id="ientry-idm46420848123776">MySQL, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt></dl></div><div class="indexdiv"><h3>N</h3><dl><dt id="ientry-idm46420842944464">nest, <a class="indexterm" href="protocol-reference.html#nest-stream-instruction">nest</a></dt><dt id="ientry-idm46420842794032">nop, <a class="indexterm" href="protocol-reference.html#client-nop-instruction">nop</a>, <a class="indexterm" href="protocol-reference.html#server-nop-instruction">nop</a></dt></dl></div><div class="indexdiv"><h3>O</h3><dl><dt id="ientry-idm46420848363456">OpenID Connect Authentication, <a class="indexterm" href="openid-auth.html">OpenID Connect Authentication</a></dt><dt id="ientry-idm46420848219712">OpenID Connect authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>P</h3><dl><dt id="ientry-idm46420847037968">parameters</dt><dd><dl><dt>guacd.conf, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt>Kubernetes, <a class="indexterm" href="configuring-guacamole.html#kubernetes-network-parameters">Network/Container parameters</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-authentication">Authentication and SSL/TLS</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#kubernetes-recording">Graphical session recording</a></dt><dt>RDP, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-recording">Session recording</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-connection-broker">Load balancing and RDP connection brokers</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-remoteapp">RemoteApp</a></dt><dt>SSH, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-command">Running a command (instead of a shell)</a>, <a class="indexterm" href="configuring-guacamole.html#idm46420846160592">Internationalization/Locale settings</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-recording">Graphical session recording</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt>telnet, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a>, <a class="indexterm" href="configuring-guacamole.html#telnet-recording">Graphical session recording</a></dt><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-authentication">Authentication</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-recording">Session recording</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a>, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt></dl></dd><dt id="ientry-idm46420845463024">pid_file, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420842929616">pipe, <a class="indexterm" href="protocol-reference.html#pipe-instruction">pipe</a></dt><dt id="ientry-idm46420843206944">pop, <a class="indexterm" href="protocol-reference.html#pop-instruction">pop</a></dt><dt id="ientry-idm46420848122880">PostgreSQL, <a class="indexterm" href="jdbc-auth.html">Database authentication</a></dt><dt id="ientry-idm46420846451472">preconnection BLOB, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt><dt id="ientry-idm46420846455056">preconnection ID, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt><dt id="ientry-idm46420846479552">preconnection PDU, <a class="indexterm" href="configuring-guacamole.html#rdp-preconnection-pdu">Preconnection PDU (Hyper-V)</a></dt><dt id="ientry-idm46420846514976">printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt id="ientry-idm46420849614784">protocol, <a class="indexterm" href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></dt><dt id="ientry-idm46420843553840">protocol reference, <a class="indexterm" href="protocol-reference.html">Guacamole protocol reference</a></dt><dt id="ientry-idm46420844708528">protocols</dt><dd><dl><dt>implementing, <a class="indexterm" href="custom-protocols.html">Adding new protocols</a></dt></dl></dd><dt id="ientry-idm46420845290032">proxies, <a class="indexterm" href="troubleshooting.html#idm46420845291632">No graphics appear</a></dt><dt id="ientry-idm46420846875664">proxy</dt><dd><dl><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt></dl></dd><dt id="ientry-idm46420843200384">push, <a class="indexterm" href="protocol-reference.html#push-instruction">push</a></dt><dt id="ientry-idm46420842873984">put, <a class="indexterm" href="protocol-reference.html#put-object-instruction">put</a></dt></dl></div><div class="indexdiv"><h3>Q</h3><dl><dt id="ientry-idm46420846765696">QEMU, <a class="indexterm" href="configuring-guacamole.html#qemu">QEMU or KVM</a></dt><dt id="ientry-idm46420847675520">quickconnect, <a class="indexterm" href="adhoc-connections.html">Ad-hoc Connections</a></dt></dl></div><div class="indexdiv"><h3>R</h3><dl><dt id="ientry-idm46420847467376">RADIUS Authentication, <a class="indexterm" href="radius-auth.html">RADIUS Authentication</a></dt><dt id="ientry-idm46420848489184">RADIUS authentication</dt><dd><dl><dt>configuration, <a class="indexterm" href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></dt></dl></dd><dt id="ientry-idm46420846760608">RDP, <a class="indexterm" href="configuring-guacamole.html#rdp">RDP</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-rdp">Adding an RDP connection</a></dt><dt>Aero, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>audio input, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>bitmap caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>ClearType, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>client-name, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>color depth, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>console, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>console audio, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>desktop composition, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>disabling authentication, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>display resolution, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>display size, <a class="indexterm" href="configuring-guacamole.html#rdp-display-settings">Display settings</a></dt><dt>domain, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a></dt><dt>font smoothing, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>full window drag, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>glyph caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#rdp-recording">Session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a></dt><dt>ignoring certificates, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>initial program, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>keyboard layout, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>menu animations, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>NLA, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>offscreen bitmap caching, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#rdp-network-parameters">Network parameters</a></dt><dt>printing, <a class="indexterm" href="configuring-guacamole.html#rdp-device-redirection">Device redirection</a></dt><dt>security, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>theming, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt><dt>timezone, <a class="indexterm" href="configuring-guacamole.html#rdp-session-settings">Session settings</a></dt><dt>TLS, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#rdp-authentication">Authentication and security</a></dt><dt>wallpaper, <a class="indexterm" href="configuring-guacamole.html#rdp-perf-flags">Performance flags</a></dt></dl></dd><dt id="ientry-idm46420849568432">RDP support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420842747248">ready, <a class="indexterm" href="protocol-reference.html#ready-instruction">ready</a></dt><dt id="ientry-idm46420849657312">RealMint, <a class="indexterm" href="preface.html#what-is-guac">What is Guacamole?</a></dt><dt id="ientry-idm46420846779392">RealVNC, <a class="indexterm" href="configuring-guacamole.html#realvnc">RealVNC or TigerVNC</a></dt><dt id="ientry-idm46420843193840">rect, <a class="indexterm" href="protocol-reference.html#rect-instruction">rect</a></dt><dt id="ientry-idm46420846446288">remote desktop gateway, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt><dt id="ientry-idm46420846307264">RemoteApp, <a class="indexterm" href="configuring-guacamole.html#rdp-remoteapp">RemoteApp</a></dt><dt id="ientry-idm46420846876928">repeater</dt><dd><dl><dt>VNC, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt></dl></dd><dt id="ientry-idm46420843177600">reset, <a class="indexterm" href="protocol-reference.html#reset-instruction">reset</a></dt></dl></div><div class="indexdiv"><h3>S</h3><dl><dt id="ientry-idm46420848052880">schema, <a class="indexterm" href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a>, <a class="indexterm" href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></dt><dt id="ientry-idm46420842839072">select, <a class="indexterm" href="protocol-reference.html#select-instruction">select</a></dt><dt id="ientry-idm46420843548896">server instructions</dt><dd><dl><dt>control, <a class="indexterm" href="protocol-reference.html#server-control-instructions">Server control instructions</a></dt><dt>drawing, <a class="indexterm" href="protocol-reference.html#drawing-instructions">Drawing instructions</a></dt></dl></dd><dt id="ientry-idm46420845442400">server_certificate, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420845438112">server_key, <a class="indexterm" href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></dt><dt id="ientry-idm46420845362960">session affinity, <a class="indexterm" href="administration.html#connection-group-management">Connection organization and balancing</a></dt><dt id="ientry-idm46420847271824">session management, <a class="indexterm" href="administration.html#session-management">Managing sessions</a></dt><dt id="ientry-idm46420843171168">set, <a class="indexterm" href="protocol-reference.html#set-instruction">set</a></dt><dt id="ientry-idm46420846915936">SFTP, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a>, <a class="indexterm" href="configuring-guacamole.html#rdp-sftp">RDP + SFTP</a>, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt id="ientry-idm46420843160928">shade, <a class="indexterm" href="protocol-reference.html#shade-instruction">shade</a></dt><dt id="ientry-idm46420843152560">size, <a class="indexterm" href="protocol-reference.html#size-instruction">size</a>, <a class="indexterm" href="protocol-reference.html#size-handshake-instruction">size</a>, <a class="indexterm" href="protocol-reference.html#size-event-instruction">size</a></dt><dt id="ientry-idm46420847110944">skip-if-unavailable, <a class="indexterm" href="configuring-guacamole.html#initial-setup">guacamole.properties</a></dt><dt id="ientry-idm46420846287056">SSH, <a class="indexterm" href="configuring-guacamole.html#ssh">SSH</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-ssh">Adding an SSH connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a></dt><dt>command, <a class="indexterm" href="configuring-guacamole.html#ssh-command">Running a command (instead of a shell)</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#ssh-sftp">SFTP</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#ssh-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#ssh-recording">Graphical session recording</a></dt><dt>guacctl, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt>guacget, <a class="indexterm" href="using-guacamole.html#guacctl">guacctl / guacget</a></dt><dt>host-key, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>locale, <a class="indexterm" href="configuring-guacamole.html#idm46420846160592">Internationalization/Locale settings</a></dt><dt>passphrase, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>public key authentication, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt><dt>server-alive-interval, <a class="indexterm" href="configuring-guacamole.html#ssh-network-parameters">Network parameters</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#ssh-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a></dt><dt>timezone, <a class="indexterm" href="configuring-guacamole.html#idm46420846160592">Internationalization/Locale settings</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#ssh-typescripts">Text session recording (typescripts)</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#ssh-authentication">Authentication</a></dt></dl></dd><dt id="ientry-idm46420849567088">SSH support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420843142288">start, <a class="indexterm" href="protocol-reference.html#start-instruction">start</a></dt><dt id="ientry-idm46420842789728">sync, <a class="indexterm" href="protocol-reference.html#client-sync-instruction">sync</a>, <a class="indexterm" href="protocol-reference.html#server-sync-instruction">sync</a></dt><dt id="ientry-idm46420845338224">syslog, <a class="indexterm" href="troubleshooting.html#syslog">syslog</a></dt></dl></div><div class="indexdiv"><h3>T</h3><dl><dt id="ientry-idm46420845996704">telnet, <a class="indexterm" href="configuring-guacamole.html#telnet">Telnet</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-telnet">Adding a telnet connection</a></dt><dt>backspace, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a></dt><dt>color scheme, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a></dt><dt>font, <a class="indexterm" href="configuring-guacamole.html#telnet-display-settings">Display settings</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#telnet-recording">Graphical session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#telnet-network-parameters">Network parameters</a></dt><dt>terminal type, <a class="indexterm" href="configuring-guacamole.html#telnet-terminal-behavior">Controlling terminal behavior</a></dt><dt>text recording, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a></dt><dt>typescripts, <a class="indexterm" href="configuring-guacamole.html#telnet-typescripts">Text session recording (typescripts)</a></dt><dt>username, <a class="indexterm" href="configuring-guacamole.html#telnet-authentication">Authentication</a></dt></dl></dd><dt id="ientry-idm46420849565744">telnet support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd><dt id="ientry-idm46420846778480">TigerVNC, <a class="indexterm" href="configuring-guacamole.html#realvnc">RealVNC or TigerVNC</a></dt><dt id="ientry-idm46420846775440">TightVNC, <a class="indexterm" href="configuring-guacamole.html#tightvnc">TightVNC</a></dt><dt id="ientry-idm46420842819888">timezone, <a class="indexterm" href="protocol-reference.html#timezone-handshake-instruction">timezone</a></dt><dt id="ientry-idm46420845540336">tokens, <a class="indexterm" href="configuring-guacamole.html#parameter-tokens">Parameter tokens</a></dt><dd><dl><dt>cas, <a class="indexterm" href="configuring-guacamole.html#cas-tokens">CAS Extension Tokens</a></dt><dt>extension-specific, <a class="indexterm" href="configuring-guacamole.html#extension-tokens">Extension-specific tokens</a></dt><dt>ldap, <a class="indexterm" href="configuring-guacamole.html#ldap-tokens">LDAP Extension Tokens</a></dt></dl></dd><dt id="ientry-idm46420857820416">TOTP, <a class="indexterm" href="totp-auth.html">TOTP two-factor authentication</a></dt><dd><dl><dt>configuration, <a class="indexterm" href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></dt></dl></dd><dt id="ientry-idm46420843131856">transfer, <a class="indexterm" href="protocol-reference.html#transfer-instruction">transfer</a></dt><dt id="ientry-idm46420843105472">transform, <a class="indexterm" href="protocol-reference.html#transform-instruction">transform</a></dt><dt id="ientry-idm46420845296272">troubleshooting, <a class="indexterm" href="troubleshooting.html">Troubleshooting</a></dt><dt id="ientry-idm46420846445536">TS gateway, <a class="indexterm" href="configuring-guacamole.html#rdp-gateway">Remote desktop gateway</a></dt></dl></div><div class="indexdiv"><h3>U</h3><dl><dt id="ientry-idm46420842861520">undefine, <a class="indexterm" href="protocol-reference.html#undefine-object-instruction">undefine</a></dt><dt id="ientry-idm46420845284864">Unicode, <a class="indexterm" href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></dt><dt id="ientry-idm46420845283072">URIEncoding, <a class="indexterm" href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></dt><dt id="ientry-idm46420847720688">user group management, <a class="indexterm" href="administration.html#user-group-management">User group management</a></dt><dt id="ientry-idm46420847719792">user groups, <a class="indexterm" href="administration.html#user-group-management">User group management</a></dt><dt id="ientry-idm46420847696272">user management, <a class="indexterm" href="administration.html#user-management">User management</a></dt><dt id="ientry-idm46420847069728">user-mapping.xml, <a class="indexterm" href="configuring-guacamole.html#user-mapping">user-mapping.xml</a></dt><dt id="ientry-idm46420847061936">users</dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#user-setup">Adding users</a></dt></dl></dd><dt id="ientry-idm46420845283968">UTF-8, <a class="indexterm" href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></dt></dl></div><div class="indexdiv"><h3>V</h3><dl><dt id="ientry-idm46420842919264">video, <a class="indexterm" href="protocol-reference.html#video-stream-instruction">video</a>, <a class="indexterm" href="protocol-reference.html#video-handshake-instruction">video</a></dt><dt id="ientry-idm46420846768944">vino, <a class="indexterm" href="configuring-guacamole.html#vino">vino</a></dt><dt id="ientry-idm46420847043264">VNC, <a class="indexterm" href="configuring-guacamole.html#vnc">VNC</a></dt><dd><dl><dt>adding, <a class="indexterm" href="configuring-guacamole.html#adding-vnc">Adding a VNC connection</a></dt><dt>clipboard encoding, <a class="indexterm" href="configuring-guacamole.html#vnc-clipboard-encoding">Clipboard encoding</a></dt><dt>color depth, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>encodings, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>file transfer, <a class="indexterm" href="configuring-guacamole.html#vnc-sftp">File transfer (via SFTP)</a></dt><dt>graphical recording, <a class="indexterm" href="configuring-guacamole.html#vnc-recording">Session recording</a></dt><dt>hostname, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>listen timeout, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a></dt><dt>mouse pointer, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>password, <a class="indexterm" href="configuring-guacamole.html#vnc-authentication">Authentication</a></dt><dt>port, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>PulseAudio, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a></dt><dt>read-only, <a class="indexterm" href="configuring-guacamole.html#vnc-display-settings">Display settings</a></dt><dt>repeater, <a class="indexterm" href="configuring-guacamole.html#vnc-repeater">VNC Repeater</a></dt><dt>retrying connections, <a class="indexterm" href="configuring-guacamole.html#vnc-network-parameters">Network parameters</a></dt><dt>reverse connection, <a class="indexterm" href="configuring-guacamole.html#vnc-reverse-connections">Reverse VNC connections</a></dt><dt>sound, <a class="indexterm" href="configuring-guacamole.html#vnc-audio">Audio support (via PulseAudio)</a></dt></dl></dd><dt id="ientry-idm46420846782064">VNC servers, <a class="indexterm" href="configuring-guacamole.html#vnc-servers">Which VNC server?</a></dt><dt id="ientry-idm46420849569776">VNC support</dt><dd><dl><dt>compiling, <a class="indexterm" href="installing-guacamole.html#building-guacamole-server">Building guacamole-server</a></dt></dl></dd></dl></div><div class="indexdiv"><h3>W</h3><dl><dt id="ientry-idm46420849700240">web application, <a class="indexterm" href="guacamole-architecture.html#web-application">The web application</a></dt><dt id="ientry-idm46420848896944">WebSocket, <a class="indexterm" href="installing-guacamole.html#idm46420848897680">What about WebSocket?</a></dt></dl></div><div class="indexdiv"><h3>X</h3><dl><dt id="ientry-idm46420846772048">x11vnc, <a class="indexterm" href="configuring-guacamole.html#x11vnc">x11vnc</a></dt></dl></div><div class="indexdiv"><h3>Z</h3><dl><dt id="ientry-idm46420847771680">zoom, <a class="indexterm" href="using-guacamole.html#scaling-display">Scaling the display</a></dt></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="protocol-reference.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> </td></tr><tr><td width="40%" align="left" valign="top">Appendix B. Guacamole protocol reference </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> </td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/cas-auth.html b/doc/1.1.0/gug/cas-auth.html
new file mode 100644
index 0000000..464f99b
--- /dev/null
+++ b/doc/1.1.0/gug/cas-auth.html
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 11. CAS Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="header-auth.html" title="Chapter 10. HTTP header authentication" /><link rel="next" href="openid-auth.html" title="Chapter 12. OpenID Connect Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 11. CAS Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="header-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="openid-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="cas-auth"></a>Chapter 11. CAS Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="cas-auth.html#cas-downloading">Downloading the CAS authentication extension</a></span></dt><dt><span class="section"><a href="cas-auth.html#installing-cas-auth">Installing CAS authentication</a></span></dt><dd><dl><dt><span class="section"><a href="cas-auth.html#guac-cas-config">Configuring Guacamole for CAS Authentication</a></span></dt><dt><span class="section"><a href="cas-auth.html#completing-cas-install">Completing the installation</a></span></dt><dt><span class="section"><a href="cas-auth.html#cas-clearpass">Using CAS ClearPass</a></span></dt></dl></dd></dl></div><a id="idm46420847951472" class="indexterm"></a><p>CAS is an open-source Single Sign On (SSO) provider that allows multiple applications
+        and services to authenticate against it and brokers those authentication requests to a
+        back-end authentication provider.  This module allows Guacamole to redirect to CAS for
+        authentication and user services.  This module must be layered on top of other authentication
+        extensions that provide connection information, as it only provides user authentication.
+        </p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="cas-downloading"></a>Downloading the CAS authentication extension</h2></div></div></div><p>The CAS authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The CAS authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing only the extension itself,
+                <code class="filename">guacamole-auth-cas-1.1.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-cas-auth"></a>Installing CAS authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the CAS authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-cas-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use CAS authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-cas-config"></a>Configuring Guacamole for CAS Authentication</h3></div></div></div><a id="idm46420849431152" class="indexterm"></a><a id="idm46420847159328" class="indexterm"></a><p>The CAS authentication extension provides two configuration properties, both
+                of which are required.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">cas-authorization-endpoint</span></span></dt><dd><p>The URL of the CAS authentication server.  This should be the full
+                            path to the base of the CAS installation.</p></dd><dt><span class="term"><span class="property">cas-redirect-uri</span></span></dt><dd><p>The URI to redirect back to upon successful authentication.  Normally
+                            this will be the full URL of your Guacamole installation.</p></dd><dt><span class="term"><span class="property">cas-clearpass-key</span></span></dt><dd><p>If using CAS ClearPass to pass the SSO password to Guacamole, this
+                            parameter specifies the private key file to use to decrypt the
+                            password.  See the section on ClearPass below.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-cas-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before CAS authentication can be used. <span class="emphasis"><em>Doing this will
+                    disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="cas-clearpass"></a>Using CAS ClearPass</h3></div></div></div><p>CAS has a function called ClearPass that can be used to cache the password
+                used for SSO authentication and make that available to services at a later
+                time.  Configuring the CAS server for ClearPass is beyond the scope of this
+                article - more information can be found on the Apereo CAS wiki at the
+                following URL: <a class="link" href="https://apereo.github.io/cas" target="_top">
+                https://apereo.github.io/cas</a>.</p><p>Once you have CAS configured for credential caching, you need to configure
+                the service with a keypair for passing the credential securely.  The public 
+                key gets installed on the CAS server, while the private key gets configured
+                with the <span class="property">cas-clearpass-key</span> property.  The private key
+                file needs to be in RSA PKCS8 format.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="header-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="openid-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 10. HTTP header authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 12. OpenID Connect Authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/configuring-guacamole.html b/doc/1.1.0/gug/configuring-guacamole.html
new file mode 100644
index 0000000..ec63eb5
--- /dev/null
+++ b/doc/1.1.0/gug/configuring-guacamole.html
@@ -0,0 +1,2489 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 5. Configuring Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="proxying-guacamole.html" title="Chapter 4. Proxying Guacamole" /><link rel="next" href="jdbc-auth.html" title="Chapter 6. Database authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 5. Configuring Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="proxying-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="jdbc-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="configuring-guacamole"></a>Chapter 5. Configuring Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="configuring-guacamole.html#guacamole-home"><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#overriding-guacamole-home">Overriding <code class="varname">GUACAMOLE_HOME</code></a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#initial-setup"><code class="filename">guacamole.properties</code></a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#basic-auth">Using the default authentication</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#user-mapping"><code class="filename">user-mapping.xml</code></a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#connection-configuration">Configuring connections</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#vnc">VNC</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#rdp">RDP</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#ssh">SSH</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#telnet">Telnet</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#kubernetes">Kubernetes</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#parameter-tokens">Parameter tokens</a></span></dt></dl></dd><dt><span class="section"><a href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></span></dt></dl></div><p>After installing Guacamole, you need to configure users and connections before Guacamole
+        will work. This chapter covers general configuration of Guacamole and the use of its default
+        authentication method.</p><p>Guacamole's default authentication method reads all users and connections from a single
+        file called <code class="filename">user-mapping.xml</code>. This authentication method is intended to
+        be:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Sufficient for small deployments of Guacamole.</p></li><li class="listitem"><p>A relatively-easy means of verifying that Guacamole has been properly set
+                up.</p></li></ol></div><p>Other, more complex authentication methods which use backend databases, LDAP, etc. are
+        discussed in a separate, dedicated chapters.</p><p>Regardless of the authentication method you use, Guacamole's configuration always consists
+        of two main pieces: a directory referred to as <code class="varname">GUACAMOLE_HOME</code>, which is
+        the primary search location for configuration files, and
+            <code class="filename">guacamole.properties</code>, the main configuration file used by Guacamole
+        and its extensions.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-home"></a><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</h2></div></div></div><a id="idm46420848888464" class="indexterm"></a><p><code class="varname">GUACAMOLE_HOME</code> is the name given to Guacamole's configuration
+            directory, which is located at <code class="filename">/etc/guacamole</code> by default. All
+            configuration files, extensions, etc. reside within this directory. The structure of
+                <code class="varname">GUACAMOLE_HOME</code> is rigorously defined, and consists of the
+            following optional files:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacamole.properties</code></span></dt><dd><p>The main Guacamole configuration file. Properties within this file dictate
+                        how Guacamole will connect to <span class="package">guacd</span>, and may configure
+                        the behavior of installed authentication extensions.</p></dd><dt><span class="term"><code class="filename">logback.xml</code></span></dt><dd><p>Guacamole uses a logging system called Logback for all messages. By
+                        default, Guacamole will log to the console only, but you can change this by
+                        providing your own Logback configuration file.</p></dd><dt><span class="term"><code class="filename">extensions/</code></span></dt><dd><p>The install location for all Guacamole extensions. Guacamole will
+                        automatically load all <code class="filename">.jar</code> files within this directory
+                        on startup.</p></dd><dt><span class="term"><code class="filename">lib/</code></span></dt><dd><p>The search directory for libraries required by any Guacamole extensions.
+                        Guacamole will make the <code class="filename">.jar</code> files within this
+                        directory available to all extensions. If your extensions require additional
+                        libraries, such as database drivers, this is the proper place to put
+                        them.</p></dd></dl></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="overriding-guacamole-home"></a>Overriding <code class="varname">GUACAMOLE_HOME</code></h3></div></div></div><p>If you cannot or do not wish to use <code class="filename">/etc/guacamole</code> for
+                    <code class="varname">GUACAMOLE_HOME</code>, the location can be overridden through any of
+                the following methods:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Creating a directory named <code class="filename">.guacamole</code>, within the
+                        home directory of <span class="emphasis"><em>the user running the servlet
+                            container</em></span>. This directory will automatically be used for
+                            <code class="varname">GUACAMOLE_HOME</code> if it exists.</p></li><li class="listitem"><p>Specifying the full path to an alternative directory with the environment
+                        variable <code class="varname">GUACAMOLE_HOME</code>. <span class="emphasis"><em>Be sure to consult the
+                            documentation for your servlet container to determine how to properly
+                            set environment variables.</em></span></p></li><li class="listitem"><p>Specifying the full path to an alternative directory with the system
+                        property <span class="property">guacamole.home</span>.</p></li></ol></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="initial-setup"></a><code class="filename">guacamole.properties</code></h2></div></div></div><a id="idm46420848574208" class="indexterm"></a><a id="idm46420848573040" class="indexterm"></a><p>The Guacamole web application uses one main configuration file called
+                <code class="filename">guacamole.properties</code>. This file is the common location for all
+            configuration properties read by Guacamole or any extension of Guacamole, including
+            authentication providers.</p><p>In previous releases, this file had to be in the classpath of your servlet container.
+            Now, the location of <code class="filename">guacamole.properties</code> can be explicitly defined
+            with environment variables or system properties, and the classpath is only used as a
+            last resort. When searching for <code class="filename">guacamole.properties</code>, Guacamole
+            will check, in order:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Within <code class="varname">GUACAMOLE_HOME</code>, as defined above.</p></li><li class="listitem"><p>The classpath of the servlet container.</p></li></ol></div><p>The <code class="filename">guacamole.properties</code> file is optional and is used to
+            configure Guacamole in situations where the defaults are insufficient, or to provide
+            additional configuration information for extensions. There are several standard
+            properties that are always available for use:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a id="idm46420848564688" class="indexterm"></a><em class="parameter"><code>api-session-timeout</code></em></span></dt><dd><p>The amount of time, in minutes, to allow Guacamole sessions
+                        (authentication tokens) to remain valid despite inactivity. If omitted,
+                        Guacamole sessions will expire after 60 minutes of inactivity.</p></dd><dt><span class="term"><a id="idm46420848561648" class="indexterm"></a><em class="parameter"><code>available-languages</code></em></span></dt><dd><p>A comma-separated whitelist of language keys to allow as display language
+                        choices within the Guacamole interface. For example, to restrict Guacamole
+                        to only English and German, you would specify:</p><div class="informalexample"><pre class="programlisting">available-languages: en, de</pre></div><p>As English is the fallback language, used whenever a translation key is
+                        missing from the chosen language, English should only be omitted from this
+                        list if you are absolutely positive that no strings are missing.</p><p>The corresponding JSON of any built-in languages not listed here will
+                        still be available over HTTP, but the Guacamole interface will not use them,
+                        nor will they be used automatically based on local browser language. If
+                        omitted, all defined languages will be available.</p></dd><dt><span class="term"><a id="idm46420847131312" class="indexterm"></a><em class="parameter"><code>enable-environment-properties</code></em></span></dt><dd><p>If set to "true", Guacamole will first evaluate its environment to obtain
+                        the value for any given configuration property, before using a value specified
+                        in <code class="filename">guacamole.properties</code> or falling back to a default
+                        value. By enabling this option, you can easily override any other configuration
+                        property using an environment variable.</p><div class="informalexample"><pre class="programlisting">enable-environment-properties: true</pre></div><p>When searching for a configuration property in the environment, the name of
+                        the property is first transformed by converting all lower case characters to
+                        their upper case equivalents, and by replacing all hyphen characters (<code class="code">-</code>) with
+                        underscore characters (<code class="code">_</code>). For example, the 
+                        <em class="parameter"><code>guacd-hostname</code></em> property would be transformed to 
+                        <em class="parameter"><code>GUACD_HOSTNAME</code></em> when searching the environment.
+                    </p></dd><dt><span class="term"><a id="idm46420847124080" class="indexterm"></a><em class="parameter"><code>guacd-hostname</code></em></span></dt><dd><p>The host the Guacamole proxy daemon (<span class="package">guacd</span>) is
+                        listening on. If omitted, Guacamole will assume <span class="package">guacd</span> is
+                        listening on localhost.</p></dd><dt><span class="term"><a id="idm46420847120256" class="indexterm"></a><em class="parameter"><code>guacd-port</code></em></span></dt><dd><p>The port the Guacamole proxy daemon (<span class="package">guacd</span>) is
+                        listening on. If omitted, Guacamole will assume <span class="package">guacd</span> is
+                        listening on port 4822.</p></dd><dt><span class="term"><a id="idm46420847116432" class="indexterm"></a><em class="parameter"><code>guacd-ssl</code></em></span></dt><dd><p>If set to "true", Guacamole will require SSL/TLS encryption between the
+                        web application and <span class="package">guacd</span>. By default, communication
+                        between the web application and <span class="package">guacd</span> will be
+                        unencrypted.</p><p>Note that if you enable this option, you must also configure
+                            <span class="package">guacd</span> to use SSL via command line options. These
+                        options are documented in the manpage of <span class="package">guacd</span>. You will
+                        need an SSL certificate and private key.</p></dd><dt><span class="term"><a id="idm46420847110944" class="indexterm"></a><em class="parameter"><code>skip-if-unavailable</code></em></span></dt><dd><p>A comma-separated list of the identifiers of authentication providers that
+                        should be allowed to fail internally without aborting the authentication
+                        process. For example, to request that Guacamole ignore failures due to the
+                        LDAP directory or MySQL server being unexpectedly down, allowing other
+                        authentication providers to continue functioning:</p><div class="informalexample"><pre class="programlisting">skip-if-unavailable: mysql, ldap</pre></div><p>By default, Guacamole takes a conservative approach to internal failures,
+                        aborting the authentication process if an internal error occurs within any
+                        authentication provider. Depending on the nature of the error, this may mean
+                        that no users can log in until the cause of the failure is dealt with. The
+                            <em class="parameter"><code>skip-if-unavailable</code></em> property may be used to
+                        explicitly inform Guacamole that one or more underlying systems are expected
+                        to occasionally experience failures, and that other functioning systems
+                        should be relied upon if they do fail.</p></dd></dl></div><div class="example"><a id="idm46420847105936"></a><p class="title"><strong>Example 5.1. Example <code class="filename">guacamole.properties</code></strong></p><div class="example-contents"><a id="guacamole.properties"></a><pre xml:lang="en" class="programlisting" lang="en"># Hostname and port of guacamole proxy
+guacd-hostname: localhost
+guacd-port:     4822</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="webapp-logging"></a>Logging within the web application</h2></div></div></div><a id="idm46420847102048" class="indexterm"></a><p>By default, Guacamole logs all messages to the console. Servlet containers like Tomcat
+            will automatically redirect these messages to a log file,
+                <code class="filename">catalina.out</code> in the case of Tomcat, which you can read through
+            while Guacamole runs. Messages are logged at four different log levels, depending on
+            message importance and severity:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a id="idm46420847099216" class="indexterm"></a><code class="constant">error</code></span></dt><dd><p>Errors are fatal conditions. An operation, described in the log message,
+                        was attempted but could not proceed, and the failure of this operation is a
+                        serious problem that needs to be addressed.</p></dd><dt><span class="term"><a id="idm46420847095856" class="indexterm"></a><code class="constant">warn</code></span></dt><dd><p>Warnings are generally non-fatal conditions. The operation continued, but
+                        encountered noteworthy problems.</p></dd><dt><span class="term"><a id="idm46420847092608" class="indexterm"></a><code class="constant">info</code></span></dt><dd><p>"Info" messages are purely informational. They may be useful or
+                        interesting to administrators, but are not generally critical to proper
+                        operation of a Guacamole server.</p></dd><dt><span class="term"><a id="idm46420847089264" class="indexterm"></a><code class="constant">debug</code></span></dt><dd><p>Debug messages are highly detailed and oriented toward development. Most
+                        debug messages will contain stack traces and internal information that is
+                        useful when investigating problems within code. It is expected that debug
+                        messages, though verbose, will not affect performance.</p></dd><dt><span class="term"><a id="idm46420847085792" class="indexterm"></a><code class="constant">trace</code></span></dt><dd><p>Trace messages are similar to debug messages in intent and verbosity, but
+                        are so low-level that they may affect performance due to their frequency.
+                        Trace-level logging is rarely necessary, and is mainly useful in providing
+                        highly detailed context around issues being investigated.</p></dd></dl></div><p>Guacamole logs messages using a logging framework called <a class="link" href="http://logback.qos.ch/" target="_top">Logback</a> and, by default, will only log messages at the
+                "<code class="constant">info</code>" level or higher. If you wish to change the log level, or
+            configure how or where Guacamole logs messages, you can do so by providing your own
+                <code class="filename">logback.xml</code> file within <code class="varname">GUACAMOLE_HOME</code>. For
+            example, to log all messages to the console, even "<code class="constant">debug</code>" messages,
+            you might use the following <code class="filename">logback.xml</code>:</p><div class="informalexample"><pre class="programlisting">&lt;configuration&gt;
+
+    &lt;!-- Appender for debugging --&gt;
+    &lt;appender name="GUAC-DEBUG" class="ch.qos.logback.core.ConsoleAppender"&gt;
+        &lt;encoder&gt;
+            &lt;pattern&gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n&lt;/pattern&gt;
+        &lt;/encoder&gt;
+    &lt;/appender&gt;
+
+    &lt;!-- Log at DEBUG level --&gt;
+    &lt;root level="debug"&gt;
+        &lt;appender-ref ref="GUAC-DEBUG"/&gt;
+    &lt;/root&gt;
+
+&lt;/configuration&gt;</pre></div><p>Guacamole and the above example configure only one appender which logs to the console,
+            but Logback is extremely flexible and allows any number of appenders which can each log
+            to separate files, the console, etc. based on a number of criteria, including the log
+            level and the source of the message.</p><p>More thorough <a class="link" href="http://logback.qos.ch/manual/configuration.html" target="_top">documentation on
+                configuring Logback</a> is provided on the Logback project's web site.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="basic-auth"></a>Using the default authentication</h2></div></div></div><a id="idm46420847073952" class="indexterm"></a><p>Guacamole's default authentication module is simple and consists of a mapping of
+            usernames to configurations. This authentication module comes with Guacamole and simply
+            reads usernames and passwords from an XML file. It is always enabled, but will only read
+            from the XML file if it exists, and is always last in priority relative to any other
+            authentication extensions.</p><p>There are other authentication modules available. The Guacamole project provides
+            database-backed authentication modules with the ability to manage connections and users
+            from the web interface, and other authentication modules can be created using the
+            extension API provided along with the Guacamole web application,
+                <span class="package">guacamole-ext</span>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-mapping"></a><code class="filename">user-mapping.xml</code></h3></div></div></div><a id="idm46420847069728" class="indexterm"></a><p>The default authentication provider used by Guacamole reads all username,
+                password, and configuration information from a file called the "user mapping"
+                located at <code class="filename">GUACAMOLE_HOME/user-mapping.xml</code>. An example of a
+                user mapping file is included with Guacamole, and looks something like this:</p><pre class="programlisting">&lt;user-mapping&gt;
+
+    &lt;!-- Per-user authentication and config information --&gt;
+    &lt;authorize username="USERNAME" password="PASSWORD"&gt;
+        &lt;protocol&gt;vnc&lt;/protocol&gt;
+        &lt;param name="hostname"&gt;localhost&lt;/param&gt;
+        &lt;param name="port"&gt;5900&lt;/param&gt;
+        &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+    &lt;/authorize&gt;
+
+    &lt;!-- Another user, but using md5 to hash the password
+         (example below uses the md5 hash of "PASSWORD") --&gt;
+    &lt;authorize
+            username="USERNAME2"
+            password="319f4d26e3c536b5dd871bb2c52e3178"
+            encoding="md5"&gt;
+
+        &lt;!-- First authorized connection --&gt;
+        &lt;connection name="localhost"&gt;
+            &lt;protocol&gt;vnc&lt;/protocol&gt;
+            &lt;param name="hostname"&gt;localhost&lt;/param&gt;
+            &lt;param name="port"&gt;5901&lt;/param&gt;
+            &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+        &lt;/connection&gt;
+
+        &lt;!-- Second authorized connection --&gt;
+        &lt;connection name="otherhost"&gt;
+            &lt;protocol&gt;vnc&lt;/protocol&gt;
+            &lt;param name="hostname"&gt;otherhost&lt;/param&gt;
+            &lt;param name="port"&gt;5900&lt;/param&gt;
+            &lt;param name="password"&gt;VNCPASS&lt;/param&gt;
+        &lt;/connection&gt;
+
+    &lt;/authorize&gt;
+
+&lt;/user-mapping&gt;</pre><p>Each user is specified with a corresponding
+                    <code class="code">&lt;authorize&gt;</code> tag. This tag contains all
+                authorized connections for that user, each denoted with a
+                    <code class="code">&lt;connection&gt;</code> tag. Each
+                    <code class="code">&lt;connection&gt;</code> tag contains a corresponding
+                protocol and set of protocol-specific parameters, specified with
+                the <code class="code">&lt;protocol&gt;</code> and <code class="code">&lt;param&gt;</code> tags
+                respectively.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="user-setup"></a>Adding users</h4></div></div></div><a id="idm46420847061936" class="indexterm"></a><p>When using
+                        <code class="classname">BasicFileAuthenticationProvider</code>,
+                    username/password pairs are specified with
+                        <code class="code">&lt;authorize&gt;</code> tags, which each have a
+                        <code class="code">username</code> and <code class="code">password</code>
+                    attribute. Each <code class="code">&lt;authorize&gt;</code> tag authorizes a
+                    specific username/password pair to access all connections
+                    within the tag:</p><pre class="programlisting">&lt;authorize username="<em class="replaceable"><code>USER</code></em>" password="<em class="replaceable"><code>PASS</code></em>"&gt;
+    ...
+&lt;/authorize&gt;</pre><p>In the example above, the password would be listed in
+                    plaintext. If you don't want to do this, you can also
+                    specify your password hashed with MD5:</p><pre class="programlisting">&lt;authorize username="<em class="replaceable"><code>USER</code></em>"
+           password="<em class="replaceable"><code>319f4d26e3c536b5dd871bb2c52e3178</code></em>"
+           encoding="md5"&gt;
+    ...
+&lt;/authorize&gt;</pre><p>After modifying user-mapping.xml, the file will be
+                    automatically reread by Guacamole, and your changes will
+                    take effect immediately. The newly-added user will be able
+                    to log in - no restart of the servlet container is
+                    needed.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="connection-setup"></a>Adding connections to a user</h4></div></div></div><a id="idm46420847052192" class="indexterm"></a><p>To specify a connection within an
+                        <code class="code">&lt;authorize&gt;</code> tag, you can either list a
+                    single protocol and set of parameters (specified with a
+                        <code class="code">&lt;protocol&gt;</code> tag and any number of
+                        <code class="code">&lt;param&gt;</code> tags), in which case that user
+                    will have access to only one connection named "DEFAULT", or
+                    you can specify one or more connections with one or more
+                        <code class="code">&lt;connection&gt;</code> tags, each of which can be
+                    named and contains a <code class="code">&lt;protocol&gt;</code> tag and any
+                    number of <code class="code">&lt;param&gt;</code> tags.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="connection-configuration"></a>Configuring connections</h2></div></div></div><p>Each protocol supported by Guacamole has its own set of configuration parameters.
+            These parameters typically describe the hostname and port of the remote desktop server,
+            the credentials to use when connecting, if any, and the size and color depth of the
+            display. If the protocol supports file transfer, options for enabling that functionality
+            will be provided as well.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="vnc"></a>VNC</h3></div></div></div><a id="idm46420847043264" class="indexterm"></a><p>The VNC protocol is the simplest and first protocol supported by Guacamole.
+                Although generally not as fast as RDP, many VNC servers are adequate, and VNC over
+                Guacamole tends to be faster than VNC by itself due to decreased bandwidth
+                usage.</p><p>VNC support for Guacamole is provided by the <span class="package">libguac-client-vnc</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-network-parameters"></a>Network parameters</h4></div></div></div><p>With the exception of reverse-mode VNC connections, VNC works by making
+                    outbound network connections to a particular host which runs one or more VNC
+                    servers. Each VNC server is associated with a display number, from which the
+                    appropriate port number is derived.</p><div class="informaltable"><a id="vnc-parameters"></a><a id="idm46420847037968" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420847030304" class="indexterm"></a>The hostname or IP address of the VNC server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420847026912" class="indexterm"></a>The port the VNC server is listening on, usually
+                                        5900 or 5900 + <em class="replaceable"><code>display number</code></em>.
+                                        For example, if your VNC server is serving display number 1
+                                        (sometimes written as <code class="constant">:1</code>), your port
+                                        number here would be 5901.</p>
+                                </td></tr><tr><td><em class="parameter"><code>autoretry</code></em></td><td>
+                                    <p><a id="idm46420847022592" class="indexterm"></a>The number of times to retry connecting before
+                                        giving up and returning an error. In the case of a reverse
+                                        connection, this is the number of times the connection
+                                        process is allowed to time out.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-authentication"></a>Authentication</h4></div></div></div><p>The VNC standard defines only password based authentication. Other
+                    authentication mechanisms exist, but are non-standard or proprietary. Guacamole
+                    supports only the password method.</p><div class="informaltable"><a id="idm46420847017296" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420847009584" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-display-settings"></a>Display settings</h4></div></div></div><p>VNC servers do not allow the client to request particular display sizes, so
+                    you are at the mercy of your VNC server with respect to display width and
+                    height. However, to reduce bandwidth usage, you may request that the VNC server
+                    reduce its color depth. Guacamole will automatically detect 256-color images,
+                    but this can be guaranteed for absolutely all graphics sent over the connection
+                    by forcing the color depth to 8-bit. Color depth is otherwise dictated by the
+                    VNC server.</p><p>If you are noticing problems with your VNC display, such as the lack of a
+                    mouse cursor, the presence of multiple mouse cursors, or strange colors (such as
+                    blue colors appearing more like orange or red), these are typically the result
+                    of bugs or limitations within the VNC server, and additional parameters are
+                    available to work around such issues.</p><div class="informaltable"><a id="idm46420847003760" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-depth</code></em></td><td>
+                                    <p><a id="idm46420846996048" class="indexterm"></a>The color depth to request, in bits-per-pixel.
+                                        This parameter is optional. If specified, this must be
+                                        either 8, 16, 24, or 32. Regardless of what value is chosen
+                                        here, if a particular update uses less than 256 colors,
+                                        Guacamole will always send that update as a 256-color
+                                        PNG.</p>
+                                </td></tr><tr><td><em class="parameter"><code>swap-red-blue</code></em></td><td>
+                                    <p>If the colors of your display appear wrong (blues appear
+                                        orange or red, etc.), it may be that your VNC server is
+                                        sending image data incorrectly, and the red and blue
+                                        components of each color are swapped. If this is the case,
+                                        set this parameter to "true" to work around the problem.
+                                        This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>cursor</code></em></td><td>
+                                    <p><a id="idm46420846989776" class="indexterm"></a>If set to "remote", the mouse pointer will be
+                                        rendered remotely, and the local position of the mouse
+                                        pointer will be indicated by a small dot. A remote mouse
+                                        cursor will feel slower than a local cursor, but may be
+                                        necessary if the VNC server does not support sending the
+                                        cursor image to the client.</p>
+                                </td></tr><tr><td><em class="parameter"><code>encodings</code></em></td><td>
+                                    <p><a id="idm46420846986000" class="indexterm"></a>A space-delimited list of VNC encodings to use.
+                                        The format of this parameter is dictated by libvncclient and
+                                        thus doesn't really follow the form of other Guacamole
+                                        parameters. This parameter is optional, and
+                                            <span class="package">libguac-client-vnc</span> will use any
+                                        supported encoding by default.</p>
+                                    <p>Beware that this parameter is intended to be replaced with
+                                        individual, encoding-specific parameters in a future
+                                        release.</p>
+                                </td></tr><tr><td><em class="parameter"><code>read-only</code></em></td><td>
+                                    <p><a id="idm46420846981184" class="indexterm"></a>Whether this connection should be read-only. If
+                                        set to "true", no input will be accepted on the connection
+                                        at all. Users will only see the desktop and whatever other
+                                        users using that same desktop are doing. This parameter is
+                                        optional.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-recording"></a>Session recording</h4></div></div></div><p>VNC sessions can be recorded graphically. These recordings take the form of
+                    Guacamole protocol dumps and are recorded automatically to a specified
+                    directory. Recordings can be subsequently translated to a normal video stream
+                    using the <span class="command"><strong>guacenc</strong></span> utility provided with
+                    guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846961296" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420846953584" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-sftp"></a>File transfer (via SFTP)</h4></div></div></div><p>VNC does not normally support file transfer, but Guacamole can provide file
+                    transfer over SFTP even when the remote desktop is otherwise being accessed
+                    through VNC and not SSH. If SFTP is enabled on a Guacamole VNC connection, users
+                    will be able to upload and download files as described in <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46420846924928" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46420846917216" class="indexterm"></a><a id="idm46420846915936" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the specified server using SFTP. If omitted, SFTP
+                                        will be disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-hostname</code></em></td><td>
+                                    <p>The hostname or IP address of the server hosting SFTP.
+                                        This parameter is optional. If omitted, the hostname of the
+                                        VNC server specified with the
+                                            <em class="parameter"><code>hostname</code></em> parameter will be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-port</code></em></td><td>
+                                    <p>The port the SSH server providing SFTP is listening on,
+                                        usually 22. This parameter is optional. If omitted, the
+                                        standard port of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-host-key</code></em></td><td>
+                                    <p>The known hosts entry for the SFTP server.  This
+                                        parameter is optional, and, if not provided, no verification
+                                        of SFTP host identity will be done.  If the parameter is
+                                        provided the identity of the server will be checked
+                                        against the data.</p>
+                                    <p>The format of this parameter should be that of a single
+                                        entry from an OpenSSH <code class="filename">known_hosts</code>
+                                        file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-username</code></em></td><td>
+                                    <p>The username to authenticate as when connecting to the
+                                        specified SSH server for SFTP. This parameter is
+                                        required.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-password</code></em></td><td>
+                                    <p>The password to use when authenticating with the specified
+                                        SSH server for SFTP.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-private-key</code></em></td><td>
+                                    <p>The entire contents of the private key to use for public
+                                        key authentication. If this parameter is not specified,
+                                        public key authentication will not be used. The private key
+                                        must be in OpenSSH format, as would be generated by the
+                                        OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-passphrase</code></em></td><td>
+                                    <p>The passphrase to use to decrypt the private key for use
+                                        in public key authentication. This parameter is not needed
+                                        if the private key does not require a passphrase.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-directory</code></em></td><td>
+                                    <p>The directory to upload files to if they are simply
+                                        dragged and dropped, and thus otherwise lack a specific
+                                        upload location. This parameter is optional. If omitted, the
+                                        default upload location of the SSH server providing SFTP
+                                        will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-server-alive-interval</code></em></td><td>
+                                    <p>The interval in seconds at which to send keepalive
+                                    packets to the SSH server for the SFTP connection.  This
+                                    parameter is optional.  If omitted, the default of 0 will be
+                                    used, disabling sending keepalive packets.  The minimum
+                                    value is 2.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-repeater"></a>VNC Repeater</h4></div></div></div><p>There exist VNC repeaters, such as UltraVNC Repeater, which act as
+                    intermediaries or proxies, providing a single logical VNC connection which is
+                    then routed to another VNC server elsewhere. Additional parameters are required
+                    to select which VNC host behind the repeater will receive the connection.</p><div class="informaltable"><a id="idm46420846884336" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>dest-host</code></em></td><td><a id="idm46420846876928" class="indexterm"></a><a id="idm46420846875664" class="indexterm"></a><a id="idm46420846874400" class="indexterm"></a>The destination host to request when connecting to a
+                                    VNC proxy such as UltraVNC Repeater. This is only necessary if
+                                    the VNC proxy in use requires the connecting user to specify
+                                    which VNC server to connect to. If the VNC proxy automatically
+                                    connects to a specific server, this parameter is not
+                                    necessary.</td></tr><tr><td><em class="parameter"><code>dest-port</code></em></td><td><a id="idm46420846871136" class="indexterm"></a><a id="idm46420846869872" class="indexterm"></a>The destination port to request when connecting to a
+                                    VNC proxy such as UltraVNC Repeater. This is only necessary if
+                                    the VNC proxy in use requires the connecting user to specify
+                                    which VNC server to connect to. If the VNC proxy automatically
+                                    connects to a specific server, this parameter is not
+                                    necessary.</td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-reverse-connections"></a>Reverse VNC connections</h4></div></div></div><p>Guacamole supports "reverse" VNC connections, where the VNC client listens for
+                    an incoming connection from the VNC server. When reverse VNC connections are
+                    used, the VNC client and server switch network roles, but otherwise function as
+                    they normally would. The VNC server still provides the remote display, and the
+                    VNC client still provides all keyboard and mouse input.</p><div class="informaltable"><a id="idm46420846864448" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>reverse-connect</code></em></td><td>
+                                    <p><a id="idm46420846856736" class="indexterm"></a>Whether reverse connection should be used. If
+                                        set to "true", instead of connecting to a server at a given
+                                        hostname and port, guacd will listen on the given port for
+                                        inbound connections from a VNC server.</p>
+                                </td></tr><tr><td><em class="parameter"><code>listen-timeout</code></em></td><td>
+                                    <p><a id="idm46420846853136" class="indexterm"></a>If reverse connection is in use, the maximum
+                                        amount of time to wait for an inbound connection from a VNC
+                                        server, in milliseconds. If blank, the default value is 5000
+                                        (five seconds).</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-audio"></a>Audio support (via PulseAudio)</h4></div></div></div><p>VNC does not provide its own support for audio, but Guacamole's VNC support
+                    can obtain audio through a secondary network connection to a PulseAudio server
+                    running on the same machine as the VNC server.</p><p>Most Linux systems provide audio through a service called PulseAudio. This
+                    service is capable of communicating over the network, and if PulseAudio is
+                    configured to allow TCP connections, Guacamole can connect to your PulseAudio
+                    server and combine its audio with the graphics coming over VNC.</p><p>Configuring PulseAudio for network connections requires an additional line
+                    within the PulseAudio configuration file, usually
+                        <code class="filename">/etc/pulse/default.pa</code>:</p><div class="informalexample"><pre class="programlisting">load-module module-native-protocol-tcp auth-ip-acl=<em class="replaceable"><code>192.168.1.0/24</code></em> auth-anonymous=1</pre></div><p>This loads the TCP module for PulseAudio, configuring it to accept connections
+                    without authentication and <span class="emphasis"><em>only</em></span> from the
+                        <em class="replaceable"><code>192.168.1.0/24</code></em> subnet. You will want to replace
+                    this value with the subnet or IP address from which guacd will be connecting. It
+                    is possible to allow connections from absolutely anywhere, but beware that you
+                    should only do so if the nature of your network prevents unauthorized
+                    access:</p><div class="informalexample"><pre class="programlisting">load-module module-native-protocol-tcp auth-anonymous=1</pre></div><p>In either case, the <code class="code">auth-anonymous=1</code> parameter is strictly
+                    required. Guacamole does not currently support the cookie-based authentication
+                    used by PulseAudio for non-anonymous connections. If this parameter is omitted,
+                    Guacamole will not be able to connect to PulseAudio.</p><p>Once the PulseAudio configuration file has been modified appropriately,
+                    restart the PulseAudio service. PulseAudio should then begin listening on port
+                    4713 (the default PulseAudio port) for incoming TCP connections. You can verify
+                    this using a utility like <span class="command"><strong>netstat</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>netstat -ln | grep 4713</code></strong>
+<code class="computeroutput">tcp        0      0 0.0.0.0:4713            0.0.0.0:*               LISTEN
+tcp6       0      0 :::4713                 :::*                    LISTEN</code>
+<code class="prompt">$</code></pre></div><p>The following parameters are available for configuring the audio support for
+                    VNC:</p><div class="informaltable"><a id="idm46420846836544" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-audio</code></em></td><td>
+                                    <p><a id="idm46420846828832" class="indexterm"></a><a id="idm46420846827552" class="indexterm"></a>If set to "true", audio support will be enabled,
+                                        and a second connection for PulseAudio will be made in
+                                        addition to the VNC connection. By default, audio support
+                                        within VNC is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>audio-servername</code></em></td><td>
+                                    <p>The name of the PulseAudio server to connect to. This will
+                                        be the hostname of the computer providing audio for your
+                                        connection via PulseAudio, most likely the same as the value
+                                        given for the <em class="parameter"><code>hostname</code></em>
+                                        parameter.</p>
+                                    <p>If this parameter is omitted, the default PulseAudio
+                                        device will be used, which will be the PulseAudio server
+                                        running on the same machine as guacd.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-clipboard-encoding"></a>Clipboard encoding</h4></div></div></div><p>While Guacamole will always use UTF-8 for its own clipboard data, the VNC
+                    standard requires that clipboard data be encoded in ISO 8859-1. As most VNC
+                    servers will not accept data in any other format, Guacamole will translate
+                    between UTF-8 and ISO 8859-1 when exchanging clipboard data with the VNC server,
+                    but this behavior can be overridden with the
+                        <em class="parameter"><code>clipboard-encoding</code></em> parameter.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The only clipboard encoding guaranteed to be supported by VNC
+                            servers is ISO 8859-1.</em></span> You should only override the clipboard
+                        encoding using the <em class="parameter"><code>clipboard-encoding</code></em> parameter of
+                        you are absolutely positive your VNC server supports other encodings.</p></div><div class="informaltable"><a id="idm46420846816320" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>clipboard-encoding</code></em></td><td>
+                                    <p><a id="idm46420846808608" class="indexterm"></a><a id="idm46420846807808" class="indexterm"></a>The encoding to assume for the VNC clipboard.
+                                        This parameter is optionl. By default, the standard encoding
+                                        ISO 8859-1 will be used. <span class="emphasis"><em>Only use this parameter
+                                            if you are sure your VNC server supports other encodings
+                                            beyond the standard ISO 8859-1.</em></span></p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ISO8859-1</code></span></dt><dd><p>ISO 8859-1 is the clipboard encoding mandated
+                                                  by the VNC standard, and supports only basic Latin
+                                                  characters.  Unless your VNC server specifies
+                                                  otherwise, this encoding is the only encoding
+                                                  guaranteed to work.</p></dd><dt><span class="term"><code class="constant">UTF-8</code></span></dt><dd><p>UTF-8 - the most common encoding used for
+                                                  Unicode. Using this encoding for the VNC clipboard
+                                                  violates the VNC specification, but some servers
+                                                  do support this. This parameter value should only
+                                                  be used if you know your VNC server supports this
+                                                  encoding.</p></dd><dt><span class="term"><code class="constant">UTF-16</code></span></dt><dd><p>UTF-16 - a 16-bit encoding for Unicode which
+                                                  is not as common as UTF-8, but still widely used.
+                                                  Using this encoding for the VNC clipboard violates
+                                                  the VNC specification. This parameter value should
+                                                  only be used if you know your VNC server supports
+                                                  this encoding.</p></dd><dt><span class="term"><code class="constant">CP1252</code></span></dt><dd><p>Code page 1252 - a Windows-specific encoding
+                                                  for Latin characters which is mostly a superset of
+                                                  ISO 8859-1, mapping some additional displayable
+                                                  characters onto what would otherwise be control
+                                                  characters. Using this encoding for the VNC
+                                                  clipboard violates the VNC specification. This
+                                                  parameter value should only be used if you know
+                                                  your VNC server supports this encoding.</p></dd></dl></div>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-vnc"></a>Adding a VNC connection</h4></div></div></div><a id="idm46420846792624" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a VNC connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;vnc&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>5901</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    VNC to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>5901</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If your VNC server requires a password, or you wish to specify other
+                    configuration parameters (to reduce the color depth, for example), you will need
+                    to add additional <code class="code">&lt;param&gt;</code> tags accordingly.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections. If the authentication method in use fully implements
+                    the features of Guacamole's authentication API, you will be able to add a new
+                    VNC connection easily and intuitively using the administration interface built
+                    into Guacamole. You will not need to edit configuration files.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="vnc-servers"></a>Which VNC server?</h4></div></div></div><a id="idm46420846782064" class="indexterm"></a><p>The choice of VNC server can make a big difference when it comes to
+                    performance, especially over slower networks. While many systems provide VNC
+                    access by default, using this is often not the fastest method.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="realvnc"></a>RealVNC or TigerVNC</h5></div></div></div><a id="idm46420846779392" class="indexterm"></a><a id="idm46420846778480" class="indexterm"></a><p>RealVNC, and its derivative TigerVNC, perform quite well. In our testing,
+                        they perform the best with Guacamole. If you are okay with having a desktop
+                        that can only be accessed via VNC, one of these is likely your best choice.
+                        Both optimize window movement and (depending on the application) scrolling,
+                        giving a very responsive user experience.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="tightvnc"></a>TightVNC</h5></div></div></div><a id="idm46420846775440" class="indexterm"></a><p>TightVNC is widely-available and performs generally as well as RealVNC or
+                        TigerVNC. If you wish to use TightVNC with Guacamole, performance should be
+                        just fine, but we highly recommend disabling its JPEG encoding. This is
+                        because images transmitted to Guacamole are always encoded losslessly as PNG
+                        images. When this operation is performed on a JPEG image, the artifacts
+                        present from JPEG's lossy compression reduce the compressibility of the
+                        image for PNG, thus leading to a slower experience overall than if JPEG was
+                        simply not used to begin with.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="x11vnc"></a>x11vnc</h5></div></div></div><a id="idm46420846772048" class="indexterm"></a><p>The main benefit of using x11vnc is that it allows you to continue using
+                        your desktop normally, while simultaneously exposing control of your desktop
+                        via VNC. Performance of x11vnc is comparable to RealVNC, TigerVNC, and
+                        TightVNC. If you need to use your desktop locally as well as via VNC, you
+                        will likely be quite happy with x11vnc.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="vino"></a>vino</h5></div></div></div><a id="idm46420846768944" class="indexterm"></a><p>vino is the VNC server that comes with the Gnome desktop environment, and
+                        is enabled if you enable "desktop sharing" via the system preferences
+                        available within Gnome. If you need to share your local desktop, we
+                        recommend using x11vnc rather vino, as it has proven more performant and
+                        feature-complete in our testing. If you don't need to share a local desktop
+                        but simply need an environment you can access remotely, using a VNC server
+                        like RealVNC, TigerVNC, or TightVNC is a better choice.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="qemu"></a>QEMU or KVM</h5></div></div></div><a id="idm46420846765696" class="indexterm"></a><a id="idm46420846764784" class="indexterm"></a><p>QEMU (and thus KVM) expose the displays of virtual machines using VNC. If
+                        you need to see the virtual monitor of your virtual machine, using this VNC
+                        connection is really your only choice. As the VNC server built into QEMU
+                        cannot be aware of higher-level operations like window movement, resizing,
+                        or scrolling, those operations will tend to be sent suboptimally, and will
+                        not be as fast as a VNC server running within the virtual machine.</p><p>If you wish to use a virtual machine for desktop access, we recommend
+                        installing a native VNC server inside the virtual machine after the virtual
+                        machine is set up. This will give a more responsive desktop.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="rdp"></a>RDP</h3></div></div></div><a id="idm46420846760608" class="indexterm"></a><p>The RDP protocol is more complicated than VNC and was the second protocol
+                officially supported by Guacamole. RDP tends to be faster than VNC due to the use of
+                caching, which Guacamole does take advantage of.</p><p>RDP support for Guacamole is provided by the <span class="package">libguac-client-rdp</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-network-parameters"></a>Network parameters</h4></div></div></div><p>RDP connections require a hostname or IP address defining the destination
+                    machine. The RDP port is defined to be 3389, and will be this value in most
+                    cases. You only need to specify the RDP port if you are not using port
+                    3389.</p><div class="informaltable"><a id="idm46420846755584" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420846747872" class="indexterm"></a>The hostname or IP address of the RDP server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420846744480" class="indexterm"></a>The port the RDP server is listening on, usually
+                                        3389. This parameter is optional. If this is not specified,
+                                        the default of 3389 will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-authentication"></a>Authentication and security</h4></div></div></div><p>RDP provides authentication through the use of a username, password, and
+                    optional domain. All RDP connections are encrypted.</p><p>Most RDP servers will provide a graphical login if the username, password, and
+                    domain parameters are omitted. One notable exception to this is Network Level
+                    Authentication, or NLA, which performs all authentication outside of a desktop
+                    session, and thus in the absence of a graphical interface.</p><div class="important"><h3 class="title">Important</h3><p>If your server requires NLA, you <span class="emphasis"><em>must</em></span> provide a
+                        username and password. Leveraging Guacamole's <a class="link" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">parameter tokens</a> and <a class="link" href="ldap-auth.html" title="Chapter 7. LDAP authentication">LDAP
+                            support</a> to integrate with Active Directory and automatically pass
+                        through credentials is a common configuration.</p></div><div class="informaltable"><a id="idm46420846735328" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46420846727616" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420846724224" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>domain</code></em></td><td>
+                                    <p><a id="idm46420846720816" class="indexterm"></a>The domain to use when attempting
+                                        authentication, if any. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>security</code></em></td><td>
+                                    <p><a id="idm46420846717408" class="indexterm"></a><a id="idm46420846716128" class="indexterm"></a><a id="idm46420846714848" class="indexterm"></a>The security mode to use for the RDP connection.
+                                        This mode dictates how data will be encrypted and what type
+                                        of authentication will be performed, if any. By default, a
+                                        security mode is selected based on a negotiation process
+                                        which determines what both the client and the server
+                                        support.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">any</code></span></dt><dd><p>Automatically select the security mode based
+                                                  on the security protocols supported by both the
+                                                  client and the server. <span class="emphasis"><em>This is the
+                                                  default</em></span>.</p></dd><dt><span class="term"><code class="constant">nla</code></span></dt><dd><p>Network Level Authentication, sometimes also
+                                                  referred to as "hybrid" or CredSSP (the protocol
+                                                  that drives NLA). This mode uses TLS encryption
+                                                  and requires the username and password to be given
+                                                  in advance. Unlike RDP mode, the authentication
+                                                  step is performed before the remote desktop
+                                                  session actually starts, avoiding the need for the
+                                                  Windows server to allocate significant resources
+                                                  for users that may not be authorized.</p></dd><dt><span class="term"><code class="constant">nla-ext</code></span></dt><dd><p>Extended Network Level Authentication. This
+                                                  mode is identical to NLA except that an additional
+                                                  "<a class="link" href="https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/d0e560a3-25cb-4563-8bdc-6c4cc625bbfc" target="_top">Early User Authorization Result</a>" is
+                                                  required to be sent from the server to the client
+                                                  immediately after the NLA handshake is
+                                                  completed.</p></dd><dt><span class="term"><code class="constant">tls</code></span></dt><dd><p>RDP authentication and encryption implemented
+                                                  via TLS (Transport Layer Security). Also referred
+                                                  to as RDSTLS, the TLS security mode is primarily
+                                                  used in load balanced configurations where the
+                                                  initial RDP server may redirect the connection to
+                                                  a different RDP server.</p></dd><dt><span class="term"><code class="constant">rdp</code></span></dt><dd><p>Standard RDP encryption. This mode is
+                                                  generally only used for older Windows servers or
+                                                  in cases where a standard Windows login screen is
+                                                  desired. Newer versions of Windows have this mode
+                                                  disabled by default and will only accept NLA
+                                                  unless explicitly configured otherwise.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>ignore-cert</code></em></td><td>
+                                    <p><a id="idm46420846696512" class="indexterm"></a>If set to "true", the certificate returned by
+                                        the server will be ignored, even if that certificate cannot
+                                        be validated. This is useful if you universally trust the
+                                        server and your connection to the server, and you know that
+                                        the server's certificate cannot be validated (for example,
+                                        if it is self-signed).</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-auth</code></em></td><td>
+                                    <p><a id="idm46420846692720" class="indexterm"></a>If set to "true", authentication will be
+                                        disabled. Note that this refers to authentication that takes
+                                        place while connecting. Any authentication enforced by the
+                                        server over the remote desktop session (such as a login
+                                        dialog) will still take place. By default, authentication is
+                                        enabled and only used when requested by the server.</p>
+                                    <p>If you are using NLA, authentication must be enabled by
+                                        definition.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-session-settings"></a>Session settings</h4></div></div></div><p>RDP sessions will typically involve the full desktop environment of a normal
+                    user. Alternatively, you can manually specify a program to use instead of the
+                    RDP server's default shell, or connect to the administrative console.</p><p>Although Guacamole is independent of keyboard layout, RDP is not. This is
+                    because Guacamole represents keys based on what they <span class="emphasis"><em>do</em></span>
+                    ("press the <span class="keycap"><strong>Enter</strong></span> key"), while RDP uses identifiers based on
+                    the key's location  ("press the rightmost key in the second row"). To translate
+                    between a Guacamole key event  and an RDP key event, Guacamole must know ahead
+                    of time the keyboard layout of the RDP server.</p><p>By default, the US English qwerty keyboard will be used. If this does not
+                    match the keyboard layout of your RDP server, keys will not be properly
+                    translated, and you will need to explicitly choose a different layout in your
+                    connection settings. If your keyboard layout is not supported, please notify the
+                    Guacamole team by <a class="link" href="https://issues.apache.org/jira/browse/GUACAMOLE" target="_top">opening an issue in
+                    JIRA</a>.</p><div class="informaltable"><a id="idm46420846683120" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>client-name</code></em></td><td>
+                                    <p><a id="idm46420846675408" class="indexterm"></a>When connecting to the RDP server, Guacamole
+                                        will normally provide its own hostname as the name of the
+                                        client. If this parameter is specified, Guacamole will use
+                                        its value instead.</p>
+                                    <p>On Windows RDP servers, this value is exposed within the
+                                        session as the <code class="envar">CLIENTNAME</code> environment
+                                        variable.</p>
+                                </td></tr><tr><td><em class="parameter"><code>console</code></em></td><td>
+                                    <p><a id="idm46420846670768" class="indexterm"></a>If set to "true", you will be connected to the
+                                        console (admin) session of the RDP server.</p>
+                                </td></tr><tr><td><em class="parameter"><code>initial-program</code></em></td><td>
+                                    <p><a id="idm46420846667360" class="indexterm"></a>The full path to the program to run immediately
+                                        upon connecting. This parameter is optional.</p>
+                                </td></tr><tr><td><em class="parameter"><code>server-layout</code></em></td><td>
+                                    <p><a id="idm46420846663952" class="indexterm"></a><a id="idm46420846663152" class="indexterm"></a>The server-side keyboard layout. This is the
+                                        layout of the RDP server and has nothing to do with the
+                                        keyboard layout in use on the client. <span class="emphasis"><em>The
+                                            Guacamole client is independent of keyboard
+                                            layout.</em></span> The RDP protocol, however, is
+                                            <span class="emphasis"><em>not</em></span> independent of keyboard layout,
+                                        and Guacamole needs to know the keyboard layout of the
+                                        server in order to send the proper keys when a user is
+                                        typing.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">en-us-qwerty</code></span></dt><dd><p>English (US) keyboard</p></dd><dt><span class="term"><code class="constant">en-gb-qwerty</code></span></dt><dd><p>English (UK) keyboard</p></dd><dt><span class="term"><code class="constant">de-ch-qwertz</code></span></dt><dd><p>Swiss German keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">de-de-qwertz</code></span></dt><dd><p>German keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">fr-fr-azerty</code></span></dt><dd><p>French keyboard (azerty)</p></dd><dt><span class="term"><code class="constant">fr-ch-qwertz</code></span></dt><dd><p>Swiss French keyboard (qwertz)</p></dd><dt><span class="term"><code class="constant">it-it-qwerty</code></span></dt><dd><p>Italian keyboard</p></dd><dt><span class="term"><code class="constant">ja-jp-qwerty</code></span></dt><dd><p>Japanese keyboard</p></dd><dt><span class="term"><code class="constant">pt-br-qwerty</code></span></dt><dd><p>Portuguese Brazilian keyboard</p></dd><dt><span class="term"><code class="constant">es-es-qwerty</code></span></dt><dd><p>Spanish keyboard</p></dd><dt><span class="term"><code class="constant">sv-se-qwerty</code></span></dt><dd><p>Swedish keyboard</p></dd><dt><span class="term"><code class="constant">tr-tr-qwerty</code></span></dt><dd><p>Turkish-Q keyboard</p></dd><dt><span class="term"><code class="constant">failsafe</code></span></dt><dd><p>Unknown keyboard - this option sends only
+                                                  Unicode events and should work for any keyboard,
+                                                  though not necessarily all RDP servers or
+                                                  applications.</p><p>If your server's keyboard layout is not yet
+                                                  supported, this option should work in the
+                                                  meantime.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td>
+                                    <p><a id="idm46420846628880" class="indexterm"></a>The timezone that the client
+                                    should send to the server for configuring the
+                                    local time display of that server.  The
+                                    format of the timezone is in the standard
+                                    IANA key zone format, which is the format
+                                    used in UNIX/Linux.  This will be converted
+                                    by RDP into the correct format for Windows.
+                                    </p>
+                                    <p>The timezone is detected and will be
+                                    passed to the server during the handshake
+                                    phase of the connection, and may used by
+                                    protocols, like RDP, that support it.  This
+                                    parameter can be used to override the value
+                                    detected and passed during the handshake, or
+                                    can be used in situations where guacd does
+                                    not support passing the timezone parameter
+                                    during the handshake phase (guacd versions
+                                    prior to 1.1.0).</p>
+                                    <p>Support for forwarding the client
+                                    timezone varies by RDP server implementation.
+                                    For example, with Windows, support for
+                                    forwarding timezones is only present in
+                                    Windows Server with Remote Desktop Services
+                                    (RDS, formerly known as Terminal Services)
+                                    installed.  Windows Server installations in
+                                    admin mode, along with Windows workstation
+                                    versions, do not allow the timezone to be
+                                    forwarded.  Other server implementations,
+                                    for example, xrdp, may not implement this
+                                    feature at all.  Consult the documentation
+                                    for the RDP server to determine whether or
+                                    not this feature is supported.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole will automatically choose an appropriate display size for RDP
+                    connections based on the size of the browser window and the DPI of the device.
+                    The size of the display can be forced by specifying explicit width or height
+                    values.</p><p>To reduce bandwidth usage, you may also request that the server reduce its
+                    color depth. Guacamole will automatically detect 256-color images, but this can
+                    be guaranteed for absolutely all graphics sent over the connection by forcing
+                    the color depth to 8-bit. Color depth is otherwise dictated by the RDP
+                    server.</p><div class="informaltable"><a id="idm46420846619824" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-depth</code></em></td><td>
+                                    <p><a id="idm46420846612112" class="indexterm"></a>The color depth to request, in bits-per-pixel.
+                                        This parameter is optional. If specified, this must be
+                                        either 8, 16, or 24. Regardless of what value is chosen
+                                        here, if a particular update uses less than 256 colors,
+                                        Guacamole will always send that update as a 256-color
+                                        PNG.</p>
+                                </td></tr><tr><td><em class="parameter"><code>width</code></em></td><td>
+                                    <p><a id="idm46420846608352" class="indexterm"></a>The width of the display to request, in pixels.
+                                        This parameter is optional. If this value is not specified,
+                                        the width of the connecting client display will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>height</code></em></td><td>
+                                    <p>The height of the display to request, in pixels. This
+                                        parameter is optional. If this value is not specified, the
+                                        height of the connecting client display will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>dpi</code></em></td><td>
+                                    <p><a id="idm46420846602496" class="indexterm"></a>The desired effective resolution of the client
+                                        display, in DPI. This parameter is optional. If this value
+                                        is not specified, the resolution and size of the client
+                                        display will be used together to determine, heuristically,
+                                        an appropriate resolution for the RDP session.</p>
+                                </td></tr><tr><td><em class="parameter"><code>resize-method</code></em></td><td>
+                                    <p><a id="idm46420846598784" class="indexterm"></a>The method to use to update the RDP server when
+                                        the width or height of the client display changes. This
+                                        parameter is optional. If this value is not specified, no
+                                        action will be taken when the client display changes
+                                        size.</p>
+                                    <p>Normally, the display size of an RDP session is constant
+                                        and can only be changed when initially connecting. As of RDP
+                                        8.1, the "Display Update" channel can be used to request
+                                        that the server change the display size. For older RDP
+                                        servers, the only option is to disconnect and reconnect with
+                                        the new size.</p>
+                                    <p>Possible values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">display-update</code></span></dt><dd><p>Uses the "Display Update" channel added with
+                                                  RDP 8.1 to signal the server when the client
+                                                  display size has changed.</p></dd><dt><span class="term"><code class="constant">reconnect</code></span></dt><dd><p>Automatically disconnects the RDP session when
+                                                  the client display size has changed, and
+                                                  reconnects with the new size.</p></dd></dl></div>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-recording"></a>Session recording</h4></div></div></div><p>RDP sessions can be recorded graphically. These recordings take the form of
+                    Guacamole protocol dumps and are recorded automatically to a specified
+                    directory. Recordings can be subsequently translated to a normal video stream
+                    using the <span class="command"><strong>guacenc</strong></span> utility provided with
+                    guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846572320" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420846564608" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-device-redirection"></a>Device redirection</h4></div></div></div><p>Device redirection refers to the use of non-display devices over RDP.
+                    Guacamole's RDP support currently allows redirection of audio, printing, and
+                    disk access, some of which require additional configuration in order to function
+                    properly.</p><p>Audio redirection will be enabled by default. If Guacamole was correctly
+                    installed, and audio redirection is supported by your RDP server, sound should
+                    play within remote connections without manual intervention.</p><p>Printing requires <span class="application">GhostScript</span> to be installed on
+                    the Guacamole server, and allows users to print arbitrary documents directly to
+                    PDF. When documents are printed to the redirected printer, the user will receive
+                    a PDF of that document within their web browser.</p><p>Guacamole provides support for file transfer over RDP by emulating a virtual
+                    disk drive. This drive will persist on the Guacamole server, confined within the
+                    drive path specified. If drive redirection is enabled on a Guacamole SSH
+                    connection, users will be able to upload and download files as described in
+                        <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46420846533344" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>disable-audio</code></em></td><td><a id="idm46420846525936" class="indexterm"></a><a id="idm46420846525152" class="indexterm"></a><a id="idm46420846524368" class="indexterm"></a>Audio is enabled by default in both the client and
+                                    in libguac-client-rdp. If you are concerned about bandwidth
+                                    usage, or sound is causing problems, you can explicitly disable
+                                    sound by setting this parameter to "true".</td></tr><tr><td><em class="parameter"><code>enable-audio-input</code></em></td><td>
+                                    <p><a id="idm46420846520960" class="indexterm"></a><a id="idm46420846520160" class="indexterm"></a><a id="idm46420846519360" class="indexterm"></a>If set to "true", audio input support
+                                        (microphone) will be enabled, leveraging the standard
+                                        "AUDIO_INPUT" channel of RDP. By default, audio input
+                                        support within RDP is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-printing</code></em></td><td>
+                                    <p><a id="idm46420846515776" class="indexterm"></a><a id="idm46420846514976" class="indexterm"></a><a id="idm46420846514176" class="indexterm"></a>Printing is disabled by default, but with
+                                        printing enabled, RDP users can print to a virtual printer
+                                        that sends a PDF containing the document printed to the
+                                        Guacamole client. Enable printing by setting this parameter
+                                        to "true".</p>
+                                    <p><span class="emphasis"><em>Printing support requires
+                                                <span class="application">GhostScript</span> to be
+                                            installed.</em></span> If
+                                            <span class="application">guacd</span> cannot find the
+                                            <code class="filename">gs</code> executable when printing, the
+                                        print attempt will fail.</p>
+                                </td></tr><tr><td><em class="parameter"><code>printer-name</code></em></td><td>
+                                    <p>The name of the redirected printer device that is passed
+                                        through to the RDP session.  This is the name that the user
+                                        will see in, for example, the Devices and Printers control
+                                        panel.</p>
+                                    <p>If printer redirection is not enabled, this option has no
+                                        effect.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-drive</code></em></td><td>
+                                    <p><a id="idm46420846505280" class="indexterm"></a><a id="idm46420846504480" class="indexterm"></a><a id="idm46420846503680" class="indexterm"></a>File transfer is disabled by default, but with
+                                        file transfer enabled, RDP users can transfer files to and
+                                        from a virtual drive which persists on the Guacamole server.
+                                        Enable file transfer support by setting this parameter to
+                                        "true".</p>
+                                    <p>Files will be stored in the directory specified by the
+                                            "<em class="parameter"><code>drive-path</code></em>" parameter, which is
+                                        required if file transfer is enabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>drive-name</code></em></td><td>
+                                    <p>The name of the filesystem used when passed through to
+                                        the RDP session.  This is the name that users will see in their
+                                        Computer/My Computer area along with client name (for example,
+                                        "Guacamole on Guacamole RDP"), and is also the name of the share
+                                        when accessing the special <code class="filename">\\tsclient</code>
+                                        network location.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>drive-path</code></em></td><td>
+                                    <p>The directory on the Guacamole server in which transferred
+                                        files should be stored. This directory must be accessible by
+                                        guacd and both readable and writable by the user that runs
+                                        guacd. <span class="emphasis"><em>This parameter does not refer to a
+                                            directory on the RDP server.</em></span></p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-drive-path</code></em></td><td>
+                                    <p>If set to "true", and file transfer is enabled, the
+                                        directory specified by the <em class="parameter"><code>drive-path</code></em>
+                                        parameter will automatically be created if it does not yet
+                                        exist. Only the final directory in the path will be created
+                                        - if other directories earlier in the path do not exist,
+                                        automatic creation will fail, and an error will be
+                                        logged.</p>
+                                    <p>By default, the directory specified by the
+                                            <em class="parameter"><code>drive-path</code></em> parameter will not
+                                        automatically be created, and attempts to transfer files to
+                                        a non-existent directory will be logged as errors.</p>
+                                    <p>If file transfer is not enabled, this parameter is
+                                        ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>console-audio</code></em></td><td>
+                                    <p><a id="idm46420846487536" class="indexterm"></a>If set to "true", audio will be explicitly
+                                        enabled in the console (admin) session of the RDP server.
+                                        Setting this option to "true" only makes sense if the
+                                            <em class="parameter"><code>console</code></em> parameter is also set to
+                                        "true".</p>
+                                </td></tr><tr><td><em class="parameter"><code>static-channels</code></em></td><td>
+                                    <p>A comma-separated list of static channel names to open and
+                                        expose as pipes. If you wish to communicate between an
+                                        application running on the remote desktop and JavaScript,
+                                        this is the best way to do it. Guacamole will open an
+                                        outbound pipe with the name of the static channel. If
+                                        JavaScript needs to communicate back in the other direction,
+                                        it should respond by opening another pipe with the same
+                                        name.</p>
+                                    <p>Guacamole allows any number of static channels to be
+                                        opened, but protocol restrictions of RDP limit the size of
+                                        each channel name to 7 characters.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-preconnection-pdu"></a>Preconnection PDU (Hyper-V)</h4></div></div></div><p><a id="idm46420846479552" class="indexterm"></a><a id="idm46420846478800" class="indexterm"></a>Some RDP servers host multiple logical RDP connections behind a
+                    single server listening on a single TCP port. To select between these logical
+                    connections, an RDP client must send the "preconnection PDU" - a message which
+                    contains values that uniquely identify the destination, referred to as the "RDP
+                    source". This mechanism is defined by the <a class="link" href="https://msdn.microsoft.com/en-us/library/cc242359.aspx" target="_top">"Session
+                        Selection Extension"</a> for the RDP protocol, and is implemented by
+                    Microsoft's Hyper-V hypervisor.</p><p>If you are using Hyper-V, you will need to specify the ID of the destination
+                    virtual machine within the <em class="parameter"><code>preconnection-blob</code></em> parameter.
+                    This value can be determined using PowerShell:</p><div class="informalexample"><pre class="screen"><code class="computeroutput"><code class="prompt">PS C:\&gt; </code></code><strong class="userinput"><code>Get-VM <em class="replaceable"><code>VirtualMachineName</code></em> | Select-Object Id
+</code></strong><code class="computeroutput">
+Id
+--
+ed272546-87bd-4db9-acba-e36e1a9ca20a
+
+
+<code class="prompt">PS C:\&gt; </code></code></pre></div><p>The preconnection PDU is intentionally generic. While its primary use is as a
+                    means for selecting virtual machines behind Hyper-V, other RDP servers may use
+                    it as well. It is up to the RDP server itself to determine whether the
+                    preconnection ID, BLOB, or both will be used, and what their values mean.</p><p>If you do intend to use Hyper-V, beware that its built-in RDP server uses
+                    slightly different parameters for both authentication and the port number, and
+                    Guacamole's defaults will not work. In most cases, you will need to do the
+                    following when connecting to Hyper-V:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Set "<em class="parameter"><code>port</code></em>" to "<code class="constant">2179</code>", as
+                            this is the default port used by Hyper-V. The standard RDP port is 3389,
+                            and Guacamole will use port 3389 unless a different value is
+                            specified.</p></li><li class="listitem"><p>Specify both "<em class="parameter"><code>username</code></em>" and
+                                "<em class="parameter"><code>password</code></em>" appropriately, and set
+                                "<em class="parameter"><code>security</code></em>" to "<code class="constant">nla</code>" or
+                                "<code class="constant">any</code>". Hyper-V requires Network Level
+                            Authentication from connecting clients. Guacamole's default is to use
+                            standard RDP encryption without Network Level Authentication, which
+                            Hyper-V does not support.</p></li><li class="listitem"><p>If necessary, set "<em class="parameter"><code>ignore-cert</code></em>" to
+                                "<code class="constant">true</code>". Hyper-V may use a self-signed
+                            certificate.</p></li></ol></div><div class="informaltable"><a id="idm46420846462768" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>preconnection-id</code></em></td><td>
+                                    <p><a id="idm46420846455056" class="indexterm"></a>The numeric ID of the RDP source. This is a
+                                        non-negative integer value dictating which of potentially
+                                        several logical RDP connections should be used. This
+                                        parameter is optional, and is only required if the RDP
+                                        server is documented as requiring it. <span class="emphasis"><em>If using
+                                            Hyper-V, this should be left blank.</em></span></p>
+                                </td></tr><tr><td><em class="parameter"><code>preconnection-blob</code></em></td><td>
+                                    <p><a id="idm46420846451472" class="indexterm"></a><a id="idm46420846450672" class="indexterm"></a>An arbitrary string which identifies the RDP
+                                        source - one of potentially several logical RDP connections
+                                        hosted by the same RDP server. This parameter is optional,
+                                        and is only required if the RDP server is documented as
+                                        requiring it, such as Hyper-V. In all cases, the meaning of
+                                        this parameter is opaque to the RDP protocol itself and is
+                                        dictated by the RDP server. <span class="emphasis"><em>For Hyper-V, this will
+                                            be the ID of the destination virtual
+                                        machine.</em></span></p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-gateway"></a>Remote desktop gateway</h4></div></div></div><p><a id="idm46420846446288" class="indexterm"></a><a id="idm46420846445536" class="indexterm"></a>Microsoft's remote desktop server provides an additional gateway
+                    service which allows external connections to be forwarded to internal RDP
+                    servers which are otherwise not accessible. If you will be using Guacamole to
+                    connect through such a gateway, you will need to provide additional parameters
+                    describing the connection to that gateway, as well as any required
+                    credentials.</p><div class="informaltable"><a id="idm46420846443440" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>gateway-hostname</code></em></td><td>
+                                    <p><a id="idm46420846435728" class="indexterm"></a>The hostname of the remote desktop gateway that
+                                        should be used as an intermediary for the remote desktop
+                                        connection. <span class="emphasis"><em>If omitted, a gateway will not be
+                                            used.</em></span></p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-port</code></em></td><td>
+                                    <p><a id="idm46420846432384" class="indexterm"></a>The port of the remote desktop gateway that
+                                        should be used as an intermediary for the remote desktop
+                                        connection. By default, this will be "443".</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-username</code></em></td><td>
+                                    <p><a id="idm46420846429360" class="indexterm"></a>The username of the user authenticating with the
+                                        remote desktop gateway, if a gateway is being used. This is
+                                        not necessarily the same as the user actually using the
+                                        remote desktop connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-password</code></em></td><td>
+                                    <p><a id="idm46420846426256" class="indexterm"></a>The password to provide when authenticating with
+                                        the remote desktop gateway, if a gateway is being
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>gateway-domain</code></em></td><td>
+                                    <p><a id="idm46420846423264" class="indexterm"></a>The domain of the user authenticating with the
+                                        remote desktop gateway, if a gateway is being used. This is
+                                        not necessarily the same domain as the user actually using
+                                        the remote desktop connection.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-connection-broker"></a>Load balancing and RDP connection brokers</h4></div></div></div><p><a id="idm46420846419568" class="indexterm"></a><a id="idm46420846418816" class="indexterm"></a>If your remote desktop servers are behind a load balancer, sometimes
+                    referred to as a "connection broker" or "TS session broker", that balancer may
+                    require additional information during the connection process to determine how
+                    the incoming connection should be routed. RDP does not dictate the format of
+                    this information; it is specific to the balancer in use.</p><p>If you are using a load balancer and are unsure whether such information is
+                    required, <span class="emphasis"><em>you will need to check the documentation for your
+                        balancer</em></span>. If your balancer provides <code class="filename">.rdp</code>
+                    files for convenience, look through the contents of those files for a string
+                    field called "loadbalanceinfo", as that field is where the required
+                    information/cookie would be specified.</p><div class="informaltable"><a id="idm46420846415024" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>load-balance-info</code></em></td><td>
+                                    <p><a id="idm46420846407312" class="indexterm"></a>The load balancing information or cookie which
+                                        should be provided to the connection broker. <span class="emphasis"><em>If no
+                                            connection broker is being used, this should be left
+                                            blank.</em></span></p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-sftp"></a>RDP + SFTP</h4></div></div></div><p>Guacamole can provide file transfer over SFTP even when the remote desktop is
+                    otherwise being accessed through RDP and not SSH. If SFTP is enabled on a
+                    Guacamole RDP connection, users will be able to upload and download files as
+                    described in <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><p>This support is independent of the file transfer implemented through RDP's own
+                    "drive redirection" (RDPDR), and is particularly useful for RDP servers which do
+                    not support RDPDR.</p><div class="informaltable"><a id="idm46420846401024" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46420846393312" class="indexterm"></a><a id="idm46420846392032" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the specified server using SFTP. If omitted, SFTP
+                                        will be disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-hostname</code></em></td><td>
+                                    <p>The hostname or IP address of the server hosting SFTP.
+                                        This parameter is optional. If omitted, the hostname of the
+                                        RDP server specified with the
+                                            <em class="parameter"><code>hostname</code></em> parameter will be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-port</code></em></td><td>
+                                    <p>The port the SSH server providing SFTP is listening on,
+                                        usually 22. This parameter is optional. If omitted, the
+                                        standard port of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-host-key</code></em></td><td>
+                                    <p>The known hosts entry for the SFTP server.  This
+                                        parameter is optional, and, if not provided, no verification
+                                        of SFTP host identity will be done.  If the parameter is
+                                        provided the identity of the server will be checked
+                                        against the data.</p>
+                                    <p>The format of this parameter is that of a single entry
+                                        from an OpenSSH <code class="filename">known_hosts</code> file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-username</code></em></td><td>
+                                    <p>The username to authenticate as when connecting to the
+                                        specified SSH server for SFTP. This parameter is optional if
+                                        a username is specified for the RDP connection. If omitted,
+                                        the value provided for the <em class="parameter"><code>username</code></em>
+                                        parameter will be use.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-password</code></em></td><td>
+                                    <p>The password to use when authenticating with the specified
+                                        SSH server for SFTP.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-private-key</code></em></td><td>
+                                    <p>The entire contents of the private key to use for public
+                                        key authentication. If this parameter is not specified,
+                                        public key authentication will not be used. The private key
+                                        must be in OpenSSH format, as would be generated by the
+                                        OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-passphrase</code></em></td><td>
+                                    <p>The passphrase to use to decrypt the private key for use
+                                        in public key authentication. This parameter is not needed
+                                        if the private key does not require a passphrase.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-directory</code></em></td><td>
+                                    <p>The directory to upload files to if they are simply
+                                        dragged and dropped, and thus otherwise lack a specific
+                                        upload location. This parameter is optional. If omitted, the
+                                        default upload location of the SSH server providing SFTP
+                                        will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-server-alive-interval</code></em></td><td>
+                                    <p>The interval in seconds at which to send keepalive
+                                    packets to the SSH server for the SFTP connection.  This
+                                    parameter is optional.  If omitted, the default of 0 will be
+                                    used, disabling sending keepalive packets.  The minimum
+                                    value is 2.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-perf-flags"></a>Performance flags</h4></div></div></div><p>RDP provides several flags which control the availability of features that
+                    decrease performance and increase bandwidth for the sake of aesthetics, such as
+                    wallpaper, window theming, menu effects, and smooth fonts. These features are
+                    all disabled by default within Guacamole such that bandwidth usage is minimized,
+                    but you can manually re-enable them on a per-connection basis if desired.</p><div class="informaltable"><a id="idm46420846359728" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-wallpaper</code></em></td><td>
+                                    <p><a id="idm46420846352016" class="indexterm"></a>If set to "true", enables rendering of the
+                                        desktop wallpaper. By default, wallpaper will be disabled,
+                                        such that unnecessary bandwidth need not be spent redrawing
+                                        the desktop.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-theming</code></em></td><td>
+                                    <p><a id="idm46420846348448" class="indexterm"></a>If set to "true", enables use of theming of
+                                        windows and controls. By default, theming within RDP
+                                        sessions is disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-font-smoothing</code></em></td><td>
+                                    <p><a id="idm46420846344976" class="indexterm"></a><a id="idm46420846343696" class="indexterm"></a>If set to "true", text will be rendered with
+                                        smooth edges. Text over RDP is rendered with rough edges by
+                                        default, as this reduces the number of colors used by text,
+                                        and thus reduces the bandwidth required for the
+                                        connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-full-window-drag</code></em></td><td>
+                                    <p><a id="idm46420846340032" class="indexterm"></a>If set to "true", the contents of windows will
+                                        be displayed as windows are moved. By default, the RDP
+                                        server will only draw the window border while windows are
+                                        being dragged.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-desktop-composition</code></em></td><td>
+                                    <p><a id="idm46420846336448" class="indexterm"></a><a id="idm46420846335168" class="indexterm"></a>If set to "true", graphical effects such as
+                                        transparent windows and shadows will be allowed. By default,
+                                        such effects, if available, are disabled.</p>
+                                </td></tr><tr><td><em class="parameter"><code>enable-menu-animations</code></em></td><td>
+                                    <p><a id="idm46420846331664" class="indexterm"></a>If set to "true", menu open and close animations
+                                        will be allowed. Menu animations are disabled by
+                                        default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-bitmap-caching</code></em></td><td>
+                                    <p><a id="idm46420846328192" class="indexterm"></a>In certain situations, particularly with RDP server
+                                        implementations with known bugs, it is necessary to disable
+                                        RDP's built-in bitmap caching functionality.  This parameter
+                                        allows that to be controlled in a Guacamole session.  If set to
+                                        "true" the RDP bitmap cache will not be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-offscreen-caching</code></em></td><td>
+                                    <p><a id="idm46420846324448" class="indexterm"></a>RDP normally maintains caches of regions of the screen
+                                        that are current not visible in the client in order to accelerate
+                                        retrieval of those regions when they come into view.  This parameter,
+                                        when set to "true," will disable caching of those regions.  This is
+                                        usually only useful when dealing with known bugs in RDP server
+                                        implementations and should remain enabled in most circumstances.</p>
+                                </td></tr><tr><td><em class="parameter"><code>disable-glyph-caching</code></em></td><td>
+                                    <p><a id="idm46420846320560" class="indexterm"></a>In addition to screen regions, RDP maintains caches of
+                                        frequently used symbols or fonts, collectively known as "glyphs."  As
+                                        with bitmap and offscreen caching, certain known bugs in RDP implementations
+                                        can cause performance issues with this enabled, and setting this parameter
+                                        to "true" will disable that glyph caching in the RDP session.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="rdp-remoteapp"></a>RemoteApp</h4></div></div></div><p>Recent versions of Windows provide a feature called RemoteApp which allows
+                    individual applications to be used over RDP, without providing access to the
+                    full desktop environment. If your RDP server has this feature enabled and
+                    configured, you can configure Guacamole connections to use those individual
+                    applications.</p><div class="informaltable"><a id="idm46420846314976" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>remote-app</code></em></td><td>
+                                    <p><a id="idm46420846307264" class="indexterm"></a>Specifies the RemoteApp to start on the remote
+                                        desktop. If supported by your remote desktop server, this
+                                        application, and only this application, will be visible to
+                                        the user.</p>
+                                    <p>Windows requires a special notation for the names of
+                                        remote applications. The names of remote applications must
+                                        be prefixed with two vertical bars. For example, if you have
+                                        created a remote application on your server for
+                                            <code class="filename">notepad.exe</code> and have assigned it
+                                        the name "notepad", you would set this parameter to:
+                                        "||notepad".</p>
+                                </td></tr><tr><td><em class="parameter"><code>remote-app-dir</code></em></td><td>
+                                    <p>The working directory, if any, for the remote application.
+                                        This parameter has no effect if RemoteApp is not in
+                                        use.</p>
+                                </td></tr><tr><td><em class="parameter"><code>remote-app-args</code></em></td><td>
+                                    <p>The command-line arguments, if any, for the remote
+                                        application. This parameter has no effect if RemoteApp is
+                                        not in use.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-rdp"></a>Adding an RDP connection</h4></div></div></div><a id="idm46420846297856" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a RDP connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;rdp&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>3389</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    RDP to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>3389</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If you want to login automatically rather than receive a login prompt upon
+                    connecting, you can specify a username and password with additional
+                        <code class="code">&lt;param&gt;</code> tags. Other options are available for controlling
+                    the color depth, size of the screen, etc.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections. If the authentication method in use fully implements
+                    the features of Guacamole's authentication API, you will be able to add a new
+                    RDP connection easily and intuitively using the administration interface built
+                    into Guacamole. You will not need to edit configuration files.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ssh"></a>SSH</h3></div></div></div><a id="idm46420846287056" class="indexterm"></a><p>Unlike VNC or RDP, SSH is a text protocol. Its implementation in Guacamole is
+                actually a combination of a terminal emulator and SSH client, because the SSH
+                protocol isn't inherently graphical. Guacamole's SSH support emulates a terminal on
+                the server side, and draws the screen of this terminal remotely on the
+                client.</p><p>SSH support for Guacamole is provided by the <span class="package">libguac-client-ssh</span>
+                library, which will be installed as part of guacamole-server if the required
+                dependencies are present during the build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-host-verification"></a>SSH Host Verification</h4></div></div></div><p>By default, Guacamole does not do any verification of host identity before
+                    establishing SSH connections.  While this may be safe for private and trusted
+                    networks, it is not ideal for large networks with unknown/untrusted systems,
+                    or for SSH connections that traverse the Internet.  The potential exists for
+                    Man-in-the-Middle (MitM) attacks when connecting to these hosts.</p><p>Guacamole includes two methods for verifying SSH (and SFTP) server identity
+                    that can be used to make sure that the host you are connecting to is a host
+                    that you know and trust.  The first method is by reading a file in
+                    <code class="varname">GUACAMOLE_HOME</code> called <code class="filename">ssh_known_hosts</code>.
+                    This file should be in the format of a standard OpenSSH known_hosts file.
+                    If the file is not present, no verification is done.  If the file is present,
+                    it is read in at connection time and remote host identities are verified
+                    against the keys present in the file.</p><p>The second method for verifying host identity is by passing a connection
+                    parameter that contains an OpenSSH known hosts entry for that specific host.
+                    The <em class="parameter"><code>host-key</code></em> parameter is used for SSH connections, 
+                    while the SFTP connections associated with RDP and VNC use the
+                    <em class="parameter"><code>sftp-host-key</code></em> parameter.  If these parameters are
+                    not present on their respective connections no host identity verification
+                    is performed.  If the parameter is present then the identity of the remote
+                    host is verified against the identity provided in the parameter before a
+                    connection is established.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-network-parameters"></a>Network parameters</h4></div></div></div><p>SSH connections require a hostname or IP address defining the destination
+                    machine. SSH is standardized to use port 22 and this will be the proper value in
+                    most cases. You only need to specify the SSH port if you are not using the
+                    standard port.</p><div class="informaltable"><a id="idm46420846275728" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420846268016" class="indexterm"></a>The hostname or IP address of the SSH server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420846264624" class="indexterm"></a>The port the SSH server is listening on, usually
+                                        22. This parameter is optional. If this is not specified,
+                                        the default of 22 will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>host-key</code></em></td><td>
+                                    <p><a id="idm46420846261120" class="indexterm"></a>The known hosts entry for the SSH server.  This
+                                            parameter is optional, and, if not provided, no verification
+                                            of host identity will be done.  If the parameter is
+                                            provided the identity of the server will be checked
+                                            against the data.</p>
+                                    <p>The format of this parameter is that of a single entry from
+                                        an OpenSSH <code class="filename">known_hosts</code> file.</p>
+                                    <p>For more information, please see <a class="xref" href="configuring-guacamole.html#ssh-host-verification" title="SSH Host Verification">the section called “SSH Host Verification”</a>.</p>
+                                </td></tr><tr><td><em class="parameter"><code>server-alive-interval</code></em></td><td>
+                                    <p>
+                                        <a id="idm46420846255200" class="indexterm"></a>
+                                        By default the SSH client does not send keepalive requests
+                                        to the server.  This parameter allows you to configure the
+                                        the interval in seconds at which the client connection
+                                        sends keepalive packets to the server.  The default is 0,
+                                        which disables sending the packets.  The minimum value
+                                        is 2.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-authentication"></a>Authentication</h4></div></div></div><p>SSH provides authentication through passwords and public key
+                    authentication, and also supports the NONE method.</p><p>SSH NONE authentication is seen occasionally in appliances
+                    and items like network or SAN fabric switches.  Generally
+                    for this authentication method you need only provide a
+                    username.</p><p>For Guacamole to use public key authentication, it must have access to your
+                    private key and, if applicable, its passphrase. If the private key requires a
+                    passphrase, but no passphrase is provided, you will be prompted for the
+                    passphrase upon connecting.</p><p>If no private key is provided, Guacamole will attempt to authenticate using a
+                    password, reading that password from the connection parameters, if provided, or
+                    by prompting the user directly.</p><div class="informaltable"><a id="idm46420846248256" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46420846240544" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional. If not specified, you will be
+                                        prompted for the username upon connecting.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420846237040" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional. If not
+                                        specified, you will be prompted for your password upon
+                                        connecting.</p>
+                                </td></tr><tr><td><em class="parameter"><code>private-key</code></em></td><td>
+                                    <p><a id="idm46420846233472" class="indexterm"></a>The entire contents of the private key to use
+                                        for public key authentication. If this parameter is not
+                                        specified, public key authentication will not be used. The
+                                        private key must be in OpenSSH format, as would be generated
+                                        by the OpenSSH <span class="command"><strong>ssh-keygen</strong></span> utility.</p>
+                                </td></tr><tr><td><em class="parameter"><code>passphrase</code></em></td><td>
+                                    <p><a id="idm46420846229328" class="indexterm"></a>The passphrase to use to decrypt the private key
+                                        for use in public key authentication. This parameter is not
+                                        needed if the private key does not require a passphrase. If
+                                        the private key requires a passphrase, but this parameter is
+                                        not provided, the user will be prompted for the passphrase
+                                        upon connecting.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's SSH support provides a display, but not in the same sense as a
+                    remote desktop protocol like VNC or RDP. The display is a terminal emulator, and
+                    thus provides options for configuring the font used and its size. In this case,
+                        <span class="emphasis"><em>the chosen font must be installed on the server</em></span>, as it
+                    is the server that will handle rendering of characters to the terminal display,
+                    not the client.</p><div class="informaltable"><a id="idm46420846223216" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46420846215504" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by SSH connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a
+                                        value to a color in the terminal emulator palette. For
+                                        example, to use blue text on white background by default,
+                                        and change the red color to a purple shade, you would
+                                        specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                    on the Xterm 256-color palette. For example,
+                                                    <code class="code">color9</code> refers to the red color.
+                                                    </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                    each component in hexadecimal. For example,
+                                                    <code class="code">rgb:ff/00/00</code> specifies the color
+                                                    red. Note that each hexadecimal component can be
+                                                    one to four digits, but the effective values are
+                                                    always zero-extended or truncated to two digits;
+                                                    for example, <code class="code">rgb:f/8/0</code>,
+                                                    <code class="code">rgb:f0/80/00</code>, and
+                                                    <code class="code">rgb:f0f/808/00f</code> all refer to the
+                                                    same effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                    <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                    palette. For example, <code class="code">color9</code>
+                                                    specifies the current red color. Note that the
+                                                    color value is used rather than the color
+                                                    reference, so if <code class="code">color9</code> is changed
+                                                    later in the color scheme configuration, that
+                                                    new color will not be reflected in this
+                                                    assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46420846181936" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p>The maximum number of rows to allow within the terminal
+                                        scrollback buffer. This parameter is optional. If not
+                                        specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-command"></a>Running a command (instead of a shell)</h4></div></div></div><p>By default, SSH sessions will start an interactive shell. The shell which will
+                    be used is determined by the SSH server, normally by reading the user's default
+                    shell previously set with <span class="command"><strong>chsh</strong></span> or within
+                        <code class="filename">/etc/passwd</code>. If you wish to override this and instead
+                    run a specific command, you can do so by specifying that command in the
+                    configuration of the Guacamole SSH connection.</p><div class="informaltable"><a id="idm46420846171120" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>command</code></em></td><td>
+                                    <p><a id="idm46420846163408" class="indexterm"></a>The command to execute over the SSH session, if
+                                        any. This parameter is optional. If not specified, the SSH
+                                        session will use the user's default shell.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420846160592"></a>Internationalization/Locale settings</h4></div></div></div><p>The language of the session is normally set by the SSH server. If the SSH
+                    server allows the relevant environment variable to be set, the language can be
+                    overridden on a per-connection basis.</p><div class="informaltable"><a id="idm46420846158624" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>locale</code></em></td><td>
+                                    <p><a id="idm46420846150912" class="indexterm"></a>The specific locale to request for the SSH
+                                        session. This parameter is optional and may be any value
+                                        accepted by the <code class="envar">LANG</code> environment variable of
+                                        the SSH server. If not specified, the SSH server's default
+                                        locale will be used.</p>
+                                    <p>As this parameter is sent to the SSH server using the
+                                            <code class="envar">LANG</code> environment variable, the parameter
+                                        will only have an effect if the SSH server allows the
+                                            <code class="envar">LANG</code> environment variable to be set by
+                                        SSH clients.</p>
+                                </td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td>
+                                    <p>
+                                        <a id="idm46420846144960" class="indexterm"></a>This parameter allows you
+                                        to control the timezone that is sent
+                                        to the server over the SSH connection,
+                                        which will change the way local time is
+                                        displayed on the server.</p>
+                                    <p>
+                                        The mechanism used to do this over SSH
+                                        connections is by setting the
+                                        <code class="envar">TZ</code> variable on the SSH
+                                        connection to the timezone specified by
+                                        this parameter.  This means that the SSH
+                                        server must allow the <code class="envar">TZ</code>
+                                        variable to be set/overriden - many SSH
+                                        server implementations have this disabled
+                                        by default.  To get this to work, you may
+                                        need to modify the configuration of the
+                                        SSH server and explicitly allow for
+                                        <code class="envar">TZ</code> to be set/overriden.
+                                    </p>
+                                    <p>
+                                        The available values of this parameter are
+                                        standard IANA key zone format timezones,
+                                        and the value will be sent directly to
+                                        the server in this format.
+                                    </p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems other
+                    than Linux, the terminal behavior may need to be tweaked to allow it to operate
+                    properly.  The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46420846136080" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46420846128368" class="indexterm"></a>This parameter controls the ASCII code that
+                                        the backspace key sends to the remote system.  Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control characters
+                                        (often either ^? or ^H) instead of seeing the text erased,
+                                        you may need to adjust this parameter.  By default the terminal
+                                        sends ASCII code 127 (Delete) if this option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46420846124448" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the SSH server. This parameter is
+                                        optional. If not specified, "<code class="code">linux</code>"
+                                        is used as the terminal emulator type by default.</p>
+                                </td></tr></tbody></table></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="ssh-stdin-pipe"></a>Providing input directly from JavaScript</h5></div></div></div><p>If Guacamole is being used in part to automate an SSH session, it can be
+                        useful to provide input directly from JavaScript as a raw stream of data,
+                        rather than attempting to translate data into keystrokes. This can be done
+                        through opening a pipe stream named "STDIN" within the SSH connection using
+                        the <a class="link" href="../guacamole-common-js/Guacamole.Client.html#createPipeStream" target="_top"><code class="function">createPipeStream()</code></a> function of <a class="link" href="../guacamole-common-js/Guacamole.Client.html" target="_top"><code class="classname">Guacamole.Client</code></a>:</p><div class="informalexample"><pre class="programlisting">var outputStream = client.createPipeStream('text/plain', 'STDIN');</pre></div><p>The resulting <a class="link" href="../guacamole-common-js/Guacamole.OutputStream.html" target="_top"><code class="classname">Guacamole.OutputStream</code></a> can then be
+                        used to stream data directly to the input of the SSH session, as if typed by
+                        the user:</p><div class="informalexample"><pre class="programlisting">// Wrap output stream in writer
+var writer = new Guacamole.StringWriter(outputStream);
+
+// Send text
+writer.sendText("hello");
+
+// Send more text
+writer.sendText("world");
+
+// Close writer and stream
+writer.sendEnd();</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of SSH sessions, including timing information, can
+                    be recorded automatically to a specified directory. This recording, also known
+                    as a "typescript", will be written to two files within the directory specified
+                    by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846102160" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46420846094448" class="indexterm"></a><a id="idm46420846093168" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, SSH sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420846059632" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420846051920" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="ssh-sftp"></a>SFTP</h4></div></div></div><p>Guacamole provides support for file transfer over SSH using SFTP, the file
+                    transfer protocol built into most SSH servers. If SFTP is enabled on a Guacamole
+                    SSH connection, users will be able to upload and download files as described in
+                        <a class="xref" href="using-guacamole.html" title="Chapter 15. Using Guacamole">Chapter 15, <em>Using Guacamole</em></a>.</p><div class="informaltable"><a id="idm46420846023328" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>enable-sftp</code></em></td><td>
+                                    <p><a id="idm46420846015616" class="indexterm"></a><a id="idm46420846014336" class="indexterm"></a>Whether file transfer should be enabled. If set
+                                        to "true", the user will be allowed to upload or download
+                                        files from the SSH server using SFTP. Guacamole includes the
+                                            <span class="command"><strong>guacctl</strong></span> utility which controls file
+                                        downloads and uploads when run on the SSH server by the user
+                                        over the SSH connection.</p>
+                                </td></tr><tr><td><em class="parameter"><code>sftp-root-directory</code></em></td><td>
+                                    <p>The directory to expose to connected users via Guacamole's
+                                            <a class="link" href="using-guacamole.html#file-browser" title="Using the file browser">file browser</a>. If omitted,
+                                        the root directory will be used by default.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-ssh"></a>Adding an SSH connection</h4></div></div></div><a id="idm46420846007152" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a SSH connection to a particular user, you need to locate the
+                        <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;ssh&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>22</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    SSH to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>22</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>If you want to login automatically rather than receive a login prompt upon
+                    connecting, you can specify a username and password with additional
+                        <code class="code">&lt;param&gt;</code> tags. Other options are available for controlling
+                    the font.</p><p>Other authentication methods will provide documentation describing how to
+                    configure new connections.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="telnet"></a>Telnet</h3></div></div></div><a id="idm46420845996704" class="indexterm"></a><p>Telnet is a text protocol and provides similar functionality to SSH. By nature, it
+                is not encrypted, and does not provide support for file transfer. As far as graphics
+                are concerned, Guacamole's telnet support works in the same manner as SSH: it
+                emulates a terminal on the server side which renders to the Guacamole client's
+                display.</p><p>Telnet support for Guacamole is provided by the
+                    <span class="package">libguac-client-telnet</span> library, which will be installed as
+                part of guacamole-server if the required dependencies are present during the
+                build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-network-parameters"></a>Network parameters</h4></div></div></div><p>Telnet connections require a hostname or IP address defining the destination
+                    machine. Telnet is standardized to use port 23 and this will be the proper value
+                    in most cases. You only need to specify the telnet port if you are not using the
+                    standard port.</p><div class="informaltable"><a id="idm46420845991392" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420845983728" class="indexterm"></a>The hostname or IP address of the telnet server
+                                        Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420845980336" class="indexterm"></a>The port the telnet server is listening on,
+                                        usually 23. This parameter is optional. If this is not
+                                        specified, the default of 23 will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-authentication"></a>Authentication</h4></div></div></div><p>Telnet does not actually provide any standard means of authentication.
+                    Authentication over telnet depends entirely on the login process running on the
+                    server and is interactive. To cope with this, Guacamole provides non-standard
+                    mechanisms for automatically passing the username and entering password. Whether
+                    these mechanisms work depends on specific login process used by your telnet
+                    server.</p><p>The de-facto method for passing the username automatically via telnet is to
+                    submit it via the <code class="envar">USER</code> environment variable, sent using the
+                        <code class="methodname">NEW-ENVIRON</code> option. This is the mechanism used by
+                    most telnet clients, typically via the <code class="option">-l</code> command-line
+                    option.</p><p>Passwords cannot typically be sent automatically - at least not as reliably as
+                    the username. There is no <code class="envar">PASSWORD</code> environment variable (this
+                    would actually be a horrible idea) nor any similar mechanism for passing the
+                    password to the telnet login process, and most telnet clients provide no
+                    built-in support for automatically entering the password. The best that can be
+                    done is to heuristically detect the password prompt, and type the password on
+                    behalf of the user when the prompt appears. The prescribed method for doing this
+                    with a traditional command-line telnet is to use a utility like
+                        <span class="command"><strong>expect</strong></span>. Guacamole provides similar functionality by
+                    searching for the password prompt with a regular expression.</p><p>If Guacamole receives a line of text which matches the regular expression, the
+                    password is automatically sent. If no such line is ever received, the password
+                    is not sent, and the user must type the password manually. Pressing any key
+                    during this process cancels the heuristic password prompt detection.</p><p>If the password prompt is not being detected properly, you can try using your
+                    own regular expression by specifying it within the
+                        <em class="parameter"><code>password-regex</code></em> parameter. The regular expression must
+                    be written in the POSIX ERE dialect (the dialect typically used by
+                        <span class="command"><strong>egrep</strong></span>).</p><div class="informaltable"><a id="idm46420845968912" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>username</code></em></td><td>
+                                    <p><a id="idm46420845961200" class="indexterm"></a>The username to use to authenticate, if any.
+                                        This parameter is optional. If not specified, or not
+                                        supported by the telnet server, the login process on the
+                                        telnet server will prompt you for your credentials. For this
+                                        to work, your telnet server must support the
+                                            <code class="methodname">NEW-ENVIRON</code> option, and the
+                                        telnet login process must pay attention to the
+                                            <code class="envar">USER</code> environment variable. Most telnet
+                                        servers satisfy this criteria.</p>
+                                </td></tr><tr><td><em class="parameter"><code>password</code></em></td><td>
+                                    <p><a id="idm46420845956336" class="indexterm"></a>The password to use when attempting
+                                        authentication, if any. This parameter is optional. If
+                                        specified, your password will be typed on your behalf when
+                                        the password prompt is detected.</p>
+                                </td></tr><tr><td><em class="parameter"><code>username-regex</code></em></td><td>
+                                    <p>The regular expression to use when waiting for the
+                                        username prompt. This parameter is optional. If not
+                                        specified, a reasonable default built into Guacamole will be
+                                        used. The regular expression must be written in the POSIX
+                                        ERE dialect (the dialect typically used by
+                                            <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>password-regex</code></em></td><td>
+                                    <p>The regular expression to use when waiting for the
+                                        password prompt. This parameter is optional. If not
+                                        specified, a reasonable default built into Guacamole will be
+                                        used. The regular expression must be written in the POSIX
+                                        ERE dialect (the dialect typically used by
+                                            <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>login-success-regex</code></em></td><td>
+                                    <p>The regular expression to use when detecting that the
+                                        login attempt has succeeded. This parameter is optional. If
+                                        specified, the terminal display will not be shown to the
+                                        user until text matching this regular expression has been
+                                        received from the telnet server. The regular expression must
+                                        be written in the POSIX ERE dialect (the dialect typically
+                                        used by <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr><tr><td><em class="parameter"><code>login-failure-regex</code></em></td><td>
+                                    <p>The regular expression to use when detecting that the
+                                        login attempt has failed. This parameter is optional. If
+                                        specified, the connection will be closed with an explicit
+                                        login failure error if text matching this regular expression
+                                        has been received from the telnet server. The regular
+                                        expression must be written in the POSIX ERE dialect (the
+                                        dialect typically used by <span class="command"><strong>egrep</strong></span>).</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's telnet support provides a display, but not in the same sense as a
+                    remote desktop protocol like VNC or RDP. The display is a terminal emulator, and
+                    thus provides options for configuring the font used and its size. In this case,
+                        <span class="emphasis"><em>the chosen font must be installed on the server</em></span>, as it
+                    is the server that will handle rendering of characters to the terminal display,
+                    not the client.</p><div class="informaltable"><a id="idm46420845938512" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46420845930800" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by telnet connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a
+                                        value to a color in the terminal emulator palette. For
+                                        example, to use blue text on white background by default,
+                                        and change the red color to a purple shade, you would
+                                        specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                    on the Xterm 256-color palette. For example,
+                                                    <code class="code">color9</code> refers to the red color.
+                                                    </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                    each component in hexadecimal. For example,
+                                                    <code class="code">rgb:ff/00/00</code> specifies the color
+                                                    red. Note that each hexadecimal component can be
+                                                    one to four digits, but the effective values are
+                                                    always zero-extended or truncated to two digits;
+                                                    for example, <code class="code">rgb:f/8/0</code>,
+                                                    <code class="code">rgb:f0/80/00</code>, and
+                                                    <code class="code">rgb:f0f/808/00f</code> all refer to the
+                                                    same effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                    <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                    palette. For example, <code class="code">color9</code>
+                                                    specifies the current red color. Note that the
+                                                    color value is used rather than the color
+                                                    reference, so if <code class="code">color9</code> is changed
+                                                    later in the color scheme configuration, that
+                                                    new color will not be reflected in this
+                                                    assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46420845897232" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p>The maximum number of rows to allow within the terminal
+                                        scrollback buffer. This parameter is optional. If not
+                                        specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems other
+                    than Linux, the terminal behavior may need to be tweaked to allow it to operate
+                    properly.  The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46420845887408" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46420845879696" class="indexterm"></a>This parameter controls the ASCII code that
+                                        the backspace key sends to the remote system.  Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control characters
+                                        (often either ^? or ^H) instead of seeing the text erased,
+                                        you may need to adjust this parameter.  By default the terminal
+                                        sends ASCII code 127 (Delete) if this option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46420845875776" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the telnet server. This parameter
+                                        is optional. If not specified,
+                                        "<code class="code">linux</code>" is used as the terminal
+                                        emulator type by default.</p>
+                                </td></tr></tbody></table></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="telnet-stdin-pipe"></a>Providing input directly from JavaScript</h5></div></div></div><p>If Guacamole is being used in part to automate a telnet session, it can be
+                        useful to provide input directly from JavaScript as a raw stream of data,
+                        rather than attempting to translate data into keystrokes. This can be done
+                        through opening a pipe stream named "STDIN" within the telnet connection
+                        using the <a class="link" href="../guacamole-common-js/Guacamole.Client.html#createPipeStream" target="_top"><code class="function">createPipeStream()</code></a> function of <a class="link" href="../guacamole-common-js/Guacamole.Client.html" target="_top"><code class="classname">Guacamole.Client</code></a>:</p><div class="informalexample"><pre class="programlisting">var outputStream = client.createPipeStream('text/plain', 'STDIN');</pre></div><p>The resulting <a class="link" href="../guacamole-common-js/Guacamole.OutputStream.html" target="_top"><code class="classname">Guacamole.OutputStream</code></a> can then be
+                        used to stream data directly to the input of the telnet session, as if typed
+                        by the user:</p><div class="informalexample"><pre class="programlisting">// Wrap output stream in writer
+var writer = new Guacamole.StringWriter(outputStream);
+
+// Send text
+writer.sendText("hello");
+
+// Send more text
+writer.sendText("world");
+
+// Close writer and stream
+writer.sendEnd();</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of telnet sessions, including timing information,
+                    can be recorded automatically to a specified directory. This recording, also
+                    known as a "typescript", will be written to two files within the directory
+                    specified by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845853376" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46420845845664" class="indexterm"></a><a id="idm46420845844384" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="telnet-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, telnet sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845810848" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420845803136" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-telnet"></a>Adding a telnet connection</h4></div></div></div><a id="idm46420845776384" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a telnet connection to a particular user, you need to locate
+                    the <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;telnet&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="port"&gt;<em class="replaceable"><code>23</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will use
+                    telnet to connect to <em class="replaceable"><code>localhost</code></em> at port
+                        <em class="replaceable"><code>23</code></em>. Naturally, you will want to change some or
+                    all of these values.</p><p>As telnet is inherently insecure compared to SSH, you should use SSH instead
+                    wherever possible. If Guacamole is set up to use HTTPS then communication with
+                    the Guacamole <span class="emphasis"><em>client</em></span> will be encrypted, but communication
+                    between guacd and the telnet server will still be unencrypted. You should not
+                    use telnet unless the network between guacd and the telnet server is
+                    trusted.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="kubernetes"></a>Kubernetes</h3></div></div></div><a id="idm46420845766288" class="indexterm"></a><p>Kubernetes provides an API for attaching to the console of a container over the
+                network. As with SSH and telnet, Guacamole's Kubernetes support emulates a terminal
+                on the server side which renders to the Guacamole client's display.</p><p>Kubernetes support for Guacamole is provided by the
+                    <span class="package">libguac-client-kubernetes</span> library, which will be installed as
+                part of guacamole-server if the required dependencies are present during the
+                build.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-network-parameters"></a>Network/Container parameters</h4></div></div></div><p>Attaching to a Kubernetes container requires the hostname or IP address of the
+                    Kubernetes server and the name of the pod containing the container in question.
+                    By default, Guacamole will attach to the first container in the pod. If there
+                    are multiple containers in the pod, you may wish to also specify the container
+                    name.</p><div class="informaltable"><a id="idm46420845761040" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>hostname</code></em></td><td>
+                                    <p><a id="idm46420845753328" class="indexterm"></a>The hostname or IP address of the Kubernetes
+                                        server that Guacamole should connect to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>port</code></em></td><td>
+                                    <p><a id="idm46420845749920" class="indexterm"></a>The port the Kubernetes server is listening on
+                                        for API connections. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, port 8080 will be used
+                                        by default.</p>
+                                </td></tr><tr><td><em class="parameter"><code>namespace</code></em></td><td>
+                                    <p><a id="idm46420845745968" class="indexterm"></a>The name of the Kubernetes namespace of the pod
+                                        containing the container being attached to. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the
+                                        namespace "default" will be used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>pod</code></em></td><td>
+                                    <p><a id="idm46420845741984" class="indexterm"></a>The name of the Kubernetes pod containing with
+                                        the container being attached to.</p>
+                                </td></tr><tr><td><em class="parameter"><code>container</code></em></td><td>
+                                    <p><a id="idm46420845738592" class="indexterm"></a>The name of the container to attach to.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the first container in the pod will be used.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-authentication"></a>Authentication and SSL/TLS</h4></div></div></div><p>If enabled, Kubernetes uses SSL/TLS for both encryption and authentication.
+                    Standard SSL/TLS client authentication requires both a client certificate and
+                    client key, which Guacamole will use to identify itself to the Kubernetes
+                    server. If the certificate used by Kubernetes is self-signed or signed by a
+                    non-standard certificate authority, the certificate for the certificate
+                    authority will also be needed.</p><div class="informaltable"><a id="idm46420845732720" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>use-ssl</code></em></td><td>
+                                    <p>If set to "true", SSL/TLS will be used to connect to the
+                                        Kubernetes server. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> By default, SSL/TLS will not be
+                                        used.</p>
+                                </td></tr><tr><td><em class="parameter"><code>client-cert</code></em></td><td>
+                                    <p>The certificate to use if performing SSL/TLS client
+                                        authentication to authenticate with the Kubernetes server,
+                                        in PEM format. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, SSL client
+                                        authentication will not be performed.</p>
+                                </td></tr><tr><td><em class="parameter"><code>client-key</code></em></td><td>
+                                    <p>The key to use if performing SSL/TLS client authentication
+                                        to authenticate with the Kubernetes server, in PEM format.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, SSL client authentication will not be
+                                        performed</p>
+                                </td></tr><tr><td><em class="parameter"><code>ca-cert</code></em></td><td>
+                                    <p>The certificate of the certificate authority that signed
+                                        the certificate of the Kubernetes server, in PEM format.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, verification of the Kubernetes server certificate
+                                        will use only system-wide certificate authorities. </p>
+                                </td></tr><tr><td><em class="parameter"><code>ignore-cert</code></em></td><td>
+                                    <p>If set to "true", the validity of the SSL/TLS certificate
+                                        used by the Kubernetes server will be ignored if it cannot
+                                        be validated. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> By default, SSL/TLS certificates
+                                        are validated.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-display-settings"></a>Display settings</h4></div></div></div><p>Guacamole's Kubernetes support provides a display, but not in the same sense
+                    as a remote desktop protocol like VNC or RDP. The display is a terminal
+                    emulator, and thus provides options for configuring the font used and its size.
+                    In this case, <span class="emphasis"><em>the chosen font must be installed on the
+                        server</em></span>, as it is the server that will handle rendering of
+                    characters to the terminal display, not the client.</p><div class="informaltable"><a id="idm46420845708736" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>color-scheme</code></em></td><td>
+                                    <p><a id="idm46420845701072" class="indexterm"></a>The color scheme to use for the terminal
+                                        emulator used by Kubernetes connections. It consists of a
+                                        semicolon-separated series of name-value pairs. Each
+                                        name-value pair is separated by a colon and assigns a value
+                                        to a color in the terminal emulator palette. For example, to
+                                        use blue text on white background by default, and change the
+                                        red color to a purple shade, you would specify:</p>
+                                    <div class="informalexample"><pre class="programlisting">foreground: rgb:00/00/ff;
+background: rgb:ff/ff/ff;
+color9: rgb:80/00/80</pre></div>
+                                    <p>This format is similar to the color configuration format
+                                        used by Xterm, so Xterm color configurations can be easily
+                                        adapted for Guacamole. This parameter is optional. If not
+                                        specified, Guacamole will render text as gray over a black
+                                        background.</p>
+                                    <p>Possible color names are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">foreground</code></span></dt><dd><p>Set the default foreground color.</p></dd><dt><span class="term"><code class="constant">background</code></span></dt><dd><p>Set the default background color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Set the color at index <code class="code">&lt;n&gt;</code>
+                                                  on the Xterm 256-color palette. For example,
+                                                  <code class="code">color9</code> refers to the red color.
+                                                </p></dd></dl></div>
+                                    <p>Possible color values are:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">rgb:RR/GG/BB</code></span></dt><dd><p>Use the specified color in RGB format, with
+                                                  each component in hexadecimal. For example,
+                                                  <code class="code">rgb:ff/00/00</code> specifies the color red.
+                                                  Note that each hexadecimal component can be one to
+                                                  four digits, but the effective values are always
+                                                  zero-extended or truncated to two digits; for
+                                                  example, <code class="code">rgb:f/8/0</code>,
+                                                  <code class="code">rgb:f0/80/00</code>, and
+                                                  <code class="code">rgb:f0f/808/00f</code> all refer to the same
+                                                  effective color.</p></dd><dt><span class="term"><code class="constant">color&lt;n&gt;</code></span></dt><dd><p>Use the color currently assigned to index
+                                                  <code class="code">&lt;n&gt;</code> on the Xterm 256-color
+                                                  palette. For example, <code class="code">color9</code>
+                                                  specifies the current red color. Note that the
+                                                  color value is used rather than the color
+                                                  reference, so if <code class="code">color9</code> is changed
+                                                  later in the color scheme configuration, that new
+                                                  color will not be reflected in this
+                                                  assignment.</p></dd></dl></div>
+                                    <p>For backward compatibility, Guacamole will also accept
+                                        four special values as the color scheme parameter:</p>
+                                    <div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">black-white</code></span></dt><dd><p>Black text over a white background.</p></dd><dt><span class="term"><code class="constant">gray-black</code></span></dt><dd><p>Gray text over a black background. This is the
+                                                  default color scheme.</p></dd><dt><span class="term"><code class="constant">green-black</code></span></dt><dd><p>Green text over a black background.</p></dd><dt><span class="term"><code class="constant">white-black</code></span></dt><dd><p>White text over a black background.</p></dd></dl></div>
+                                </td></tr><tr><td><em class="parameter"><code>font-name</code></em></td><td>
+                                    <p><a id="idm46420845667552" class="indexterm"></a>The name of the font to use. This parameter is
+                                        optional. If not specified, the default of "monospace" will
+                                        be used instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>font-size</code></em></td><td>
+                                    <p>The size of the font to use, in points. This parameter is
+                                        optional. If not specified, the default of 12 will be used
+                                        instead.</p>
+                                </td></tr><tr><td><em class="parameter"><code>read-only</code></em></td><td>
+                                    <p><a id="idm46420845661856" class="indexterm"></a>Whether this connection should be read-only. If
+                                        set to "true", no input will be accepted on the connection
+                                        at all. Users will only see the console of the Kubernetes
+                                        container. <span class="emphasis"><em>This parameter is optional.</em></span>
+                                        If omitted, the connection will not be read-only.</p>
+                                </td></tr><tr><td><em class="parameter"><code>scrollback</code></em></td><td>
+                                    <p><a id="idm46420845657728" class="indexterm"></a>The maximum number of rows to allow within the
+                                        terminal scrollback buffer. This parameter is optional. If
+                                        not specified, the scrollback buffer will be limited to a
+                                        maximum of 1000 rows.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-terminal-behavior"></a>Controlling terminal behavior</h4></div></div></div><p>In most cases, the default behavior for a terminal works without modification.
+                    However, when connecting to certain systems, particularly operating systems
+                    other than Linux, the terminal behavior may need to be tweaked to allow it to
+                    operate properly. The settings in this section control that behavior.</p><div class="informaltable"><a id="idm46420845652256" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>backspace</code></em></td><td>
+                                    <p><a id="idm46420845644544" class="indexterm"></a>This parameter controls the ASCII code that the
+                                        backspace key sends to the remote system. Under most
+                                        circumstances this should not need to be adjusted; however,
+                                        if, when pressing the backspace key, you see control
+                                        characters (often either ^? or ^H) instead of seeing the
+                                        text erased, you may need to adjust this parameter. By
+                                        default the terminal sends ASCII code 127 (Delete) if this
+                                        option is not set.</p>
+                                </td></tr><tr><td><em class="parameter"><code>terminal-type</code></em></td><td>
+                                    <p><a id="idm46420845640576" class="indexterm"></a>This parameter sets the terminal emulator type
+                                        string that is passed to the Kubernetes server. This
+                                        parameter is optional. If not specified,
+                                            "<code class="code">linux</code>" is used as the terminal
+                                        emulator type by default.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-typescripts"></a>Text session recording (typescripts)</h4></div></div></div><p>The full, raw text content of Kubernetes sessions, including timing
+                    information, can be recorded automatically to a specified directory. This
+                    recording, also known as a "typescript", will be written to two files within the
+                    directory specified by <em class="parameter"><code>typescript-path</code></em>:
+                            <code class="filename"><em class="replaceable"><code>NAME</code></em></code>, which contains the
+                    raw text data, and <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                    which contains timing information, where <em class="replaceable"><code>NAME</code></em> is the
+                    value provided for the <em class="parameter"><code>typescript-name</code></em> parameter.</p><p>This format is compatible with the format used by the standard UNIX
+                        <span class="command"><strong>script</strong></span> command, and can be replayed using
+                        <span class="command"><strong>scriptreplay</strong></span> (if installed). For example, to replay a
+                    typescript called "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>scriptreplay <em class="replaceable"><code>NAME</code></em>.timing <em class="replaceable"><code>NAME</code></em></code></strong></pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845626096" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>typescript-path</code></em></td><td>
+                                    <p><a id="idm46420845618384" class="indexterm"></a><a id="idm46420845617104" class="indexterm"></a>The directory in which typescript files should
+                                        be created. <span class="emphasis"><em>If a typescript needs to be recorded,
+                                            this parameter is required.</em></span> Specifying this
+                                        parameter enables typescript recording. If this parameter is
+                                        omitted, no typescript will be recorded.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-typescript-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>typescript-path</code></em> parameter will
+                                        not automatically be created, and attempts to record
+                                        typescripts in a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>typescript-name</code></em></td><td>
+                                    <p>The base filename to use when determining the names for
+                                        the data and timing files of the typescript. <span class="emphasis"><em>This
+                                            parameter is optional.</em></span> If omitted, the value
+                                        "typescript" will be used instead.</p>
+                                    <p>Each typescript consists of two files which are created
+                                        within the directory specified by
+                                            <em class="parameter"><code>typescript-path</code></em>:
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em></code>,
+                                        which contains the raw text data, and
+                                                <code class="filename"><em class="replaceable"><code>NAME</code></em>.timing</code>,
+                                        which contains timing information, where
+                                            <em class="replaceable"><code>NAME</code></em> is the value provided
+                                        for the <em class="parameter"><code>typescript-name</code></em>
+                                        parameter.</p>
+                                    <p>This parameter only has an effect if typescript recording
+                                        is enabled. If the <em class="parameter"><code>typescript-path</code></em> is
+                                        not specified, recording of typescripts will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="kubernetes-recording"></a>Graphical session recording</h4></div></div></div><p>In addition to text-based recordings, Kubernetes sessions can be recorded
+                    graphically. These recordings take the form of Guacamole protocol dumps and are
+                    recorded automatically to a specified directory. Recordings can be subsequently
+                    translated to a normal video stream using the <span class="command"><strong>guacenc</strong></span> utility
+                    provided with guacamole-server.</p><p>For example, to produce a video called "<em class="replaceable"><code>NAME</code></em>.m4v"
+                    from the recording "<em class="replaceable"><code>NAME</code></em>", you would run:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacenc <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong></pre></div><p>The <span class="command"><strong>guacenc</strong></span> utility has additional options for overriding
+                    default behavior, including tweaking the output format, which are documented in
+                    detail within the manpage:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>man guacenc</code></strong></pre></div><p>If recording of key events is explicitly enabled using the
+                        <em class="parameter"><code>recording-include-keys</code></em> parameter, recordings can also
+                    be translated into human-readable interpretations of the keys pressed during the
+                    session using the <span class="command"><strong>guaclog</strong></span> utility. The usage of
+                        <span class="command"><strong>guaclog</strong></span> is analogous to <span class="command"><strong>guacenc</strong></span>, and
+                    results in the creation of a new text file containing the interpreted
+                    events:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guaclog <em class="replaceable"><code>/path/to/recording/NAME</code></em></code></strong><code class="computeroutput">
+guaclog: INFO: Guacamole input log interpreter (guaclog) version 1.1.0
+guaclog: INFO: 1 input file(s) provided.
+guaclog: INFO: Writing input events from "<em class="replaceable"><code>/path/to/recording/NAME</code></em>" to "<em class="replaceable"><code>/path/to/recording/NAME</code></em>.txt" ...
+guaclog: INFO: All files interpreted successfully.</code>
+<code class="prompt">$</code> </pre></div><div class="important"><h3 class="title">Important</h3><p>Guacamole will never overwrite an existing recording. If necessary, a
+                        numeric suffix like ".1", ".2", ".3", etc. will be appended to
+                            <em class="replaceable"><code>NAME</code></em> to avoid overwriting an existing
+                        recording. If even appending a numeric suffix does not help, the session
+                        will simply not be recorded.</p></div><div class="informaltable"><a id="idm46420845583504" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>recording-path</code></em></td><td>
+                                    <p><a id="idm46420845575792" class="indexterm"></a>The directory in which screen recording files
+                                        should be created. <span class="emphasis"><em>If a graphical recording needs
+                                            to be created, then this parameter is
+                                            required.</em></span> Specifying this parameter enables
+                                        graphical screen recording. If this parameter is omitted, no
+                                        graphical recording will be created.</p>
+                                </td></tr><tr><td><em class="parameter"><code>create-recording-path</code></em></td><td>
+                                    <p>If set to "true", the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will
+                                        automatically be created if it does not yet exist. Only the
+                                        final directory in the path will be created - if other
+                                        directories earlier in the path do not exist, automatic
+                                        creation will fail, and an error will be logged.</p>
+                                    <p><span class="emphasis"><em>This parameter is optional.</em></span> By
+                                        default, the directory specified by the
+                                            <em class="parameter"><code>recording-path</code></em> parameter will not
+                                        automatically be created, and attempts to create recordings
+                                        within a non-existent directory will be logged as
+                                        errors.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-name</code></em></td><td>
+                                    <p>The filename to use for any created recordings.
+                                            <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, the value "recording" will be used instead.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-output</code></em></td><td>
+                                    <p>If set to "true", graphical output and other data normally
+                                        streamed from server to client will be excluded from the
+                                        recording, producing a recording which contains only user
+                                        input events. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, graphical output will
+                                        be included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-exclude-mouse</code></em></td><td>
+                                    <p>If set to "true", user mouse events will be excluded from
+                                        the recording, producing a recording which lacks a visible
+                                        mouse cursor. <span class="emphasis"><em>This parameter is
+                                            optional.</em></span> If omitted, mouse events will be
+                                        included in the recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr><tr><td><em class="parameter"><code>recording-include-keys</code></em></td><td>
+                                    <p>If set to "true", user key events will be included in the
+                                        recording. The recording can subsequently be passed through
+                                        the <span class="command"><strong>guaclog</strong></span> utility to produce a
+                                        human-readable interpretation of the keys pressed during the
+                                        session. <span class="emphasis"><em>This parameter is optional.</em></span> If
+                                        omitted, key events will be not included in the
+                                        recording.</p>
+                                    <p>This parameter only has an effect if graphical recording
+                                        is enabled. If the <em class="parameter"><code>recording-path</code></em> is
+                                        not specified, graphical session recording will be disabled,
+                                        and this parameter will be ignored.</p>
+                                </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="adding-kubernetes"></a>Adding a Kubernetes connection</h4></div></div></div><a id="idm46420845549104" class="indexterm"></a><p>If you are using the default authentication built into Guacamole, and you wish
+                    to grant access to a Kubernetes connection to a particular user, you need to
+                    locate the <code class="code">&lt;authorize&gt;</code> section for that user within your
+                        <code class="filename">user-mapping.xml</code>, and add a section like the following
+                    within it:</p><pre class="programlisting">&lt;connection name="<em class="replaceable"><code>Unique Name</code></em>"&gt;
+    &lt;protocol&gt;kubernetes&lt;/protocol&gt;
+    &lt;param name="hostname"&gt;<em class="replaceable"><code>localhost</code></em>&lt;/param&gt;
+    &lt;param name="pod"&gt;<em class="replaceable"><code>mypod</code></em>&lt;/param&gt;
+&lt;/connection&gt;</pre><p>If added exactly as above, a new connection named "<em class="replaceable"><code>Unique
+                        Name</code></em>" will be available to the user associated with the
+                        <code class="code">&lt;authorize&gt;</code> section containing it. The connection will
+                    connect to the Kubernetes server running on <em class="replaceable"><code>localhost</code></em>
+                    and attach to the first container of the pod
+                    <em class="replaceable"><code>mypod</code></em>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="parameter-tokens"></a>Parameter tokens</h3></div></div></div><a id="idm46420845540336" class="indexterm"></a><p>The values of connection parameters can contain "tokens" which will be replaced by
+                Guacamole when used. These tokens allow the values of connection parameters to vary
+                dynamically by the user using the connection, and provide a simple means of
+                forwarding authentication information without storing that information in the
+                connection configuration itself, so long as the remote desktop connection uses the
+                same credentials as Guacamole.</p><p>Each token is of the form
+                    <code class="varname">${<em class="replaceable"><code>TOKEN_NAME</code></em>}</code>, where
+                    <em class="replaceable"><code>TOKEN_NAME</code></em> is some descriptive name for the value the
+                token represents. Tokens with no corresponding value will never be replaced, but
+                should you need such text within your connection parameters, and wish to guarantee
+                that this text will not be replaced with a token value, you can escape the token by
+                adding an additional leading "$", as in "$${TOKEN_NAME}".</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="varname">${GUAC_USERNAME}</code></span></dt><dd><p>The username of the current Guacamole user. When a user accesses a
+                            connection, this token will be dynamically replaced with the username
+                            they provided when logging in to Guacamole.</p></dd><dt><span class="term"><code class="varname">${GUAC_PASSWORD}</code></span></dt><dd><p>The password of the current Guacamole user. When a user accesses a
+                            connection, this token will be dynamically replaced with the password
+                            they used when logging in to Guacamole.</p></dd><dt><span class="term"><code class="varname">${GUAC_CLIENT_ADDRESS}</code></span></dt><dd><p>The IPv4 or IPv6 address of the current Guacamole user. This will be
+                            the address of the client side of the HTTP connection to the Guacamole
+                            server at the time the current user logged in.</p></dd><dt><span class="term"><code class="varname">${GUAC_CLIENT_HOSTNAME}</code></span></dt><dd><p>The hostname of the current Guacamole user. This will be the hostname
+                            of the client side of the HTTP connection to the Guacamole server at the
+                            time the current user logged in. If no such hostname can be determined,
+                            the IPv4 or IPv6 address will be used instead, and this token will be
+                            equivalent to <code class="varname">${GUAC_CLIENT_ADDRESS}</code>.</p></dd><dt><span class="term"><code class="varname">${GUAC_DATE}</code></span></dt><dd><p>The current date in the local time zone of the Guacamole server. This
+                            will be written in "YYYYMMDD" format, where "YYYY" is the year, "MM" is
+                            the month number, and "DD" is the day of the month, all zero-padded.
+                            When a user accesses a connection, this token will be dynamically
+                            replaced with the date that the connection began.</p></dd><dt><span class="term"><code class="varname">${GUAC_TIME}</code></span></dt><dd><p>The current time in the local time zone of the Guacamole server. This
+                            will be written in "HHMMSS" format, where "HH" is hours in 24-hour time,
+                            "MM" is minutes, and "SS" is seconds, all zero-padded. When a user
+                            accesses a connection, this token will be dynamically replaced with the
+                            time that the connection began.</p></dd></dl></div><p>Note that these tokens are replaced dynamically each time a connection is used. If
+                two different users access the same connection at the same time, both users will be
+                connected independently of each other using different sets of connection
+                parameters.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="extension-tokens"></a>Extension-specific tokens</h4></div></div></div><a id="idm46420845519984" class="indexterm"></a><p>Each extension can also implement its own arbitrary tokens that can dynamically
+                    fill in values provided by the extension.  Within these extensions, attribute
+                    names are canonicalized into a standard format that consists of all capital
+                    letters separated by underscores.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="cas-tokens"></a>CAS Extension Tokens</h5></div></div></div><a id="idm46420845516720" class="indexterm"></a><p>The CAS extension will read attributes provided by the CAS server when
+                        a user is authenticated and will make those attributes available as
+                        tokens.  The CAS server must be specifically configured to release certain
+                        attributes to the client (Guacamole), and configuration of that is outside
+                        the scope of this document.  Any attribute that the CAS server is
+                        configured to release should be available to Guacamole as a token for
+                        use within a connection.  The token name will be prepended with the
+                        <code class="constant">CAS_</code> prefix.  A CAS server configured to release
+                        attributes <code class="varname">firstname</code>, <code class="varname">lastname</code>,
+                        <code class="varname">email</code>, and <code class="varname">mobile</code> would produce the
+                        following tokens:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                <code class="varname">${CAS_FIRSTNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_LASTNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_EMAIL}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${CAS_MOBILE}</code>
+                            </p></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="ldap-tokens"></a>LDAP Extension Tokens</h5></div></div></div><a id="idm46420845504416" class="indexterm"></a><p>The LDAP extension will read user attributes provided by the LDAP
+                        server and specified in the <code class="filename">guacamole.properties</code>
+                        file.  The attributes retrieved for a user are configured using the
+                        <em class="parameter"><code>ldap-user-attributes</code></em> parameter.  The user must
+                        be able to read the attribute values from their own LDAP object.
+                        The token name will be prepended with the <code class="constant">LDAP_</code>
+                        prefix.  As an example, configuring the following line in
+                        <code class="filename">guacamole.properties</code>:</p><div class="informalexample"><pre class="programlisting">ldap-user-attributes: cn, givenName, sn, mobile, mail
+                        </pre></div><p>will produce the below tokens that can be used in connection
+                            parameters:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+                                <code class="varname">${LDAP_CN}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_GIVENNAME}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_SN}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_MOBILE}</code>
+                            </p></li><li class="listitem"><p>
+                                <code class="varname">${LDAP_MAIL}</code>
+                            </p></li></ul></div></div></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd.conf"></a>Configuring guacd</h2></div></div></div><p><a id="idm46420845489680" class="indexterm"></a>guacd is configured with a configuration file called
+                <code class="filename">guacd.conf</code>, by default located in
+                <code class="filename">/etc/guacamole</code>. This file follows a simple, INI-like
+            format:</p><div class="informalexample"><pre class="programlisting">#
+# guacd configuration file
+#
+
+[daemon]
+
+pid_file = /var/run/guacd.pid
+log_level = info
+
+[server]
+
+bind_host = localhost
+bind_port = 4822
+
+#
+# The following parameters are valid only if
+# guacd was built with SSL support.
+#
+
+[ssl]
+
+server_certificate = /etc/ssl/certs/guacd.crt
+server_key = /etc/ssl/private/guacd.key</pre></div><p>Configuration options are given as parameter/value pairs, where the name of the
+            parameter is specified on the left side of an "<code class="code">=</code>", and the value is
+            specified on the right. Each parameter must occur within a proper section, indicated by
+            a section name within brackets. The names of these sections are important; it is the
+            pairing of a section name with a parameter that constitutes the fully-qualified
+            parameter being set.</p><p>For the sake of documentation and readability, comments can be added anywhere within
+            guacd.conf using "<code class="code">#</code>" symbols. All text following a "<code class="code">#</code>" until
+            end-of-line will be ignored.</p><p>If you need to include special characters within the value of a parameter, such as
+            whitespace or any of the above symbols, you can do so by placing the parameter within
+            double quotes:</p><div class="informalexample"><pre class="programlisting">[ssl]
+
+# Whitespace is legal within double quotes ...
+server_certificate = "/etc/ssl/my certs/guacd.crt"
+
+# ... as are other special symbols
+server_key = "/etc/ssl/#private/guacd.key"</pre></div><p>Note that even within double quotes, some characters still have special meaning, such
+            as the double quote itself or newline characters. If you need to include these, they
+            must be "escaped" with a backslash:</p><div class="informalexample"><pre class="programlisting"># Parameter value containing a double quote
+parameter = "some\"value"
+
+# Parameter value containing newline characters
+parameter2 = "line1\
+line2\
+line3"
+
+# Parameter value containing backslashes
+parameter3 = "c:\\windows\\path\\to\\file.txt"</pre></div><p>Don't worry too much about the more complex formatting examples - they are only rarely
+            necessary, and guacd will complain with parsing errors if the configuration file is
+            somehow invalid. To ensure parameter values are entered correctly, just follow the
+            following guidelines:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>If the value contains no special characters, just include it as-is.</p></li><li class="listitem"><p>If the value contains any special characters (whitespace, newlines,
+                        <code class="code">#</code>, <code class="code">\</code>, or <code class="code">"</code>), enclose the entire value
+                    within double quotes.</p></li><li class="listitem"><p>If the value is enclosed within double quotes, escape newlines,
+                    <code class="code">\</code>, and <code class="code">"</code> with a backslash.</p></li></ol></div><div class="table"><a id="idm46420845473744"></a><p class="title"><strong>Table 5.1. guacd.conf parameters</strong></p><div class="table-contents"><a id="idm46420845472736" class="indexterm"></a><table class="table" summary="guacd.conf parameters" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Section</th><th>Name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>daemon</code></em></td><td><em class="parameter"><code>pid_file</code></em></td><td>
+                            <p><a id="idm46420845463024" class="indexterm"></a>The name of the file in which the PID of the main guacd
+                                process should be written. This is mainly needed for startup
+                                scripts, which need to monitor the state of guacd, killing it if
+                                necessary. If this parameter is specified, the user running guacd
+                                must have sufficient permissions to create or modify the specified
+                                file, or startup will fail.</p>
+                        </td></tr><tr><td><em class="parameter"><code>daemon</code></em></td><td><em class="parameter"><code>log_level</code></em></td><td>
+                            <p><a id="idm46420845459072" class="indexterm"></a><a id="idm46420845457840" class="indexterm"></a><a id="idm46420845456608" class="indexterm"></a>The maximum level at which guacd will log messages to
+                                syslog and, if running in the foreground, the console. If omitted,
+                                the default level of <code class="constant">info</code> will be used.</p>
+                            <p>Legal values are <code class="constant">trace</code>,
+                                    <code class="constant">debug</code>, <code class="constant">info</code>,
+                                    <code class="constant">warning</code>, and
+                                <code class="constant">error</code>.</p>
+                        </td></tr><tr><td><em class="parameter"><code>server</code></em></td><td><em class="parameter"><code>bind_host</code></em></td><td>
+                            <p><a id="idm46420845449744" class="indexterm"></a>The host that guacd should bind to when listening for
+                                connections. If unspecified, guacd will bind to localhost, and only
+                                connections from within the server hosting guacd will
+                                succeed.</p>
+                        </td></tr><tr><td><em class="parameter"><code>server</code></em></td><td><em class="parameter"><code>bind_port</code></em></td><td>
+                            <p><a id="idm46420845446000" class="indexterm"></a>The port that guacd should bind to when listening for
+                                connections. If unspecified, port 4822 will be used.</p>
+                        </td></tr><tr><td><em class="parameter"><code>ssl</code></em></td><td><em class="parameter"><code>server_certificate</code></em></td><td>
+                            <p><a id="idm46420845442400" class="indexterm"></a>The filename of the certificate to use for SSL
+                                encryption of the Guacamole protocol. If this option is specified,
+                                SSL encryption will be enabled, and the Guacamole web application
+                                will need to be configured within
+                                    <code class="filename">guacamole.properties</code> to use SSL as
+                                well.</p>
+                        </td></tr><tr><td><em class="parameter"><code>ssl</code></em></td><td><em class="parameter"><code>server_key</code></em></td><td>
+                            <p><a id="idm46420845438112" class="indexterm"></a>The filename of the private key to use for SSL
+                                encryption of the Guacamole protocol. If this option is specified,
+                                SSL encryption will be enabled, and the Guacamole web application
+                                will need to be configured within
+                                    <code class="filename">guacamole.properties</code> to use SSL as
+                                well.</p>
+                        </td></tr></tbody></table></div></div><br class="table-break" /><p>You can also affect the configuration of guacd with command-line options. If given,
+            these options take precendence over the system-wide configuration file:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">-b <em class="replaceable"><code>HOST</code></em></code></span></dt><dd><p>Changes the host or address that guacd listens on.</p><p>This corresponds to the <em class="parameter"><code>bind_host</code></em> parameter within
+                        the <em class="parameter"><code>server</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-l <em class="replaceable"><code>PORT</code></em></code></span></dt><dd><p>Changes the port that guacd listens on (the default is port 4822).</p><p>This corresponds to the <em class="parameter"><code>bind_port</code></em> parameter within
+                        the <em class="parameter"><code>server</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-p <em class="replaceable"><code>PIDFILE</code></em></code></span></dt><dd><p>Causes guacd to write the PID of the daemon process to the specified file.
+                        This is useful for init scripts and is used by the provided init
+                        script.</p><p>This corresponds to the <em class="parameter"><code>pid_file</code></em> parameter within
+                        the <em class="parameter"><code>daemon</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-L <em class="replaceable"><code>LEVEL</code></em></code></span></dt><dd><p>Sets the maximum level at which guacd will log messages to syslog and, if
+                        running in the foreground, the console. Legal values are
+                            <code class="constant">trace</code>, <code class="constant">debug</code>,
+                            <code class="constant">info</code>, <code class="constant">warning</code>, and
+                            <code class="constant">error</code>. The default value is
+                            <code class="constant">info</code>.</p><p>This corresponds to the <em class="parameter"><code>log_level</code></em> parameter within
+                        the <em class="parameter"><code>daemon</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-f</code></span></dt><dd><p>Causes guacd to run in the foreground, rather than automatically forking
+                        into the background.</p></dd></dl></div><p>If guacd was built with support for SSL, data sent via the Guacamole protocol can be
+            encrypted with SSL if an SSL certificate and private key are given with the following
+            options:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="option">-C <em class="replaceable"><code>CERTIFICATE</code></em></code></span></dt><dd><p>The filename of the certificate to use for SSL encryption of the Guacamole
+                        protocol. If this option is specified, SSL encryption will be enabled, and
+                        the Guacamole web application will need to be configured within
+                            <code class="filename">guacamole.properties</code> to use SSL as well.</p><p>This corresponds to the <em class="parameter"><code>server_certificate</code></em>
+                        parameter within the <em class="parameter"><code>ssl</code></em> section of
+                            <code class="filename">guacd.conf</code>.</p></dd><dt><span class="term"><code class="option">-K <em class="replaceable"><code>KEY</code></em></code></span></dt><dd><p>The filename of the private key to use for SSL encryption of the Guacamole
+                        protocol. If this option is specified, SSL encryption will be enabled, and
+                        the Guacamole web application will need to be configured within
+                            <code class="filename">guacamole.properties</code> to use SSL as well.</p><p>This corresponds to the <em class="parameter"><code>server_key</code></em> parameter within
+                        the <em class="parameter"><code>ssl</code></em> section of
+                        <code class="filename">guacd.conf</code>.</p></dd></dl></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="proxying-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="jdbc-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 4. Proxying Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 6. Database authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/custom-auth.html b/doc/1.1.0/gug/custom-auth.html
new file mode 100644
index 0000000..d9dea2c
--- /dev/null
+++ b/doc/1.1.0/gug/custom-auth.html
@@ -0,0 +1,383 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 24. Custom authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="custom-protocols.html" title="Chapter 23. Adding new protocols" /><link rel="next" href="event-listeners.html" title="Chapter 25. Event listeners" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 24. Custom authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="custom-protocols.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="event-listeners.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="custom-auth"></a>Chapter 24. Custom authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="custom-auth.html#custom-auth-model">Guacamole's authentication model</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-skeleton">A Guacamole extension skeleton</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-building">Building the extension</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-config">Configuration and authentication</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-more-config">Parsing the configuration</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-installing">Installing the extension</a></span></dt></dl></div><a id="idm46420844868960" class="indexterm"></a><p>Guacamole's authentication layer is designed to be extendable such that users can
+        integrate Guacamole into existing authentication systems without having to resort to writing
+        their own web application around the Guacamole API.</p><p>The web application comes with a default authentication mechanism which uses an XML file
+        to associate users with connections. Extensions for Guacamole that provide LDAP-based
+        authentication or database-based authentication have also been developed.</p><p>To demonstrate the principles involved, we will implement a very simple authentication
+        extension which associates a single user/password pair with a single connection, with all
+        this information saved in properties inside the <code class="filename">guacamole.properties</code>
+        file.</p><p>In general, all other authentication extensions for Guacamole will use the principles
+        demonstrated here. This tutorial demonstrates the simplest way to create an authentication
+        extension for Guacamole - an authentication extension that does not support management of
+        users and connections via the web interface.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-model"></a>Guacamole's authentication model</h2></div></div></div><p>When you view any page in Guacamole, whether that be the login screen or the client
+            interface, the page makes an authentication attempt with the web application, sending
+            all available credentials. After entering your username and password, the exact same
+            process occurs, except the web application receives the username and password as
+            well.</p><p>The web application handles this authentication attempt by collecting all credentials
+            available and passing them to designated classes called "authentication providers".
+            Given the set of credentials, authentication providers return a context object that
+            provides restricted access to other users and connections, if any.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-skeleton"></a>A Guacamole extension skeleton</h2></div></div></div><p>For simplicity's sake, and because this is how things are done upstream in the
+            Guacamole project, we will use Maven to build our extension.</p><p>The bare minimum required for a Guacamole authentication extension is a
+                <code class="filename">pom.xml</code> file listing guacamole-ext as a dependency, a single
+            .java file implementing our stub of an authentication provider, and a
+                <code class="filename">guac-manifest.json</code> file describing the extension and pointing
+            to our authentication provider class.</p><p>In our stub, we won't actually do any authentication yet; we'll just universally
+            reject all authentication attempts by returning <code class="varname">null</code> for any
+            credentials given. You can verify that this is what happens by checking the server
+            logs.</p><div class="example"><a id="idm46420844654944"></a><p class="title"><strong>Example 24.1. Barebones <code class="filename">pom.xml</code> required for a simple authentication
+                extension.</strong></p><div class="example-contents"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-auth-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    &lt;version&gt;1.1.0&lt;/version&gt;
+    &lt;name&gt;guacamole-auth-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Written for 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Guacamole Extension API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-ext&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+&lt;/project&gt;</pre></div></div><br class="example-break" /><p>We won't need to update this <code class="filename">pom.xml</code> throughout the rest of the
+            tutorial. Even after adding new files, Maven will just find them and compile as
+            necessary.</p><p>Naturally, we need the actual authentication extension skeleton code. While you can
+            put this in whatever file and package you want, for the sake of this tutorial, we will
+            assume you are using
+                <code class="classname">org.apache.guacamole.auth.TutorialAuthenticationProvider</code>.</p><div class="example"><a id="idm46420845030320"></a><p class="title"><strong>Example 24.2. A skeleton <code class="classname">TutorialAuthenticationProvider</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.auth;
+
+import java.util.Map;
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.auth.simple.SimpleAuthenticationProvider;
+import org.apache.guacamole.net.auth.Credentials;
+import org.apache.guacamole.protocol.GuacamoleConfiguration;
+
+/**
+ * Authentication provider implementation intended to demonstrate basic use
+ * of Guacamole's extension API. The credentials and connection information for
+ * a single user are stored directly in guacamole.properties.
+ */
+public class TutorialAuthenticationProvider extends SimpleAuthenticationProvider {
+
+    @Override
+    public String getIdentifier() {
+        return "tutorial";
+    }
+
+    @Override
+    public Map&lt;String, GuacamoleConfiguration&gt;
+        getAuthorizedConfigurations(Credentials credentials)
+        throws GuacamoleException {
+
+        // Do nothing ... yet
+        return null;        
+
+    }
+
+}</pre></div></div><br class="example-break" /><p>To conform with Maven, this skeleton file must be placed within
+                <code class="filename">src/main/java/org/apache/guacamole/auth</code> as
+                <code class="filename">TutorialAuthenticationProvider.java</code>.</p><p>Notice how simple the authentication provider is. The
+                <code class="classname">SimpleAuthenticationProvider</code> base class simplifies the
+                <code class="classname">AuthenticationProvider</code> interface, requiring nothing more than
+            a unique identifier (we will use "tutorial") and a single
+                <code class="methodname">getAuthorizedConfigurations()</code> implementation, which must
+            return a <code class="classname">Map</code> of <code class="classname">GuacamoleConfiguration</code>
+            each associated with some arbitrary unique ID. This unique ID will be presented to the
+            user in the connection list after they log in.</p><p>For now, <code class="methodname">getAuthorizedConfigurations()</code> will just return
+                <code class="varname">null</code>. This will cause Guacamole to report an invalid login for
+            every attempt. Note that there is a difference in semantics between returning an empty
+            map and returning <code class="varname">null</code>, as the former indicates the credentials are
+            authorized but simply have no associated configurations, while the latter indicates the
+            credentials are not authorized at all.</p><p>The only remaining piece for the overall skeleton to be complete is a
+                <code class="filename">guac-manifest.json</code> file. <span class="emphasis"><em>This file is absolutely
+                required for all Guacamole extensions.</em></span> The
+                <code class="filename">guac-manifest.json</code> format is described in more detail in <a class="xref" href="guacamole-ext.html" title="Chapter 22. guacamole-ext">Chapter 22, <em>guacamole-ext</em></a>. It provides
+            for quite a few properties, but for our authentication extension we are mainly
+            interested in the Guacamole version sanity check (to make sure an extension built for
+            the API of Guacamole version X is not accidentally used against version Y) and telling
+            Guacamole where to find our authentication provider class.</p><p>The Guacamole extension format requires that <code class="filename">guac-manifest.json</code>
+            be placed in the root directory of the extension <code class="filename">.jar</code> file. To
+            accomplish this with Maven, we place it within the
+                <code class="filename">src/main/resources</code> directory. Maven will automatically pick it
+            up during the build and include it within the <code class="filename">.jar</code>.</p><div class="example"><a id="idm46420844610752"></a><p class="title"><strong>Example 24.3. The required <code class="filename">guac-manifest.json</code></strong></p><div class="example-contents"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.1.0",
+
+    "name"      : "Tutorial Authentication Extension",
+    "namespace" : "guac-auth-tutorial",
+
+    "authProviders" : [
+        "org.apache.guacamole.auth.TutorialAuthenticationProvider"
+    ]
+
+}</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-building"></a>Building the extension</h2></div></div></div><p>Once all three of the above files are in place, the extension will build, and can even
+            be installed within Guacamole (see <a class="xref" href="custom-auth.html#custom-auth-installing" title="Installing the extension">the section called “Installing the extension”</a> at the end of this chapter), even though it is
+            just a skeleton at this point. It won't do anything yet other than reject all
+            authentication attempts, but it's good to at least try building the extension to make
+            sure nothing is missing and that all steps have been followed correctly so far:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building guacamole-auth-tutorial 1.1.0
+[INFO] ------------------------------------------------------------------------
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 2.345 s
+[INFO] Finished at: 2015-12-16T13:39:00-08:00
+[INFO] Final Memory: 14M/138M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESS</code>" message when you
+            build the extension, there will be a new file,
+                <code class="filename">target/guacamole-auth-tutorial-1.1.0.jar</code>, which can be
+            installed within Guacamole and tested. If you changed the name or version of the project
+            in the <code class="filename">pom.xml</code> file, the name of this new <code class="filename">.jar</code>
+            file will be different, but it can still be found within
+            <code class="filename">target/</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-config"></a>Configuration and authentication</h2></div></div></div><p>Once we receive credentials, we need to validate those credentials against the
+            associated properties in <code class="filename">guacamole.properties</code> (our source of
+            authentication information for the sake of this tutorial).</p><p>We will define four properties:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">tutorial-user</span></span></dt><dd><p>The name of the only user we accept.</p></dd><dt><span class="term"><span class="property">tutorial-password</span></span></dt><dd><p>The password we require for the user specified to be
+                            authenticated.</p></dd><dt><span class="term"><span class="property">tutorial-protocol</span></span></dt><dd><p>The protocol of the configuration this user is authorized to use,
+                            which will be sent to guacd when the user logs in and selects their
+                            connection.</p></dd><dt><span class="term"><span class="property">tutorial-parameters</span></span></dt><dd><p>A comma-delimited list of
+                                    <code class="code"><em class="replaceable"><code>name</code></em>=<em class="replaceable"><code>value</code></em></code>
+                            pairs. For the sake of simplicity, we'll assume there will never be any
+                            commas in the values.</p></dd></dl></div><p>If the username and password match what is stored in the file, we read the
+            configuration information, store it in a <code class="classname">GuacamoleConfiguration</code>,
+            and return the configuration within a set, telling Guacamole that this user is
+            authorized but only to access the configurations returned.</p><p>Upstream, we always place the properties of authentication providers in their own
+            class, and so we will also do that here in this tutorial, as it keeps things
+            organized.</p><div class="example"><a id="idm46420844345040"></a><p class="title"><strong>Example 24.4. <code class="filename">TutorialProperties.java</code>, a class containing property
+                definitions</strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.auth;
+
+import org.apache.guacamole.properties.StringGuacamoleProperty;
+
+/**
+ * Utility class containing all properties used by the custom authentication
+ * tutorial. The properties defined here must be specified within
+ * guacamole.properties to configure the tutorial authentication provider.
+ */
+public class TutorialGuacamoleProperties {
+
+    /**
+     * This class should not be instantiated.
+     */
+    private TutorialGuacamoleProperties() {}
+
+    /**
+     * The only user to allow.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_USER = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-user"; }
+
+    };
+
+    /**
+     * The password required for the specified user.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PASSWORD = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-password"; }
+
+    };
+
+
+    /**
+     * The protocol to use when connecting.
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PROTOCOL = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-protocol"; }
+
+    };
+
+
+    /**
+     * All parameters associated with the connection, as a comma-delimited
+     * list of name="value" 
+     */
+    public static final StringGuacamoleProperty TUTORIAL_PARAMETERS = 
+        new StringGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "tutorial-parameters"; }
+
+    };
+
+}</pre></div></div><br class="example-break" /><p>Normally, we would define a new type of <code class="classname">GuacamoleProperty</code> to
+            handle the parsing of the parameters required by <code class="varname">TUTORIAL_PARAMETERS</code>,
+            but for the sake of simplicity, parsing of this parameter will be embedded in the
+            authentication function later.</p><p>You will need to modify your existing <code class="filename">guacamole.properties</code> file,
+            adding each of the above properties to describe one of your available
+            connections.</p><div class="example"><a id="idm46420844339392"></a><p class="title"><strong>Example 24.5. Properties describing a user and connection, as required by this tutorial</strong></p><div class="example-contents"><pre class="programlisting"># Username and password
+tutorial-user:     <em class="replaceable"><code>tutorial</code></em>
+tutorial-password: <em class="replaceable"><code>password</code></em>
+
+# Connection information
+tutorial-protocol:   <em class="replaceable"><code>vnc</code></em>
+tutorial-parameters: <em class="replaceable"><code>hostname=localhost, port=5900</code></em></pre></div></div><br class="example-break" /><p>Once these properties and their accessor class are in place, it's simple enough to
+            read the properties within <code class="methodname">getAuthorizedConfigurations()</code> and
+            authenticate the user based on their username and password.</p><div class="example"><a id="idm46420844335376"></a><p class="title"><strong>Example 24.6. Checking the credentials against the properties</strong></p><div class="example-contents"><pre class="programlisting">@Override
+public Map&lt;String, GuacamoleConfiguration&gt;
+    getAuthorizedConfigurations(Credentials credentials)
+    throws GuacamoleException {
+
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
+    );      
+
+    // If wrong username, fail
+    if (!username.equals(credentials.getUsername()))
+        return null;
+
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
+    );      
+
+    // If wrong password, fail
+    if (!password.equals(credentials.getPassword()))
+        return null;
+
+    // Successful login. Return configurations (STUB)
+    return new HashMap&lt;String, GuacamoleConfiguration&gt;();
+
+}</pre></div></div><br class="example-break" /><p>As is, the authentication provider will work in its current state in that the correct
+            username and password will authenticate the user, while an incorrect username or
+            password will not, but we still aren't returning an actual map of configurations. We
+            need to construct the configuration based on the properties in the
+                <code class="filename">guacamole.properties</code> file after the user has been
+            authenticated, and return that configuration to the web application.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-more-config"></a>Parsing the configuration</h2></div></div></div><p>The only remaining task before we have a fully-functioning authentication provider is
+            to actually parse the configuration from the <code class="filename">guacamole.properties</code>
+            file.</p><div class="example"><a id="idm46420844330320"></a><p class="title"><strong>Example 24.7. Parsing and returning a <code class="classname">GuacamoleConfiguration</code></strong></p><div class="example-contents"><pre class="programlisting">@Override
+public Map&lt;String, GuacamoleConfiguration&gt;
+    getAuthorizedConfigurations(Credentials credentials)
+    throws GuacamoleException {
+
+    // Get the Guacamole server environment
+    Environment environment = new LocalEnvironment();
+
+    // Get username from guacamole.properties
+    String username = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_USER
+    );      
+
+    // If wrong username, fail
+    if (!username.equals(credentials.getUsername()))
+        return null;
+
+    // Get password from guacamole.properties
+    String password = environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PASSWORD
+    );      
+
+    // If wrong password, fail
+    if (!password.equals(credentials.getPassword()))
+        return null;
+
+    // Successful login. Return configurations.
+    Map&lt;String, GuacamoleConfiguration&gt; configs = 
+        new HashMap&lt;String, GuacamoleConfiguration&gt;();
+
+    // Create new configuration
+    GuacamoleConfiguration config = new GuacamoleConfiguration();
+
+    // Set protocol specified in properties
+    config.setProtocol(environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PROTOCOL
+    ));
+
+    // Set all parameters, splitting at commas
+    for (String parameterValue : environment.getRequiredProperty(
+        TutorialGuacamoleProperties.TUTORIAL_PARAMETERS
+    ).split(",\\s*")) {
+
+        // Find the equals sign
+        int equals = parameterValue.indexOf('=');
+        if (equals == -1)
+            throw new GuacamoleServerException("Required equals sign missing");
+
+        // Get name and value from parameter string
+        String name = parameterValue.substring(0, equals);
+        String value = parameterValue.substring(equals+1);
+
+        // Set parameter as specified
+        config.setParameter(name, value);
+
+    }
+
+    configs.put("Tutorial Connection", config);
+    return configs;
+
+}</pre></div></div><br class="example-break" /><p>The extension is now complete and can be built as described earlier in <a class="xref" href="custom-auth.html#custom-auth-building" title="Building the extension">the section called “Building the extension”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-auth-installing"></a>Installing the extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            installed by being placed within <code class="filename">GUACAMOLE_HOME/extensions</code>, and
+            this extension is no different. As described in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>,
+                <code class="varname">GUACAMOLE_HOME</code> is a placeholder used to refer to the directory
+            that Guacamole uses to locate its configuration files and extensions. Typically, this
+            will be the <code class="filename">.guacamole</code> directory within the home directory of the
+            user running Tomcat.</p><p>To install your extension, ensure that the required properties have been added to your
+                <code class="filename">guacamole.properties</code>, copy the
+                <code class="filename">target/guacamole-auth-tutorial-1.1.0.jar</code> file into
+                <code class="filename">GUACAMOLE_HOME/extensions</code> and restart Tomcat. Guacamole will
+            automatically load your extension, logging an informative message that it has done
+            so:</p><div class="informalexample"><pre class="screen">Extension "Tutorial Authentication Extension" loaded.</pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="custom-protocols.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="event-listeners.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 23. Adding new protocols </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 25. Event listeners</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/custom-protocols.html b/doc/1.1.0/gug/custom-protocols.html
new file mode 100644
index 0000000..7b7c6d4
--- /dev/null
+++ b/doc/1.1.0/gug/custom-protocols.html
@@ -0,0 +1,654 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 23. Adding new protocols</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-ext.html" title="Chapter 22. guacamole-ext" /><link rel="next" href="custom-auth.html" title="Chapter 24. Custom authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 23. Adding new protocols</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-ext.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="custom-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="custom-protocols"></a>Chapter 23. Adding new protocols</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-skeleton">Minimal skeleton client</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-display-init">Initializing the remote display</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-layer">Adding the ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-bounce">Making the ball bounce</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-pretty">A prettier ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-time">Handling the passage of time</a></span></dt></dl></div><a id="idm46420844708528" class="indexterm"></a><p>Guacamole's support for multiple remote desktop protocols is provided through plugins
+        which guacd loads dynamically. The Guacamole API has been designed such that protocol
+        support is easy to create, especially when a C library exists providing a basic client
+        implementation.</p><p>In this tutorial, we will implement a simple "client" which renders a bouncing ball using
+        the Guacamole protocol. After completing the tutorial and installing the result, you will be
+        able to add a connection to your Guacamole configuration using the "ball" protocol, and any
+        users using that connection will see a bouncing ball.</p><p>This example client plugin doesn't actually act as a client, but this isn't important. The
+        Guacamole client is really just a remote display, and this client plugin functions as a
+        simple example application which renders to this display, just as Guacamole's own VNC or RDP
+        plugins function as VNC or RDP clients which render to the remote display.</p><p>Each step of this tutorial is intended to exercise a new concept,
+        while also progressing towards the goal of a nifty bouncing ball. At the
+        end of each step, you will have a buildable and working client
+        plugin.</p><p>This tutorial will use the GNU Automake build system, which is the build system used by
+        Guacamole for libguac, guacd, etc. There will be four files involved:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">configure.ac</code></span></dt><dd><p>Used by GNU Automake to generate the <code class="filename">configure</code> script
+                    which ultimately serves to generate the <code class="filename">Makefile</code> which
+                        <span class="command"><strong>make</strong></span> will use when building.</p></dd><dt><span class="term"><code class="filename">Makefile.am</code></span></dt><dd><p>Used by GNU Automake and the <code class="filename">configure</code> script to generate
+                    the <code class="filename">Makefile</code> which <span class="command"><strong>make</strong></span> will use when
+                    building.</p></dd><dt><span class="term"><code class="filename">src/ball.c</code></span></dt><dd><p>The main body of code defining the bouncing ball "client".</p></dd><dt><span class="term"><code class="filename">src/ball.h</code></span></dt><dd><p>A header file defining the structure representing the state of the bouncing
+                    ball (once it becomes necessary to do so).</p></dd></dl></div><p>All source files will be within the <code class="filename">src</code> subdirectory, as is common
+        with C projects, with build files being at the root level directory. The main
+            <code class="filename">src/ball.c</code> and the build-related <code class="filename">configure.ac</code>
+        and <code class="filename">Makefile.am</code> files will be created first, with each successive step
+        building upon those files iteratively, with <code class="filename">src/ball.h</code> being added when
+        it becomes necessary. After each step, you can build/rebuild the plugin by running
+            <span class="command"><strong>make</strong></span>, and then install it (such that guacd can find the plugin) by
+        running <span class="command"><strong>make install</strong></span> and <span class="command"><strong>ldconfig</strong></span> as root:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>make</code></strong>
+<code class="computeroutput">  CC       src/ball.lo
+  CCLD     libguac-client-ball.la</code>
+<code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
+<code class="computeroutput">make[1]: Entering directory '/home/user/libguac-client-ball'
+ /usr/bin/mkdir -p '/usr/local/lib'
+ /bin/sh ./libtool   --mode=install /usr/bin/install -c   libguac-client-ball.la '/usr/local/lib'
+...
+----------------------------------------------------------------------
+Libraries have been installed in:
+   /usr/local/lib
+
+If you ever happen to want to link against installed libraries
+in a given directory, LIBDIR, you must either use libtool, and
+specify the full pathname of the library, or use the '-LLIBDIR'
+flag during linking and do at least one of the following:
+   - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
+     during execution
+   - add LIBDIR to the 'LD_RUN_PATH' environment variable
+     during linking
+   - use the '-Wl,-rpath -Wl,LIBDIR' linker flag
+   - have your system administrator add LIBDIR to '/etc/ld.so.conf'
+
+See any operating system documentation about shared libraries for
+more information, such as the ld(1) and ld.so(8) manual pages.
+----------------------------------------------------------------------
+make[1]: Nothing to be done for 'install-data-am'.
+make[1]: Leaving directory '/home/user/libguac-client-ball'</code>
+<code class="prompt">#</code> <strong class="userinput"><code>ldconfig</code></strong></pre></div><p>Prior to the first time <span class="command"><strong>make</strong></span> is invoked, you will need to run the
+            <code class="filename">configure</code> script, which will first need to be generated using
+            <span class="command"><strong>autoreconf</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>autoreconf -fi</code></strong>
+<code class="computeroutput">libtoolize: putting auxiliary files in '.'.
+libtoolize: copying file './ltmain.sh'
+libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'.
+libtoolize: copying file 'm4/libtool.m4'
+libtoolize: copying file 'm4/ltoptions.m4'
+libtoolize: copying file 'm4/ltsugar.m4'
+libtoolize: copying file 'm4/ltversion.m4'
+libtoolize: copying file 'm4/lt~obsolete.m4'
+configure.ac:10: installing './compile'
+configure.ac:4: installing './missing'
+Makefile.am: installing './depcomp'</code>
+<code class="prompt">$</code> <strong class="userinput"><code>./configure</code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+configure: creating ./config.status
+config.status: creating Makefile
+config.status: executing depfiles commands
+config.status: executing libtool commands</code>
+<code class="prompt">$</code></pre></div><p>This process is almost identical to that of building guacamole-server from git, as
+        documented in <a class="xref" href="installing-guacamole.html#building-guacamole-server" title="Building guacamole-server">the section called “Building <span class="package">guacamole-server</span>”</a>.</p><div class="important"><h3 class="title">Important</h3><p>The libguac library which is part of guacamole-server is a required dependency of this
+            project. <span class="emphasis"><em>You must first install libguac, guacd, etc. by <a class="link" href="installing-guacamole.html#building-guacamole-server" title="Building guacamole-server">building and installing guacamole-server</a>.</em></span> If guacamole-server
+            has not been installed, and libguac is thus not present, the
+                <code class="filename">configure</code> script will fail with an error indicating that it
+            could not find libguac:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>./configure</code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+checking for guac_client_stream_png in -lguac... no
+configure: error: "libguac is required for communication via "
+                   "the Guacamole protocol"</code>
+<code class="prompt">$</code></pre></div><p>You will need to install guacamole-server and then rerun
+                <code class="filename">configure</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-skeleton"></a>Minimal skeleton client</h2></div></div></div><p>Very little needs too be done to implement the most basic client plugin possible. We
+            begin with <code class="filename">src/ball.c</code>, containing the absolute minimum required for
+            a client plugin:</p><div class="informalexample"><a id="ball-01-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">#include &lt;guacamole/client.h&gt;
+
+#include &lt;stdlib.h&gt;
+
+/* Client plugin arguments (empty) */
+const char* TUTORIAL_ARGS[] = { NULL };
+
+int guac_client_init(guac_client* client) {
+
+    /* This example does not implement any arguments */
+    client-&gt;args = TUTORIAL_ARGS;
+
+    return 0;
+
+}</pre></div><p>Notice the structure of this file. There is exactly one function,
+                <code class="methodname">guac_client_init</code>, which is the entry
+            point for all Guacamole client plugins. Just as a typical C program
+            has a <code class="methodname">main</code> function which is executed when
+            the program is run, a Guacamole client plugin has
+                <code class="methodname">guac_client_init</code> which is called when
+            guacd loads the plugin when a new connection is made and your
+            protocol is selected.</p><p><code class="methodname">guac_client_init</code> receives a single
+                <code class="classname">guac_client</code> which it must initialize. Part of this
+            initialization process involves declaring the list of arguments that joining users can
+            specify. While we won't be using arguments in this tutorial, and thus the arguments
+            assigned above are simply an empty list, a typical client plugin implementation would
+            register arguments which define the remote desktop connection and its behavior. Examples
+            of such parameters can be seen in the connection parameters for the protocols supported
+            by Guacamole out-of-the-box (see <a class="xref" href="configuring-guacamole.html#connection-configuration" title="Configuring connections">the section called “Configuring connections”</a>).</p><p>The <code class="classname">guac_client</code> instance given to
+                <code class="methodname">guac_client_init</code> will be shared by the user that starts the
+            connection, and any users which join the connection via screen sharing. It lives until
+            the connection is explicitly closed, or until all users leave the connection.</p><p>For this project to build with GNU Automake, we a <code class="filename">configure.ac</code>
+            file which describes the name of the project and what it needs configuration-wise. In
+            this case, the project is "libguac-client-ball", and it depends on the "libguac" library
+            used by guacd and all client plugins:</p><div class="informalexample"><a id="ball-01-configure.in"></a><pre xml:lang="en" class="programlisting" lang="en"># Project information
+AC_PREREQ([2.61])
+AC_INIT([libguac-client-ball], [0.1.0])
+AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
+AM_SILENT_RULES([yes])
+
+AC_CONFIG_MACRO_DIRS([m4])
+
+# Check for required build tools
+AC_PROG_CC
+AC_PROG_CC_C99
+AC_PROG_LIBTOOL
+
+# Check for libguac
+AC_CHECK_LIB([guac], [guac_client_stream_png],,
+      AC_MSG_ERROR("libguac is required for communication via "
+                   "the Guacamole protocol"))
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT</pre></div><p>We also need a <code class="filename">Makefile.am</code>, describing which files should be
+            built and how when building
+            libguac-client-ball:<a id="ball-01-Makefile.am"></a></p><pre xml:lang="en" class="programlisting" lang="en">AUTOMAKE_OPTIONS = foreign
+
+ACLOCAL_AMFLAGS = -I m4
+AM_CFLAGS = -Werror -Wall -pedantic
+
+lib_LTLIBRARIES = libguac-client-ball.la
+
+# All source files of libguac-client-ball
+libguac_client_ball_la_SOURCES = src/ball.c
+
+# libtool versioning information
+libguac_client_ball_la_LDFLAGS = -version-info 0:0:0</pre><p>The GNU Automake files will remain largely unchanged throughout
+            the rest of the tutorial. </p><p>Once you have created all of the above files, you will have a functioning client
+            plugin. It doesn't do anything yet, and any connection will be extremely short-lived
+            (the lack of any data sent by the server will lead to the client disconnecting under the
+            assumption that the connection has stopped responding), but it does technically
+            work.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-display-init"></a>Initializing the remote display</h2></div></div></div><p>Now that we have a basic functioning skeleton, we need to actually do something with
+            the remote display. A good first step would be simply initializing the display - setting
+            the remote display size and providing a basic background.</p><p>In this case, we'll set the display to a nice default of 1024x768, and fill the
+            background with gray. Though the size of the display <span class="emphasis"><em>can</em></span> be chosen
+            based on the size of the user's browser window (which is provided by the user during the
+                <a class="link" href="guacamole-protocol.html#guacamole-protocol-handshake" title="Handshake phase">Guacamole protocol handshake</a>), or even
+            updated when the window size changes (provided by the user via <a class="link" href="protocol-reference.html#size-event-instruction" title="size">"size"
+                instructions</a>), we won't be doing that here for the simplicity's sake:</p><div class="informalexample"><a id="ball-02-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">#include &lt;guacamole/client.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;</em></span>
+
+#include &lt;stdlib.h&gt;
+
+...
+
+<span class="emphasis"><em>int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    /* Get client associated with user */
+    guac_client* client = user-&gt;client;
+
+    /* Get user-specific socket */
+    guac_socket* socket = user-&gt;socket;
+
+    /* Send the display size */
+    guac_protocol_send_size(socket, GUAC_DEFAULT_LAYER, 1024, 768);
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, GUAC_DEFAULT_LAYER,
+            0, 0, 1024, 768);
+
+    /* Fill curve with solid color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, GUAC_DEFAULT_LAYER,
+            0x80, 0x80, 0x80, 0xFF);
+
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    /* Flush buffer */
+    guac_socket_flush(socket);
+
+    /* User successfully initialized */
+    return 0;
+
+}</em></span>
+
+int guac_client_init(guac_client* client) {
+
+    /* This example does not implement any arguments */
+    client-&gt;args = TUTORIAL_ARGS;
+<span class="emphasis"><em>
+    /* Client-level handlers */
+    client-&gt;join_handler = ball_join_handler;
+</em></span>
+    return 0;
+
+}</pre></div><p>The most important thing to notice here is the new
+                <code class="function">ball_join_handler()</code> function. As it is assigned to
+                <span class="property">join_handler</span> of the <code class="classname">guac_client</code> given to
+                <code class="function">guac_client_init</code>, users which join the connection (including
+            the user that opened the connection in the first place) will be passed to this function.
+            It is the duty of the join handler to initialize the provided
+                <code class="classname">guac_user</code>, taking into account any arguments received from
+            the user during the connection handshake (exposed through <code class="varname">argc</code> and
+                <code class="varname">argv</code> to the join handler). We aren't implementing any arguments,
+            so these values are simply ignored, but we do need to initialize the user with respect
+            to display state. In this case, we:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Send a <a class="link" href="protocol-reference.html#size-instruction" title="size">"size" instruction</a>, initializing the
+                    display size to 1024x768.</p></li><li class="listitem"><p>Draw a 1024x768 gray rectangle over the display using the <a class="link" href="protocol-reference.html#rect-instruction" title="rect">"rect"</a> and <a class="link" href="protocol-reference.html#cfill-instruction" title="cfill">"cfill"</a> instructions.</p></li><li class="listitem"><p>Send a <a class="link" href="protocol-reference.html#server-sync-instruction" title="sync">"sync" instruction</a>, informing the
+                    remote display that a frame has been completed.</p></li><li class="listitem"><p>Flush the socket, ensuring that all data written to the socket thus far is
+                    immediately sent to the user.</p></li></ol></div><p>At this point, if you build, install, and connect using the plugin, you will see a
+            gray screen. The connection will still be extremely short-lived, however, since the only
+            data ever sent by the plugin is sent when the user first joins. The lack of any data
+            sent by the server over the remaining life of the connection will lead to the client
+            disconnecting under the assumption that the connection has stopped responding. This will
+            be rectified shortly once we add the bouncing ball.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-layer"></a>Adding the ball</h2></div></div></div><p>This tutorial is about making a bouncing ball "client", so naturally we need a ball to
+            bounce. While we could repeatedly draw and erase a ball on the remote display, a more
+            efficient technique would be to leverage Guacamole's layers.</p><p>The remote display has a single root layer, <code class="varname">GUAC_DEFAULT_LAYER</code>, but
+            there can be infinitely many other child layers, which can themselves have child layers,
+            and so on. Each layer can be dynamically repositioned within and relative to another
+            layer. Because the compositing of these layers is handled by the remote display, and is
+            likely hardware-accelerated, this is a much better way to repeatedly reposition
+            something we expect to move a lot.</p><p>Since we're finally adding the ball, and there needs to be some structure which
+            maintains the state of the ball, we must create a header file,
+                <code class="filename">src/ball.h</code>, to define this:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#ifndef BALL_H
+#define BALL_H
+
+#include &lt;guacamole/layer.h&gt;
+
+typedef struct ball_client_data {
+
+    guac_layer* ball;
+
+} ball_client_data;
+
+#endif</pre></div><p>To make the build system aware of the existence of the new
+                <code class="filename">src/ball.h</code> header file, <code class="filename">Makefile.am</code> must
+            be updated as well:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">...
+
+# All source files of libguac-client-ball
+<span class="emphasis"><em>noinst_HEADERS = src/ball.h</em></span>
+libguac_client_ball_la_SOURCES = src/ball.c
+
+...</pre></div><p>This new structure is intended to house the client-level state of the ball,
+            independent of any users which join or leave the connection. The structure must be
+            allocated when the client begins (within <code class="function">guac_client_init</code>), freed
+            when the client terminates (via a new client free handler), and must contain the layer
+            which represents the ball within the remote display. As this layer is part of the remote
+            display state, it must additionally be initialized when a user joins, in the same way
+            that the display overall was initialized in earlier steps:</p><div class="informalexample"><a id="ball-03-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en"><span class="emphasis"><em>#include "ball.h"</em></span>
+
+#include &lt;guacamole/client.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/layer.h&gt;</em></span>
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;
+
+#include &lt;stdlib.h&gt;
+
+...
+
+int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    /* Get client associated with user */
+    guac_client* client = user-&gt;client;
+<span class="emphasis"><em>
+    /* Get ball layer from client data */
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+    guac_layer* ball = data-&gt;ball;
+</em></span>
+    ...
+<span class="emphasis"><em>
+    /* Set up ball layer */
+    guac_protocol_send_size(socket, ball, 128, 128);
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, ball,
+            0, 0, 128, 128);
+
+    /* Fill curve with solid color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, ball,
+            0x00, 0x80, 0x80, 0xFF);
+</em></span>
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    /* Flush buffer */
+    guac_socket_flush(socket);
+
+    /* User successfully initialized */
+    return 0;
+
+}
+
+<span class="emphasis"><em>int ball_free_handler(guac_client* client) {
+
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+
+    /* Free client-level ball layer */
+    guac_client_free_layer(client, data-&gt;ball);
+
+    /* Free client-specific data */
+    free(data);
+
+    /* Data successfully freed */
+    return 0;
+
+}</em></span>
+
+int guac_client_init(guac_client* client) {
+<span class="emphasis"><em>
+    /* Allocate storage for client-specific data */
+    ball_client_data* data = malloc(sizeof(ball_client_data));
+
+    /* Set up client data and handlers */
+    client-&gt;data = data;
+
+    /* Allocate layer at the client level */
+    data-&gt;ball = guac_client_alloc_layer(client);
+</em></span>
+    ...
+
+    /* Client-level handlers */
+    client-&gt;join_handler = ball_join_handler;
+    <span class="emphasis"><em>client-&gt;free_handler = ball_free_handler;</em></span>
+
+    return 0;
+
+}</pre></div><p>The allocate/free pattern for the client-specific data and layers should be pretty
+            straightforward - the allocation occurs when the objects (the layer and the structure
+            housing it) are first needed, and the allocated objects are freed once they are no
+            longer needed (when the client terminates) to avoid leaking memory. The initialization
+            of the ball layer using the Guacamole protocol should be familiar as well - it's
+            identical to the way the screen was initialized, and involves the same
+            instructions.</p><p>Beyond layers, Guacamole has the concept of buffers, which are identical in use to
+            layers except they are invisible. Buffers are used to store image data for the sake of
+            caching or drawing operations. We will use them later when we try to make this tutorial
+            prettier. If you build and install the ball client as-is now, you will see a large gray
+            rectangle (the root layer) with a small blue square in the upper left corner (the ball
+            layer).</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-bounce"></a>Making the ball bounce</h2></div></div></div><p>To make the ball bounce, we need to track the ball's state, including current position
+            and velocity, as well as a thread which updates the ball's state (and the remote
+            display) as time progresses. The ball state and thread can be stored alongside the ball
+            layer in the existing client-level data structure:</p><div class="informalexample"><a id="ball-04-ball_client.h"></a><pre xml:lang="en" class="programlisting" lang="en">...
+
+#include &lt;guacamole/layer.h&gt;
+
+<span class="emphasis"><em>#include &lt;pthread.h&gt;</em></span>
+
+typedef struct ball_client_data {
+
+    guac_layer* ball;
+<span class="emphasis"><em>
+    int ball_x;
+    int ball_y;
+
+    int ball_velocity_x;
+    int ball_velocity_y;
+
+    pthread_t render_thread;
+</em></span>
+} ball_client_data;
+
+...</pre></div><p>The contents of the thread will update these values at a pre-defined rate, changing
+            ball position with respect to velocity, and changing velocity with respect to collisions
+            with the display boundaries:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#include "ball.h"
+
+#include &lt;guacamole/client.h&gt;
+#include &lt;guacamole/layer.h&gt;
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+#include &lt;guacamole/user.h&gt;
+
+<span class="emphasis"><em>#include &lt;pthread.h&gt;</em></span>
+#include &lt;stdlib.h&gt;
+
+...
+
+<span class="emphasis"><em>void* ball_render_thread(void* arg) {
+
+    /* Get data */
+    guac_client* client = (guac_client*) arg;
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+
+    /* Update ball position as long as client is running */
+    while (client-&gt;state == GUAC_CLIENT_RUNNING) {
+
+        /* Sleep a bit */
+        usleep(30000);
+
+        /* Update position */
+        data-&gt;ball_x += data-&gt;ball_velocity_x * 30 / 1000;
+        data-&gt;ball_y += data-&gt;ball_velocity_y * 30 / 1000;
+
+        /* Bounce if necessary */
+        if (data-&gt;ball_x &lt; 0) {
+            data-&gt;ball_x = -data-&gt;ball_x;
+            data-&gt;ball_velocity_x = -data-&gt;ball_velocity_x;
+        }
+        else if (data-&gt;ball_x &gt;= 1024 - 128) {
+            data-&gt;ball_x = (2 * (1024 - 128)) - data-&gt;ball_x;
+            data-&gt;ball_velocity_x = -data-&gt;ball_velocity_x;
+        }
+
+        if (data-&gt;ball_y &lt; 0) {
+            data-&gt;ball_y = -data-&gt;ball_y;
+            data-&gt;ball_velocity_y = -data-&gt;ball_velocity_y;
+        }
+        else if (data-&gt;ball_y &gt;= 768 - 128) {
+            data-&gt;ball_y = (2 * (768 - 128)) - data-&gt;ball_y;
+            data-&gt;ball_velocity_y = -data-&gt;ball_velocity_y;
+        }
+
+        guac_protocol_send_move(client-&gt;socket, data-&gt;ball,
+                GUAC_DEFAULT_LAYER, data-&gt;ball_x, data-&gt;ball_y, 0);
+
+        /* End frame and flush socket */
+        guac_client_end_frame(client);
+        guac_socket_flush(client-&gt;socket);
+
+    }
+
+    return NULL;
+
+}</em></span>
+
+...</pre></div><p>Just as with the join handler, this thread sends a "sync" instruction to denote the
+            end of each frame, though here this is accomplished with
+                <code class="function">guac_client_end_frame()</code>. This function sends a "sync"
+            containing the current timestamp, and updates the properties of the
+                <code class="classname">guac_client</code> with the last-sent timestamp (the value that our
+            join handler uses to send <span class="emphasis"><em>its</em></span> sync). Note that we don't redraw the
+            whole display with each frame - we simply update the position of the ball layer using a
+                <a class="link" href="protocol-reference.html#move-instruction" title="move">"move"
+                instruction</a>, and rely on the remote display to handle compositing on its
+            own.</p><p>We now need to update <code class="methodname">guac_client_init</code> to actually create
+            this thread, initialize the ball state within the structure, and store the thread for
+            future cleanup when the client terminates:</p><div class="informalexample"><a id="ball-04-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">...
+
+int ball_free_handler(guac_client* client) {
+
+    ball_client_data* data = (ball_client_data*) client-&gt;data;
+<span class="emphasis"><em>
+    /* Wait for render thread to terminate */
+    pthread_join(data-&gt;render_thread, NULL);
+</em></span>
+    ...
+
+}
+
+int guac_client_init(guac_client* client) {
+
+    ...
+<span class="emphasis"><em>
+    /* Start ball at upper left */
+    data-&gt;ball_x = 0;
+    data-&gt;ball_y = 0;
+
+    /* Move at a reasonable pace to the lower right */
+    data-&gt;ball_velocity_x = 200; /* pixels per second */
+    data-&gt;ball_velocity_y = 200; /* pixels per second */
+
+    /* Start render thread */
+    pthread_create(&amp;data-&gt;render_thread, NULL, ball_render_thread, client);
+</em></span>
+    ...
+
+}</pre></div><p>The thread contains a render loop which continually checks the
+                <span class="property">state</span> property of the <code class="classname">guac_client</code>. This
+            property is set to <code class="constant">GUAC_CLIENT_RUNNING</code> when the connection begins,
+            and remains that way for the duration of the connection. When guacd needs to terminate
+            the connection (such as when the last user leaves), the value will change to
+                <code class="constant">GUAC_CLIENT_STOPPING</code>. The free handler we've written can thus
+            rely on <code class="function">pthread_join()</code> to block until the data previously used by
+            the plugin is no longer being used and can safely be freed.</p><p>Once built and installed, our ball client now has a bouncing ball, albeit a very
+            square and plain one. Now that the display is continually updating, and data is being
+            continually received from the server, connected clients will no longer automatically
+            disconnect.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-pretty"></a>A prettier ball</h2></div></div></div><p>Now that we have our ball bouncing, we might as well try to make it actually look like
+            a ball, and try applying some of the fancier graphics features that Guacamole offers.
+            Guacamole provides instructions common to most 2D drawing APIs, including HTML5's canvas
+            and Cairo. This means you can draw arcs, curves, apply fill and stroke, and even use the
+            contents of another layer or buffer as the pattern for a fill or stroke. In complex
+            cases involving many draw operations, it will actually be more efficient to render to a
+            server-side Cairo surface and send only image data to the client, but it's perfect for
+            relatively simple cases like our ball.</p><p>We will try creating a simple gray checkerboard pattern in a buffer, using that for
+            the background instead of the previous gray rectangle, and will modify the ball by
+            replacing the rectangle with an arc, in this case a full circle, complete with stroke
+            (border) and translucent-blue fill:</p><div class="informalexample"><a id="ball-05-ball_client.c"></a><pre xml:lang="en" class="programlisting" lang="en">int ball_join_handler(guac_user* user, int argc, char** argv) {
+
+    ...
+<span class="emphasis"><em>
+    /* Create background tile */
+    guac_layer* texture = guac_client_alloc_buffer(client);
+
+    guac_protocol_send_rect(socket, texture, 0, 0, 64, 64);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0x88, 0x88, 0x88, 0xFF);
+
+    guac_protocol_send_rect(socket, texture, 0, 0, 32, 32);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0xDD, 0xDD, 0xDD, 0xFF);
+
+    guac_protocol_send_rect(socket, texture, 32, 32, 32, 32);
+    guac_protocol_send_cfill(socket, GUAC_COMP_OVER, texture,
+            0xDD, 0xDD, 0xDD, 0xFF);
+</em></span>
+
+    /* Prepare a curve which covers the entire layer */
+    guac_protocol_send_rect(socket, GUAC_DEFAULT_LAYER,
+            0, 0, 1024, 768);
+
+     /* Fill curve with <span class="emphasis"><em>texture</em></span> */
+    <span class="emphasis"><em>guac_protocol_send_lfill</em></span>(socket,
+            GUAC_COMP_OVER, GUAC_DEFAULT_LAYER,
+            <span class="emphasis"><em>texture</em></span>);
+
+    /* Set up ball layer */
+    guac_protocol_send_size(socket, ball, 128, 128);
+<span class="emphasis"><em>
+    /* Prepare a circular curve */
+    guac_protocol_send_arc(socket, data-&gt;ball,
+            64, 64, 62, 0, 6.28, 0);
+
+    guac_protocol_send_close(socket, data-&gt;ball);
+
+    /* Draw a 4-pixel black border */
+    guac_protocol_send_cstroke(socket,
+            GUAC_COMP_OVER, data-&gt;ball,
+            GUAC_LINE_CAP_ROUND, GUAC_LINE_JOIN_ROUND, 4,
+            0x00, 0x00, 0x00, 0xFF);
+
+    /* Fill the circle with color */
+    guac_protocol_send_cfill(socket,
+            GUAC_COMP_OVER, data-&gt;ball,
+            0x00, 0x80, 0x80, 0x80);
+
+    /* Free texture (no longer needed) */
+    guac_client_free_buffer(client, texture);
+</em></span>
+    /* Mark end-of-frame */
+    guac_protocol_send_sync(socket, client-&gt;last_sent_timestamp);
+
+    ...
+
+}</pre></div><p>Again, because we put the ball in its own layer, we don't have to worry about
+            compositing it ourselves. The remote display will handle this, and will likely do so
+            with hardware acceleration, even though the ball is now translucent. Build and install
+            the ball client after this step, and you will have a rather nice-looking bouncing
+            ball.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-ball-time"></a>Handling the passage of time</h2></div></div></div><p>There are never any guarantees when it comes to timing, threads, and network
+            performance. We cannot necessarily rely on the remote display to handle updates in a
+            timely manner (it may be slow), nor can we rely on the network or server to give
+            priority to communication from guacd. </p><p>The render thread needs to be modified to take this into account, by tracking the
+            actual time spent within each frame, and estimating the amount of time the client spends
+            rendering each frame:</p><div class="informalexample"><pre xml:lang="en" class="programlisting" lang="en">#include "ball.h"
+
+#include &lt;guacamole/client.h&gt;
+#include &lt;guacamole/layer.h&gt;
+#include &lt;guacamole/protocol.h&gt;
+#include &lt;guacamole/socket.h&gt;
+<span class="emphasis"><em>#include &lt;guacamole/timestamp.h&gt;</em></span>
+#include &lt;guacamole/user.h&gt;
+
+#include &lt;pthread.h&gt;
+#include &lt;stdlib.h&gt;
+
+...
+
+void* ball_render_thread(void* arg) {
+
+    ...
+<span class="emphasis"><em>
+    /* Init time of last frame to current time */
+    guac_timestamp last_frame = guac_timestamp_current();
+</em></span>
+    /* Update ball position as long as client is running */
+    while (client-&gt;state == CLIENT_RUNNING) {
+<span class="emphasis"><em>
+        /* Default to 30ms frames */
+        int frame_duration = 30;
+
+        /* Lengthen frame duration if client is lagging */
+        int processing_lag = guac_client_get_processing_lag(client);
+        if (processing_lag &gt; frame_duration)
+            frame_duration = processing_lag;
+
+        /* Sleep for duration of frame, then get timestamp */
+        usleep(frame_duration);
+        guac_timestamp current = guac_timestamp_current();
+
+        /* Calculate change in time */
+        int delta_t = current - last_frame;
+</em></span>
+        /* Update position */
+        data-&gt;ball_x += data-&gt;ball_velocity_x * <span class="emphasis"><em>delta_t</em></span> / 1000;
+        data-&gt;ball_y += data-&gt;ball_velocity_y * <span class="emphasis"><em>delta_t</em></span> / 1000;
+
+        ...
+<span class="emphasis"><em>
+        /* Update timestamp */
+        last_frame = current;
+</em></span>
+    }
+
+    ...
+
+}</pre></div><p>The calculations are pretty simple. Rather than hard-code the duration of each frame,
+            we us a default of 30 milliseconds, lengthening the frame if Guacamole's built-in lag
+            estimation determines that the client is having trouble. The physics portion of the
+            update no longer assumes that the frame will be exactly 30 milliseconds, instead relying
+            on the actual time elapsed since the previous frame.</p><p>At this point, we now have a robust Guacamole client plugin. It handles
+            joining/leaving users correctly, continually updates the remote display state while
+            taking into account variable network/server/client conditions, and cleans up after
+            itself when the connection finally terminates.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-ext.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="custom-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 22. guacamole-ext </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 24. Custom authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/developers-guide.html b/doc/1.1.0/gug/developers-guide.html
new file mode 100644
index 0000000..bb31b0d
--- /dev/null
+++ b/doc/1.1.0/gug/developers-guide.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part II. Developer's Guide</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="troubleshooting.html" title="Chapter 17. Troubleshooting" /><link rel="next" href="guacamole-protocol.html" title="Chapter 18. The Guacamole protocol" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part II. Developer's Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="guacamole-protocol.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="developers-guide"></a>Part II. Developer's Guide</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="guacamole-protocol.html">18. The Guacamole protocol</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-design">Design</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-drawing">Drawing</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-streaming">Streams and objects</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-events">Events</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-disconnecting">Disconnecting</a></span></dt></dl></dd><dt><span class="chapter"><a href="libguac.html">19. libguac</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-error-handling">Error handling</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-client-plugins">Client plugins</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-layers">Layers and buffers</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-streams">Streams</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-sending-instructions">Sending instructions</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-event-handling">Event handling</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-common.html">20. <span class="package">guacamole-common</span></a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common.html#java-http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-protocol-usage">Using the Guacamole protocol</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-common-js.html">21. guacamole-common-js</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#guacamole-client">Guacamole client</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#input-abstraction">Input abstraction</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#on-screen-keyboard">On-screen keyboard</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-ext.html">22. guacamole-ext</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-file-format">Guacamole extension format</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-environment">Accessing the server configuration</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-auth-providers">Authentication providers</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-user-context">The <code class="classname">UserContext</code></a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-object-directories"><code class="classname">Directory</code> classes</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-rest-resources">REST resources</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-permissions">Permissions</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-connections">Connections</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-active-connections">Managing/sharing active connections</a></span></dt></dl></dd><dt><span class="chapter"><a href="custom-protocols.html">23. Adding new protocols</a></span></dt><dd><dl><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-skeleton">Minimal skeleton client</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-display-init">Initializing the remote display</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-layer">Adding the ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-bounce">Making the ball bounce</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-pretty">A prettier ball</a></span></dt><dt><span class="section"><a href="custom-protocols.html#libguac-client-ball-time">Handling the passage of time</a></span></dt></dl></dd><dt><span class="chapter"><a href="custom-auth.html">24. Custom authentication</a></span></dt><dd><dl><dt><span class="section"><a href="custom-auth.html#custom-auth-model">Guacamole's authentication model</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-skeleton">A Guacamole extension skeleton</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-building">Building the extension</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-config">Configuration and authentication</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-more-config">Parsing the configuration</a></span></dt><dt><span class="section"><a href="custom-auth.html#custom-auth-installing">Installing the extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="event-listeners.html">25. Event listeners</a></span></dt><dd><dl><dt><span class="section"><a href="event-listeners.html#custom-event-listener-skeleton">A Guacamole listener extension skeleton</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-building">Building the extension</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-event-handling">Handling events</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-veto">Influencing Guacamole by event veto</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-installing">Installing the extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="writing-you-own-guacamole-app.html">26. Writing your own Guacamole application</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#basic-guacamole-architecture">The basics</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#web-app-skeleton">Web application skeleton</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#guacamole-skeleton">Adding Guacamole</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#next-steps">Where to go from here</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="troubleshooting.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="guacamole-protocol.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 17. Troubleshooting </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 18. The Guacamole protocol</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/duo-auth.html b/doc/1.1.0/gug/duo-auth.html
new file mode 100644
index 0000000..767cf7f
--- /dev/null
+++ b/doc/1.1.0/gug/duo-auth.html
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 8. Duo two-factor authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="ldap-auth.html" title="Chapter 7. LDAP authentication" /><link rel="next" href="totp-auth.html" title="Chapter 9. TOTP two-factor authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 8. Duo two-factor authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ldap-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="totp-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="duo-auth"></a>Chapter 8. Duo two-factor authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="duo-auth.html#duo-architecture">How Duo works with Guacamole</a></span></dt><dt><span class="section"><a href="duo-auth.html#duo-downloading">Downloading the Duo extension</a></span></dt><dt><span class="section"><a href="duo-auth.html#installing-duo-auth">Installing Duo authentication</a></span></dt><dd><dl><dt><span class="section"><a href="duo-auth.html#idm46420848464400">Adding Guacamole to Duo</a></span></dt><dt><span class="section"><a href="duo-auth.html#guac-duo-config">Configuring Guacamole for Duo</a></span></dt><dt><span class="section"><a href="duo-auth.html#completing-duo-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420849461648" class="indexterm"></a><p>Guacamole supports Duo as a second authentication factor, layered on top of any other
+        authentication extension, including those available from the main project website. The Duo
+        authentication extension allows users to be additionally verified against the Duo service
+        before the authentication process is allowed to succeed.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="duo-architecture"></a>How Duo works with Guacamole</h2></div></div></div><p>Guacamole provides support for Duo as a second authentication factor. To make use of
+            the Duo authentication extension, some other authentication mechanism will need be
+            configured, as well. When a user attempts to log into Guacamole, other installed
+            authentication methods will be queried first:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-auth-factor-1.png" width="180" /></div></div><p>Only after authentication has succeeded with one of those methods will Guacamole reach
+            out to Duo to obtain additional verification of user identity:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-auth-factor-2.png" width="360" /></div></div><p>If both the initial authentication attempt and verification through Duo succeed, the
+            user will be allowed in. If either mechanism fails, access to Guacamole is
+            denied.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="duo-downloading"></a>Downloading the Duo extension</h2></div></div></div><p>The Duo authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The Duo authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing only the extension itself,
+                <code class="filename">guacamole-auth-duo-1.1.0.jar</code>, which must ultimately
+            be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-duo-auth"></a>Installing Duo authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the Duo authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-duo-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use Duo authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the Duo authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848464400"></a>Adding Guacamole to Duo</h3></div></div></div><p>Duo does not provide a specific integration option for Guacamole, but Guacamole's
+                Duo extension uses Duo's generic authentication API which they refer to as the "Web
+                SDK". To use Guacamole with Duo, you will need to add it as a new "Web SDK"
+                application from within the "Applications" tab of the admin panel of your Duo
+                account:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-add-guacamole.png" width="540" /></div></div><p>Within the settings of the newly-added application, rename the application to
+                something more representative than "Web SDK". This application name is what will be
+                presented to your users when they are prompted by Duo for additional
+                authentication:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-rename-guacamole.png" width="540" /></div></div><p>Once you've finished adding Guacamole as an "Web SDK" application, the
+                configuration information required to configure Guacamole is listed within the
+                application's "Details" section. You will need to copy the integration key, secret
+                key, and API hostname - they will later be specified within
+                    <code class="filename">guacamole.properties</code>:</p><div class="informalfigure"><div class="mediaobject"><img src="images/duo-copy-details.png" width="540" /></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-duo-config"></a>Configuring Guacamole for Duo</h3></div></div></div><a id="idm46420849227472" class="indexterm"></a><a id="idm46420849313824" class="indexterm"></a><p>The application-specific configuration information retrieved from Duo must be
+                added to <code class="filename">guacamole.properties</code> to describe how Guacamole should
+                connect to the Duo service:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">duo-api-hostname</span></span></dt><dd><p>The hostname of the Duo API endpoint to be used to verify user
+                            identities. This will usually be in the form
+                                    "<code class="uri">api-<em class="replaceable"><code>XXXXXXXX</code></em>.duosecurity.com</code>",
+                            where "<em class="replaceable"><code>XXXXXXXX</code></em>" is some arbitrary
+                            alphanumeric value assigned by Duo. This value will have been generated
+                            by Duo when you added Guacamole as an "Web SDK" application, and can be
+                            found within the application details in the "API hostname" field.
+                                <span class="emphasis"><em>This value is required.</em></span></p></dd><dt><span class="term"><span class="property">duo-integration-key</span></span></dt><dd><p>The integration key provided for Guacamole by Duo. This value will
+                            have been generated by Duo when you added Guacamole as an "Web SDK"
+                            application, and can be found within the application details in the
+                            "Integration key" field. <span class="emphasis"><em>This value is required and must be
+                                EXACTLY 20 characters.</em></span></p></dd><dt><span class="term"><span class="property">duo-secret-key</span></span></dt><dd><p>The secret key provided for Guacamole by Duo. This value will have
+                            been generated by Duo when you added Guacamole as an "Web SDK"
+                            application, and can be found within the application details in the
+                            "Secret key" field. <span class="emphasis"><em>This value is required and must be EXACTLY
+                                20 characters.</em></span></p></dd></dl></div><p>In addition to the above, <span class="emphasis"><em>you must also manually generate an
+                    "application key"</em></span>. The application key is required by Duo's
+                authentication API, but is not provided by Duo. It is an arbitrary value meant to be
+                unique to each deployment of an application using their API.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">duo-application-key</span></span></dt><dd><p>An arbitrary, random key which you manually generated for Guacamole.
+                                <span class="emphasis"><em>This value is required and must be AT LEAST 40
+                                characters.</em></span></p></dd></dl></div><p>The application key can be generated with any method as long as it is sufficiently
+                random. There exist utilities which will do this for you, like
+                    <span class="command"><strong>pwgen</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>pwgen 40 1</code></strong>
+<code class="computeroutput">em1io4zievohneeseiwah0zie2raQuoo2ci5oBoo</code>
+<code class="prompt">$</code></pre></div><p>Alternatively, one quick and fairly portable way to do this is to use the
+                    <span class="command"><strong>dd</strong></span> utility to copy random bytes from the secure random device
+                    <code class="filename">/dev/random</code>, sending the data through a cryptographic hash
+                tool with a sufficiently-long result, like <span class="command"><strong>sha256sum</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>dd if=/dev/random count=1 | sha256sum</code></strong>
+<code class="computeroutput">5d16d6bb86da73e7d1abd3286b21dcf3b3e707532e64ceebc7a008350d0d485d -</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-duo-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before Duo authentication will take effect. Restart your servlet container
+                and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the Duo extension may prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ldap-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="totp-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 7. LDAP authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 9. TOTP two-factor authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/event-listeners.html b/doc/1.1.0/gug/event-listeners.html
new file mode 100644
index 0000000..afb2845
--- /dev/null
+++ b/doc/1.1.0/gug/event-listeners.html
@@ -0,0 +1,292 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 25. Event listeners</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="custom-auth.html" title="Chapter 24. Custom authentication" /><link rel="next" href="writing-you-own-guacamole-app.html" title="Chapter 26. Writing your own Guacamole application" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 25. Event listeners</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="custom-auth.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="writing-you-own-guacamole-app.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="event-listeners"></a>Chapter 25. Event listeners</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="event-listeners.html#custom-event-listener-skeleton">A Guacamole listener extension skeleton</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-building">Building the extension</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-event-handling">Handling events</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-veto">Influencing Guacamole by event veto</a></span></dt><dt><span class="section"><a href="event-listeners.html#custom-listener-installing">Installing the extension</a></span></dt></dl></div><a id="idm46420844613760" class="indexterm"></a><p>Guacamole supports the delivery of event notifications to custom extensions.
+        Developers can use listener extensions to integrate custom handling of events such as 
+        successful and failed authentications, and requests to connect and disconnect tunnels to 
+        desktop environments.</p><p>A listener extension could be used, for example, to record authentication attempts in 
+        an external database for security auditing or alerting. By listening to tunnel lifecycle 
+        events, a listener extension could be used to help coordinate startup and shutdown of 
+        machine resources; particularly useful in cloud environments where minimizing 
+        running-but-idle resources is an important cost savings measure.</p><p>For certain <span class="emphasis"><em>vetoable</em></span> events, an event listener can even influence
+        Guacamole's behavior. For example, a listener can veto a successful authentication,
+        effectively causing the authentication to be considered failed. Similarly, a listener 
+        can veto a tunnel connection, effectively preventing the tunnel from being connected to
+        a virtual desktop resource.</p><p>Custom event listeners are packaged using the same extension mechanism used for
+        custom authentication providers. A single listener extension can include any number of 
+        classes that implement the listener interface. A single extension module can also include
+        any combination of authentication providers and listeners, so developers can easily
+        combine authentication providers with listeners designed to support them.</p><p>To demonstrate the principles involved in receiving Guacamole event notifications, we 
+        will implement a simple listener extension that logs authentication events. While our 
+        approach simply writes event details to the same log used by the Guacamole web application, 
+        a listener could process these events in arbitrary ways, limited only by the imagination and
+        ingenuity of the developer.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-event-listener-skeleton"></a>A Guacamole listener extension skeleton</h2></div></div></div><p>For simplicity's sake, and because this is how things are done upstream in the
+            Guacamole project, we will use Maven to build our extension.</p><p>The bare minimum required for a Guacamole listener extension is a
+                <code class="filename">pom.xml</code> file listing guacamole-ext as a dependency, a single
+            <code class="filename">.java</code> file implementing our stub of a listener, and a
+                <code class="filename">guac-manifest.json</code> file describing the extension and pointing
+            to our listener class.</p><div class="example"><a id="idm46420844611728"></a><p class="title"><strong>Example 25.1. Barebones <code class="filename">pom.xml</code> required for a simple listener
+                extension that writes log messages for received events.</strong></p><div class="example-contents"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+                        http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-listener-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;jar&lt;/packaging&gt;
+    &lt;version&gt;1.1.0&lt;/version&gt;
+    &lt;name&gt;guacamole-listener-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Written for 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+    &lt;/build&gt;
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Guacamole Extension API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-ext&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Slf4j API --&gt;
+        &lt;!-- This is needed only if your listener wants to 
+                write to the Guacamole web application log --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.slf4j&lt;/groupId&gt;
+            &lt;artifactId&gt;slf4j-api&lt;/artifactId&gt;
+            &lt;version&gt;1.7.7&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+&lt;/project&gt;</pre></div></div><br class="example-break" /><p>Naturally, we need the actual listener extension skeleton code. While you can
+            put this in whatever file and package you want, for the sake of this tutorial, we will
+            assume you are using
+                <code class="classname">org.apache.guacamole.event.TutorialListener</code>.</p><p>For now, we won't actually do anything other than log the fact that an event 
+            notification was received. At this point, we're just creating the skeleton for our 
+            listener extension.</p><div class="example"><a id="idm46420844621568"></a><p class="title"><strong>Example 25.2. A skeleton <code class="classname">TutorialListener</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener implementation intended to demonstrate basic use
+ * of Guacamole's listener extension API.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+         LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+        logger.info("received Guacamole event notification");
+    }
+
+}</pre></div></div><br class="example-break" /><p>To conform with Maven, this skeleton file must be placed within
+                <code class="filename">src/main/java/org/apache/guacamole/event</code> as
+                <code class="filename">TutorialListener.java</code>.</p><p>As you can see, implementing a listener is quite simple. There is a single 
+            <code class="classname">Listener</code> interface to implement. All Guacamole event
+            notifications will be delivered to your code by invoking the 
+            <code class="methodname">handleEvent</code> method. We will see shortly how to use
+            the passed event object to get the details of the event itself.
+        </p><p>The only remaining piece for the overall skeleton to be complete is a
+                <code class="filename">guac-manifest.json</code> file. <span class="emphasis"><em>This file is absolutely
+                required for all Guacamole extensions.</em></span> The
+                <code class="filename">guac-manifest.json</code> format is described in more detail in <a class="xref" href="guacamole-ext.html" title="Chapter 22. guacamole-ext">Chapter 22, <em>guacamole-ext</em></a>. It provides
+            for quite a few properties, but for our listener extension we are mainly
+            interested in the Guacamole version sanity check (to make sure an extension built for
+            the API of Guacamole version X is not accidentally used against version Y) and telling
+            Guacamole where to find our listener class.</p><p>The Guacamole extension format requires that <code class="filename">guac-manifest.json</code>
+            be placed in the root directory of the extension <code class="filename">.jar</code> file. To
+            accomplish this with Maven, we place it within the
+                <code class="filename">src/main/resources</code> directory. Maven will automatically pick it
+            up during the build and include it within the <code class="filename">.jar</code>.</p><div class="example"><a id="idm46420844321392"></a><p class="title"><strong>Example 25.3. The required <code class="filename">guac-manifest.json</code></strong></p><div class="example-contents"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.1.0",
+
+    "name"      : "Tutorial Listener Extension",
+    "namespace" : "guac-listener-tutorial",
+
+    "listeners" : [
+        "org.apache.guacamole.event.TutorialListener"
+    ]
+
+}</pre></div></div><br class="example-break" /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-building"></a>Building the extension</h2></div></div></div><p>Once all three of the above files are in place, the extension should build successfully
+            even though it is just a skeleton at this point.</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ---------------------------------------------------------------
+[INFO] Building guacamole-listener-tutorial 1.1.0
+[INFO] ---------------------------------------------------------------
+...
+[INFO] ---------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ---------------------------------------------------------------
+[INFO] Total time: 1.297 s
+[INFO] Finished at: 2017-10-08T13:12:39-04:00
+[INFO] Final Memory: 19M/306M
+[INFO] ---------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESS</code>" message when you
+            build the extension, there will be a new file,
+                <code class="filename">target/guacamole-listener-tutorial-1.1.0.jar</code>, which can be
+            installed within Guacamole (see <a class="xref" href="event-listeners.html#custom-listener-installing" title="Installing the extension">the section called “Installing the extension”</a> at the end of this chapter). It should log
+            event notifications that occur during, for example, authentication attempts.
+            If you changed the name or version of the project
+            in the <code class="filename">pom.xml</code> file, the name of this new <code class="filename">.jar</code>
+            file will be different, but it can still be found within
+            <code class="filename">target/</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-event-handling"></a>Handling events</h2></div></div></div><p>The Guacamole <code class="classname">Listener</code> interface represents a low-level event
+            handling API. A listener is notified of every event generated by Guacamole. The listener
+            must examine the event type to determine whether the event is of interest, and if so to 
+            dispatch the event to the appropriate entry point.</p><p>The event types that can be produced by Guacamole are described in the 
+            <span class="package">org.apache.guacamole.net.event</span> package of the <span class="package">guacamole-ext</span>
+            API. In this package you will find several concrete event types as well as interfaces that 
+            describe common characteristics of certain of event types. You can use any of these types 
+            to distinguish the events received by your listener, and to examine properties of an event 
+            of a given type.</p><p>Suppose we wish to log authentication success and failure events, while ignoring all other
+            event types. The <code class="classname">AuthenticationSuccessEvent</code> and 
+            <code class="classname">AuthenticationFailureEvent</code> types are used to notify a listener
+            of authentication events. We can simply check whether a received event is of one of
+            these types and, if so, log an appropriate message.</p><div class="example"><a id="idm46420844300144"></a><p class="title"><strong>Example 25.4. Using the event type to log an authentication success or failure</strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.event.AuthenticationFailureEvent;
+import org.apache.guacamole.net.event.AuthenticationSuccessEvent;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener that logs authentication success and failure events.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+        LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+
+        if (event instanceof AuthenticationSuccessEvent) {
+            logger.info("successful authentication for user {}", 
+                ((AuthenticationSuccessEvent) event)
+                    .getCredentials().getUsername());
+        }
+        else if (event instanceof AuthenticationFailureEvent) {
+            logger.info("failed authentication for user {}", 
+                ((AuthenticationFailureEvent) event)
+                    .getCredentials().getUsername());
+        }
+    }
+
+}</pre></div></div><br class="example-break" /><p>In our example, we use <code class="code">instanceof</code> to check for the two event types of
+        interest to our listener. Once we have identified an event of interest, we can safely
+        cast the event type to access properties of the event.</p><p>The extension is now complete and can be built as described earlier in <a class="xref" href="event-listeners.html#custom-listener-building" title="Building the extension">the section called “Building the extension”</a>
+            and installed as described below in <a class="xref" href="event-listeners.html#custom-listener-installing" title="Installing the extension">the section called “Installing the extension”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-veto"></a>Influencing Guacamole by event veto</h2></div></div></div><p>An implementation of the <code class="methodname">handleEvent</code> method is permitted to
+            throw any <code class="classname">GuacamoleException</code>. For certain <span class="emphasis"><em>vetoable</em></span>
+            event types, throwing a <code class="classname">GuacamoleException</code> serves to effectively 
+            veto the action that resulted in the event notification. See the API documentation for
+            <span class="package">guacamole-ext</span> to learn more about vetoable event types.</p><p>As an (admittedly contrived) example, suppose we want to prevent a user named 
+            "guacadmin" from accessing Guacamole. For whatever reason, we don't wish to remove or disable 
+            the auth database entry for this user. In this case we can use a listener to "blacklist" this
+            user, preventing access to Guacamole. In the listener, when we get an 
+            <code class="classname">AuthenticationSuccessEvent</code> we can check to see if the user is 
+            "guacadmin" and, if so, throw an exception to prevent this user from logging in to 
+            Guacamole.</p><div class="example"><a id="idm46420844289664"></a><p class="title"><strong>Example 25.5. Vetoing an event by throwing a <code class="classname">GuacamoleException</code></strong></p><div class="example-contents"><pre class="programlisting">package org.apache.guacamole.event;
+
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.GuacamoleSecurityException;
+import org.apache.guacamole.net.event.AuthenticationFailureEvent;
+import org.apache.guacamole.net.event.AuthenticationSuccessEvent;
+import org.apache.guacamole.net.event.listener.Listener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A Listener that logs authentication success and failure events
+ * and prevents the "guacadmin" user from logging in by throwing
+ * a GuacamoleSecurityException.
+ */
+public class TutorialListener implements Listener {
+
+    private static final Logger logger = 
+        LoggerFactory.getLogger(TutorialListener.class);
+
+    @Override
+    public void handleEvent(Object event) throws GuacamoleException {
+
+        if (event instanceof AuthenticationSuccessEvent) {
+          final String username = ((AuthenticationSuccessEvent) event)
+              .getCredentials().getUsername();
+
+          if ("guacadmin".equals(username)) {
+            logger.warn("user {} is blacklisted", username);
+            throw new GuacamoleSecurityException(
+                "User '" + username + "' is blacklisted");
+          }
+
+          logger.info("successful authentication for user {}", username);
+        }
+        else if (event instanceof AuthenticationFailureEvent) {
+            logger.info("failed authentication for user {}", 
+                ((AuthenticationFailureEvent) event)
+                    .getCredentials().getUsername());
+        }
+    }
+
+}</pre></div></div><br class="example-break" /><p>If our Guacamole user database contains a user named "guacadmin", and we build and 
+            install this listener extension, we will find that an attempt to log in as this user
+            now results in a message in the UI indicating that the user is blacklisted. If we
+            examine the Guacamole log, we will see the message indicating that the user is 
+            blacklisted. Because the successful authentication was vetoed, Guacamole sends a
+            subsequent authentication failure notification, which we see logged as well.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="custom-listener-installing"></a>Installing the extension</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            installed by being placed within <code class="filename">GUACAMOLE_HOME/extensions</code>, and
+            this extension is no different. As described in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>,
+                <code class="varname">GUACAMOLE_HOME</code> is a placeholder used to refer to the directory
+            that Guacamole uses to locate its configuration files and extensions. Typically, this
+            will be the <code class="filename">.guacamole</code> directory within the home directory of the
+            user running Tomcat.</p><p>To install your extension, copy the
+            <code class="filename">target/guacamole-listener-tutorial-1.1.0.jar</code> file into
+            <code class="filename">GUACAMOLE_HOME/extensions</code> and restart Tomcat. Guacamole will
+            automatically load your extension, logging an informative message that it has done
+            so:</p><div class="informalexample"><pre class="screen">Extension "Tutorial Listener Extension" loaded.</pre></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="custom-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="writing-you-own-guacamole-app.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 24. Custom authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 26. Writing your own Guacamole application</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/faq.html b/doc/1.1.0/gug/faq.html
new file mode 100644
index 0000000..38a1cb4
--- /dev/null
+++ b/doc/1.1.0/gug/faq.html
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix A. FAQ</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="appendices.html" title="Part III. Appendices" /><link rel="next" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix A. FAQ</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="appendices.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> <a accesskey="n" href="protocol-reference.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="faq"></a>Appendix A. FAQ</h2></div></div></div><div class="qandaset"><a id="idm46420844214880"></a><dl><dt>A.1. <a href="faq.html#idm46420844749776">Where does the name "Guacamole" come from? </a></dt><dt>A.2. <a href="faq.html#idm46420844870544">What does "clientless" mean? </a></dt><dt>A.3. <a href="faq.html#idm46420844212832">Does Guacamole use WebSocket? </a></dt><dt>A.4. <a href="faq.html#idm46420844218816">I have Tomcat (or some other servlet container) set up behind a proxy (like
+                    mod_proxy) and cannot connect to Guacamole. Why? How do I solve this? </a></dt><dt>A.5. <a href="faq.html#idm46420844209248">I connect to the internet through a web proxy, and cannot connect to
+                    Guacamole. I cannot reconfigure the proxy. How do I solve this? </a></dt><dt>A.6. <a href="faq.html#idm46420844205952">Can I buy special licensing of the Guacamole code base, such that I can use it
+                    in my own product, without providing the source to my users, without
+                    contributing back, and without acknowledging the project? </a></dt><dt>A.7. <a href="faq.html#idm46420844203520">Can I pay for custom Guacamole work, or for help integrating Guacamole into my
+                    product, if the open source nature and licenses are preserved?</a></dt><dt>A.8. <a href="faq.html#idm46420844157440">How can I contribute to the project? </a></dt><dt>A.9. <a href="faq.html#idm46420844154480">How can I become an official member of the project? </a></dt><dt>A.10. <a href="faq.html#idm46420844150848">I think I've found a bug. How do I report it? </a></dt><dt>A.11. <a href="faq.html#idm46420844146752">I need help! Where can I find some? </a></dt></dl><table border="0" style="width: 100%;"><colgroup><col align="left" width="1%" /><col /></colgroup><tbody><tr class="question"><td align="left" valign="top"><a id="idm46420844749776"></a><a id="idm46420844749520"></a><p><strong>A.1.</strong></p></td><td align="left" valign="top"><p>Where does the name "Guacamole" come from? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The name was chosen arbitrarily from a random utterance in a conversation with
+                    a member of the project. </p><p>When the project reached the point where it was growing out of the
+                    proof-of-concept phase, and needed a real home on the internet, we needed to
+                    think of a name to register the project under. </p><p>Several acronyms were toyed with and discarded. We tried anagrams, but all
+                    were too wordy and complex. We considered naming the project after a fish or an
+                    animal, and after suggesting the guanaco, James Muehlner, a developer of the
+                    project, suggested (randomly): "guacamole". </p><p>The name had a nice ring, we weren't embarrassed to use it, and it stuck. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844870544"></a><a id="idm46420844870288"></a><p><strong>A.2.</strong></p></td><td align="left" valign="top"><p>What does "clientless" mean? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The term "clientless" means that no specific client is needed. A Guacamole
+                    user needs only have an HTML5 web browser installed, which is exceedingly
+                    common; virtually all modern computers and mobile devices have such a browser
+                    installed by default. </p><p>In this sense, Guacamole is "clientless" in that it does not require any
+                    additional software to be installed beyond what is considered standard for any
+                    computer. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844212832"></a><a id="idm46420844212544"></a><p><strong>A.3.</strong></p></td><td align="left" valign="top"><p>Does Guacamole use WebSocket? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Guacamole uses either WebSocket or plain HTTP, whichever is supported by both
+                    the browser and your servlet container. If WebSocket cannot be used for any
+                    reason, Guacamole will fall back to using HTTP.</p><p>Historically, Guacamole had no WebSocket support at all. This was due to a
+                    lack of browser support and lack of a true standard. Overall, it didn't matter
+                    as there really wasn't any need: the tunnel used by Guacamole when WebSocket is
+                    not available is largely equivalent to WebSocket in terms of efficiency and
+                    latency, and is more compatible with proxies and existing browsers.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844218816"></a><a id="idm46420844218528"></a><p><strong>A.4.</strong></p></td><td align="left" valign="top"><p>I have Tomcat (or some other servlet container) set up behind a proxy (like
+                    mod_proxy) and cannot connect to Guacamole. Why? How do I solve this? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>You need to enable automatic flushing of the proxy's buffer as it receives
+                    packets. </p><p>Most proxies, including mod_proxy, buffer data received from the server, and
+                    will not flush this data in real-time. Each proxy has an option to force
+                    flushing of each packet automatically, as this is necessary for streaming
+                    applications like Guacamole, but this is usually not enabled by default. </p><p>Because Guacamole depends on streaming to function, a proxy configured to not
+                    automatically flush packets will disrupt the stream to the point that the
+                    connection seems unreasonably slow, or just fails to establish altogether. </p><p>In the case of mod_proxy, this option is <code class="code">flushpackets=on</code>. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844209248"></a><a id="idm46420844208960"></a><p><strong>A.5.</strong></p></td><td align="left" valign="top"><p>I connect to the internet through a web proxy, and cannot connect to
+                    Guacamole. I cannot reconfigure the proxy. How do I solve this? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>You need to enable automatic flushing of your proxy's buffer to avoid
+                    disrupting the stream used by Guacamole. </p><p>If you cannot change the settings of your proxy, using HTTPS instead of HTTP
+                    should solve the problem. Proxies are required to stream HTTPS because of the
+                    nature of SSL. Using HTTPS will allow Guacamole traffic to stream through
+                    proxies unencumbered, even if you cannot access the proxy settings directly. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844205952"></a><a id="idm46420844205664"></a><p><strong>A.6.</strong></p></td><td align="left" valign="top"><p>Can I buy special licensing of the Guacamole code base, such that I can use it
+                    in my own product, without providing the source to my users, without
+                    contributing back, and without acknowledging the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Usually, no. Previous requests for such licensing have been very one-sided and
+                    there would be no direct or indirect benefit to the community and the project.
+                    That said, we handle requests for licensing on a case-by-case basis. In general,
+                    any special licensing has to somehow provide for the community and the
+                    open-source project.</p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844203520"></a><a id="idm46420844203232"></a><p><strong>A.7.</strong></p></td><td align="left" valign="top"><p>Can I pay for custom Guacamole work, or for help integrating Guacamole into my
+                    product, if the open source nature and licenses are preserved?</p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>Yes. We love to be paid to work on Guacamole, especially if that work remains
+                    open source. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844157440"></a><a id="idm46420844157152"></a><p><strong>A.8.</strong></p></td><td align="left" valign="top"><p>How can I contribute to the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>If you are a programmer and want to contribute code, Guacamole is open-source
+                    and you are welcome to do so! Just send us your patches. There is no guarantee
+                    that your patch will be added to the upstream source, and all changes are
+                    carefully reviewed. </p><p>If you are not a programmer, but want to help out, feel free to look through
+                    the documentation or try installing Guacamole and test it out. General editing,
+                    documentation contributions, and testing are always helpful. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844154480"></a><a id="idm46420844154192"></a><p><strong>A.9.</strong></p></td><td align="left" valign="top"><p>How can I become an official member of the project? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The short answer is: "by being asked." </p><p>People are only added as official members of the Guacamole project after their
+                    work has been proven. This usually means you will have contributed code in the
+                    form of patches before, or we know you from extensive testing work, or you
+                    frequently help with documentation, and we are impressed enough that we want you
+                    as part of the project. </p><p>All that said, you do not need to be a member of the project to help out. Feel
+                    free to contribute anything. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844150848"></a><a id="idm46420844150560"></a><p><strong>A.10.</strong></p></td><td align="left" valign="top"><p>I think I've found a bug. How do I report it? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>The project tracks in-progress tasks and bugs via the JIRA instance hosted by
+                    the Apache Software Foundation:</p><p><a class="link" href="https://issues.apache.org/jira/browse/GUACAMOLE/" target="_top"><code class="uri">https://issues.apache.org/jira/browse/GUACAMOLE/</code></a></p><p>All bugs should be reported there as new issues. This is also where you would
+                    request a new feature. If the bug you found is security-related, we would prefer
+                    to be contacted personally via email, such that the bug can be fixed before
+                    becoming dangerously widely known. </p></td></tr><tr class="question"><td align="left" valign="top"><a id="idm46420844146752"></a><a id="idm46420844146464"></a><p><strong>A.11.</strong></p></td><td align="left" valign="top"><p>I need help! Where can I find some? </p></td></tr><tr class="answer"><td align="left" valign="top"></td><td align="left" valign="top"><p>If you would like help with Apache Guacamole, or wish to help others, we
+                    highly recommend sending an email to the one of the project’s <a class="link" href="http://guacamole.apache.org/support/#mailing-lists" target="_top">mailing lists</a>. <span class="emphasis"><em>You will need to subscribe prior to sending
+                        email to any list.</em></span> All mailing lists are actively filtered for
+                    spam, and any email not originating from a subscriber will bounce.</p><p>There are two primary mailing lists:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><a class="link" href="http://mail-archives.apache.org/mod_mbox/guacamole-user/" target="_top"><code class="email">&lt;<a class="email" href="mailto:user@guacamole.apache.org">user@guacamole.apache.org</a>&gt;</code></a></span></dt><dd><p>The user list is intended for general questions and discussions
+                                which do not necessarily pertain to development. This list replaces
+                                the old <a class="link" href="https://sourceforge.net/p/guacamole/discussion/" target="_top">SourceForge forums</a> used by Guacamole prior to its
+                                acceptance into the Apache Software Foundation.</p><p><span class="emphasis"><em>If you're not sure which mailing list to use, the user
+                                    list is probably the correct choice.</em></span></p></dd><dt><span class="term"><a class="link" href="http://mail-archives.apache.org/mod_mbox/guacamole-dev/" target="_top"><code class="email">&lt;<a class="email" href="mailto:dev@guacamole.apache.org">dev@guacamole.apache.org</a>&gt;</code></a></span></dt><dd><p>The development list is for development-related discussion
+                                involving people who are contributors to the Apache Guacamole
+                                project (or who wish to become contributors).</p></dd></dl></div></td></tr></tbody></table></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="appendices.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="protocol-reference.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part III. Appendices </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Appendix B. Guacamole protocol reference</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-architecture.html b/doc/1.1.0/gug/guacamole-architecture.html
new file mode 100644
index 0000000..e8353d8
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-architecture.html
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 1. Implementation and architecture</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="users-guide.html" title="Part I. User's Guide" /><link rel="next" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 1. Implementation and architecture</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="users-guide.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="installing-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-architecture"></a>Chapter 1. Implementation and architecture</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#guacd">guacd</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#web-application">The web application</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#realmint">RealMint</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#vnc-client">VNC Client</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#gateway">Remote Desktop Gateway</a></span></dt></dl></div><a id="idm46420849713184" class="indexterm"></a><a id="idm46420849712288" class="indexterm"></a><a id="idm46420849711392" class="indexterm"></a><p>Guacamole is not a self-contained web application and is made up of many parts. The web
+        application is actually intended to be simple and minimal, with the majority of the
+        gruntwork performed by lower-level components.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-arch.png" width="225" /></div></div><p>Users connect to a Guacamole server with their web browser. The Guacamole client, written
+        in JavaScript, is served to users by a webserver within the Guacamole server. Once loaded,
+        this client connects back to the server over HTTP using the Guacamole protocol.</p><p>The web application deployed to the Guacamole server reads the Guacamole protocol and
+        forwards it to guacd, the native Guacamole proxy. This proxy actually interprets the
+        contents of the Guacamole protocol, connecting to any number of remote desktop servers on
+        behalf of the user.</p><p>The Guacamole protocol combined with guacd provide protocol agnosticism: neither the
+        Guacamole client nor the web application need to be aware of what remote desktop protocol is
+        actually being used.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-architecture"></a>The Guacamole protocol </h2></div></div></div><a id="idm46420849615680" class="indexterm"></a><a id="idm46420849614784" class="indexterm"></a><p>The web application does not understand any remote desktop protocol at all. It does
+            not contain support for VNC or RDP or any other protocol supported by the Guacamole
+            stack. It actually only understands the Guacamole protocol, which is a protocol for
+            remote display rendering and event transport. While a protocol with those properties
+            would naturally have the same abilities as a remote desktop protocol, the design
+            principles behind a remote desktop protocol and the Guacamole protocol are different:
+            the Guacamole protocol is not intended to implement the features of a specific desktop
+            environment.</p><p>As a remote display and interaction protocol, Guacamole implements a superset of
+            existing remote desktop protocols. Adding support for a particular remote desktop
+            protocol (like RDP) to Guacamole thus involves writing a middle layer which "translates"
+            between the remote desktop protocol and the Guacamole protocol. Implementing such a
+            translation is no different than implementing any native client, except that this
+            particular implementation renders to a remote display rather than a local one.</p><p>The middle layer that handles this translation is guacd.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd"></a>guacd</h2></div></div></div><a id="idm46420849706560" class="indexterm"></a><a id="idm46420849705664" class="indexterm"></a><p>guacd is the heart of Guacamole which dynamically loads support for remote desktop
+            protocols (called "client plugins") and connects them to remote desktops based on
+            instructions received from the web application.</p><p>guacd is a daemon process which is installed along with Guacamole and runs in the
+            background, listening for TCP connections from the web application. guacd also does not
+            understand any specific remote desktop protocol, but rather implements just enough of
+            the Guacamole protocol to determine which protocol support needs to be loaded and what
+            arguments must be passed to it. Once a client plugin is loaded, it runs independently of
+            guacd and has full control of the communication between itself and the web application
+            until the client plugin terminates.</p><a id="idm46420849703680" class="indexterm"></a><p>guacd and all client plugins depend on a common library, libguac, which makes
+            communication via the Guacamole protocol easier and a bit more abstract.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="web-application"></a>The web application</h2></div></div></div><a id="idm46420849700240" class="indexterm"></a><p>The part of Guacamole that a user actually interacts with is the web
+            application.</p><p>The web application, as mentioned before, does not implement any remote desktop
+            protocol. It relies on guacd, and implements nothing more than a spiffy web interface
+            and authentication layer.</p><p>We chose to implement the server side of the web application in Java, but there's no
+            reason that it can't be written in a different language. In fact, because Guacamole is
+            intended be an API, we encourage this.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="realmint"></a>RealMint</h2></div></div></div><a id="idm46420849696240" class="indexterm"></a><p>Guacamole is now a generalized remote desktop gateway, but this was not always the
+            case. Guacamole began as a purely text-based Telnet client written in JavaScript called
+                <span class="application"><a class="application" href="http://sourceforge.net/projects/realmint" target="_top">RealMint</a></span> ("RealMint" is an anagram for "terminal"). It was written
+            mainly as a demonstration and, while intended to be useful, its main claim to fame was
+            only that it was pure JavaScript.</p><p>The tunnel used by RealMint was written in PHP. In contrast to Guacamole's HTTP
+            tunnel, RealMint's tunnel used only simple long-polling and was inefficient. RealMint
+            had a decent keyboard implementation which lives on now in parts of Guacamole's keyboard
+            code, but this was really the extent of RealMint's features and usability.</p><p>Given that it was just an implementation of a legacy protocol, and that several other
+            JavaScript terminal emulators exist, most of which well-established and stable, the
+            project was dropped.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="vnc-client"></a>VNC Client</h2></div></div></div><p>Once the developers learned of the HTML5 canvas tag, and saw that it was already
+            implemented in Firefox and Chrome, work started instead on a proof-of-concept JavaScript
+            VNC client.</p><p>This client was purely JavaScript with a Java server component, and worked by
+            translating VNC into an XML-based version of the same. Its development was naturally
+            driven by VNC's features, and its scope was limited to forwarding a single connection to
+            a set of users. Although relatively slow, the proof-of-concept worked well enough that
+            the project needed an online place to live, and was registered with SourceForge as
+            "Guacamole" - an HTML5 VNC client.</p><p>As Guacamole grew and became more than a proof-of-concept, the need for speed
+            increased, and the old RealMint-style long polling was dropped, as was the use of
+            XML.</p><p>As WebSocket could not be trusted to be supported at the time, and Java had no
+            WebSocket standard for servlets, an equivalent HTTP-based tunnel was developed. This
+            tunnel is still used today if WebSocket cannot be used for any reason.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="gateway"></a>Remote Desktop Gateway</h2></div></div></div><p>A faster text-based protocol was developed which could present the features of
+            multiple remote desktop protocols, not just VNC. The entire system was rearchitected
+            into a standard daemon, guacd, and a common library, libguac, which drove both the
+            daemon and protocol support, which became extendable.</p><p>The scope of the project expanded from an adequate VNC client to a performant HTML5
+            remote desktop gateway and general API. In its current state, Guacamole can be used as a
+            central gateway to access any number of machines running different remote desktop
+            servers. It provides extendable authentication, and in the case you need something more
+            specialized, a general API for HTML5-based remote access.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="users-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="installing-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part I. User's Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 2. Installing Guacamole natively</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-common-js.html b/doc/1.1.0/gug/guacamole-common-js.html
new file mode 100644
index 0000000..5b0dbbf
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-common-js.html
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 21. guacamole-common-js</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-common.html" title="Chapter 20. guacamole-common" /><link rel="next" href="guacamole-ext.html" title="Chapter 22. guacamole-ext" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 21. guacamole-common-js</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-common.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-ext.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-common-js"></a>Chapter 21. guacamole-common-js</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-common-js.html#guacamole-client">Guacamole client</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#input-abstraction">Input abstraction</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#guacamole-mouse">Mouse</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#guacamole-touch">Touch</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#guacamole-keyboard">Keyboard</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-common-js.html#on-screen-keyboard">On-screen keyboard</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common-js.html#keyboard-layouts">Keyboard layouts</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#displaying-osk">Displaying the keyboard</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#styling-the-keyboard">Styling the keyboard</a></span></dt><dt><span class="section"><a href="guacamole-common-js.html#osk-event-handling">Handling key events</a></span></dt></dl></dd></dl></div><a id="idm46420845024048" class="indexterm"></a><a id="idm46420845022704" class="indexterm"></a><p>The Guacamole project provides a JavaScript API for interfacing with
+        other components that conform to the design of Guacamole, such as
+        projects using libguac or guacamole-common. This API is called
+        guacamole-common-js.</p><p>guacamole-common-js provides a JavaScript implementation of a
+        Guacamole client, as well as tunneling mechanisms for getting protocol
+        data out of JavaScript and into guacd or the server side of a web
+        application.</p><p>For convenience, it also provides mouse and keyboard abstraction objects that translate
+        JavaScript mouse, touch, and keyboard events into consistent data that Guacamole can more
+        easily digest. The extendable on-screen keyboard that was developed for the Guacamole web
+        application is also included.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-client"></a>Guacamole client</h2></div></div></div><p>The main benefit to using the JavaScript API is the full Guacamole
+            client implementation, which implements all Guacamole instructions,
+            and makes use of the tunnel implementations provided by both the
+            JavaScript and Java APIs.</p><p>Using the Guacamole client is straightforward. The client, like
+            all other objects within the JavaScript API, is within the
+                <code class="code">Guacamole</code> namespace. It is instantiated given an
+            existing, unconnected tunnel:</p><div class="informalexample"><pre class="programlisting">var client = new Guacamole.Client(tunnel);</pre></div><p>Once you have the client, it won't immediately appear within the
+            DOM. You need to add its display element manually:</p><div class="informalexample"><pre class="programlisting">document.body.appendChild(client.getDisplay().getElement());</pre></div><p>At this point, the client will be visible, rendering all updates
+            as soon as they are received through the tunnel.</p><div class="informalexample"><pre class="programlisting">client.connect();</pre></div><p>It is possible to pass arbitrary data to the tunnel during
+            connection which can be used for authentication or for choosing a
+            particular connection. When the <code class="methodname">connect()</code>
+            function of the Guacamole client is called, it in turn calls the
+                <code class="methodname">connect()</code> function of the tunnel
+            originally given to the client, establishing a connection.</p><div class="important"><h3 class="title">Important</h3><p>When creating the <code class="classname">Guacamole.Client</code>, the
+                tunnel used must not already be connected. The
+                    <code class="classname">Guacamole.Client</code> will call the
+                    <code class="methodname">connect()</code> function for you when its
+                own <code class="methodname">connect()</code> function is invoked. If
+                the tunnel is already connected when it is given to the
+                    <code class="classname">Guacamole.Client</code>, connection may not
+                work at all.</p></div><p>In general, all instructions available within the Guacamole
+            protocol are automatically handled by the Guacamole client,
+            including instructions related to audio and video. The only
+            instructions which you must handle yourself are "name" (used to name
+            the connection), "clipboard" (used to update clipboard data on the
+            client side), and "error" (used when something goes wrong
+            server-side). Each of these instructions has a corresponding event
+            handler; you need only supply functions to handle these events. If
+            any of these event handlers are left unset, the corresponding
+            instructions are simply ignored.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="http-tunnel"></a>HTTP tunnel</h2></div></div></div><p>Both the Java and JavaScript API implement corresponding ends of
+            an HTTP tunnel, based on
+            <code class="classname">XMLHttpRequest</code>.</p><p>The tunnel is a true stream - there is no polling. An initial
+            request is made from the JavaScript side, and this request is
+            handled on the Java side. While this request is open, data is
+            streamed along the connection, and instructions within this stream
+            are handled as soon as they are received by the client.</p><p>While data is being streamed along this existing connection, a
+            second connection attempt is made. Data continues to be streamed
+            along the original connection until the server receives and handles
+            the second request, at which point the original connection closes
+            and the stream is transferred to the new connection.</p><p>This process repeats, alternating between active streams, thus
+            creating an unbroken sequence of instructions, while also allowing
+            JavaScript to free any memory used by the previously active
+            connection.</p><p>The tunnel is created by supplying the relative URL to the
+            server-side tunnel servlet:</p><div class="informalexample"><pre class="programlisting">var tunnel = new Guacamole.Tunnel("tunnel");</pre></div><p>Once created, the tunnel can be passed to a
+                <code class="classname">Guacamole.Client</code> for use in a Guacamole
+            connection.</p><p>The tunnel actually takes care of the Guacamole protocol parsing
+            on behalf of the client, triggering "oninstruction" events for every
+            instruction received, splitting each element into elements of an
+            array so that the client doesn't have to.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="input-abstraction"></a>Input abstraction</h2></div></div></div><p>Browsers can be rather finicky when it comes to keyboard and mouse
+            input, not to mention touch events. There is little agreement on
+            which keyboard events get fired when, and what detail about the
+            event is made available to JavaScript. Touch and mouse events can
+            also cause confusion, as most browsers will generate
+                <span class="emphasis"><em>both</em></span> events when the user touches the
+            screen (for compatibility with JavaScript code that only handles
+            mouse events), making it more difficult for applications to support
+            both mouse and touch independently.</p><p>The Guacamole JavaScript API abstracts mouse, keyboard, and touch
+            interaction, providing several helper objects which act as an
+            abstract interface between you and the browser events.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-mouse"></a>Mouse</h3></div></div></div><p>Mouse event abstraction is provided by the
+                    <code class="classname">Guacamole.Mouse</code> object. Given an
+                arbitrary DOM element, <code class="classname">Guacamole.Mouse</code>
+                triggers <span class="property">onmousedown</span>,
+                    <span class="property">onmousemove</span>, and
+                    <span class="property">onmouseup</span> events which are consistent
+                across browsers. This object only response. to true mouse
+                events. Mouse events which are actually the result of touch
+                events are ignored.</p><div class="informalexample"><pre class="programlisting">var element = document.getElementById("some-arbitrary-id");
+var mouse = new Guacamole.Mouse(element);
+
+mouse.onmousedown =
+mouse.onmousemove =
+mouse.onmouseup   = function(state) {
+
+    // Do something with the mouse state received ...
+
+};</pre></div><p>The handles of each event are given an instance of
+                    <code class="classname">Guacamole.Mouse.State</code> which
+                represents the current state of the mouse, containing the state
+                of each button (including the scroll wheel) as well as the X and
+                Y coordinates of the pointer in pixels.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-touch"></a>Touch</h3></div></div></div><p>Touch event abstraction is provided by either
+                    <code class="classname">Guacamole.Touchpad</code> (emulates a
+                touchpad to generate artificial mouse events) or
+                    <code class="classname">Guacamole.Touchscreen</code> (emulates a
+                touchscreen, again generating artificial mouse events).
+                Guacamole uses the touchpad emulation, as this provides the most
+                flexibility and mouse-like features, including scrollwheel and
+                clicking with different buttons, but your preferences may
+                differ.</p><div class="informalexample"><pre class="programlisting">var element = document.getElementById("some-arbitrary-id");
+var touch = new Guacamole.Touchpad(element); // or Guacamole.Touchscreen
+
+touch.onmousedown =
+touch.onmousemove =
+touch.onmouseup   = function(state) {
+
+    // Do something with the mouse state received ...
+
+};</pre></div><p>Note that even though these objects are touch-specific, they
+                still provide mouse events. The state object given to the event
+                handlers of each event is still an instance of
+                    <code class="classname">Guacamole.Mouse.State</code>.</p><p>Ultimately, you could assign the same event handler to all the
+                events of both an instance of
+                    <code class="classname">Guacamole.Mouse</code> as well as
+                    <code class="classname">Guacamole.Touchscreen</code> or
+                    <code class="classname">Guacamole.Touchpad</code>, and you would
+                magically gain mouse and touch support. This support, being
+                driven by the needs of remote desktop, is naturally geared
+                around the mouse and providing a reasonable means of interacting
+                with it. For an actual mouse, events are translated simply and
+                literally, while touch events go through additional emulation
+                and heuristics. From the perspective of the user and the code,
+                this is all transparent.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-keyboard"></a>Keyboard</h3></div></div></div><p>Keyboard events in Guacamole are abstracted with the
+                    <code class="classname">Guacamole.Keyboard</code> object as only
+                keyup and keydown events; there is no keypress like there is in
+                JavaScript. Further, all the craziness of keycodes vs. scancodes
+                vs. key identifiers normally present across browsers is
+                abstracted away. All your event handlers will see is an X11
+                keysym, which represent every key unambiguously. Conveniently,
+                X11 keysyms are also what the Guacamole protocol requires, so if
+                you want to use <code class="classname">Guacamole.Keyboard</code> to
+                drive key events sent over the Guacamole protocol, everything
+                can be connected directly.</p><p>Just like the other input abstraction objects,
+                    <code class="classname">Guacamole.Keyboard</code> requires a DOM
+                element as an event target. Only key events directed at this
+                element will be handled.</p><div class="informalexample"><pre class="programlisting">var keyboard = new Guacamole.Keyboard(document);
+
+keyboard.onkeydown = function(keysym) {
+    // Do something ...
+};
+
+keyboard.onkeyup = function(keysym) {
+    // Do something ...
+};</pre></div><p>In this case, we are using <code class="classname">document</code> as
+                the event target, thus receiving all key events while the
+                browser window (or tab) has focus.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="on-screen-keyboard"></a>On-screen keyboard</h2></div></div></div><p>The Guacamole JavaScript API also provides an extendable on-screen
+            keyboard, <code class="classname">Guacamole.OnScreenKeyboard</code>, which
+            requires the URL of an XML file describing the keyboard layout. The
+            on-screen keyboard object provides no hard-coded layout information;
+            the keyboard layout is described entirely within the XML layout
+            file.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="keyboard-layouts"></a>Keyboard layouts</h3></div></div></div><p>The keyboard layout XML included in the Guacamole web
+                application would be a good place to start regarding how these
+                layout files are written, but in general, the keyboard is simply
+                a set of rows or columns, denoted with <code class="code">&lt;row&gt;</code> and
+                    <code class="code">&lt;column&gt;</code> tags respectively, where each can
+                be nested within the other as desired.</p><p>Each key is represented with a <code class="code">&lt;key&gt;</code> tag, but
+                this is not what the user sees, nor what generates the key
+                event. Each key contains any number of <code class="code">&lt;cap&gt;</code>
+                tags, which represent the visible part of the key. The cap
+                describes which X11 keysym will be sent when the key is pressed.
+                Each cap can be associated with any combination of arbitrary
+                modifier flags which dictate when that cap is active.</p><p>For example:</p><div class="informalexample"><pre class="programlisting">&lt;keyboard lang="en_US" layout="example" size="5"&gt;
+    &lt;row&gt;
+        &lt;key size="4"&gt;
+            &lt;cap modifier="shift" keysym="0xFFE1"&gt;Shift&lt;/cap&gt;
+        &lt;/key&gt;
+        &lt;key&gt;
+            &lt;cap&gt;a&lt;/cap&gt;
+            &lt;cap if="shift"&gt;A&lt;/cap&gt;
+        &lt;/key&gt;
+    &lt;/row&gt;
+&lt;/keyboard&gt;</pre></div><p>Here we have a very simple keyboard which defines only two
+                keys: "shift" (a modifier) and the letter "a". When "shift" is
+                pressed, it sets the "shift" modifier, affecting other keys in
+                the keyboard. The "a" key has two caps: one lowercase (the
+                default) and one uppercase (which requires the shift modifier to
+                be active).</p><p>Notice that the shift key needed the keysym explicitly
+                specified, while the "a" key did not. This is because the
+                on-screen keyboard will automatically derive the correct keysym
+                from the text of the key cap if the text contains only a single
+                character.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="displaying-osk"></a>Displaying the keyboard</h3></div></div></div><p>Once you have a keyboard layout available, adding an on-screen
+                keyboard to your application is simple:</p><div class="informalexample"><pre class="programlisting">// Add keyboard to body
+var keyboard = new Guacamole.OnScreenKeyboard("path/to/layout.xml");
+document.body.appendChild(keyboard.getElement());
+
+// Set size of keyboard to 100 pixels
+keyboard.resize(100);</pre></div><p>Here, we have explicitly specified the width of the keyboard
+                as 100 pixels. Normally, you would determine this by inspecting
+                the width of the containing component, or by deciding on a
+                reasonable width beforehand. Once the width is given, the height
+                of the keyboard is determined based on the arrangement of each
+                row.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="styling-the-keyboard"></a>Styling the keyboard</h3></div></div></div><p>While the <code class="classname">Guacamole.OnScreenKeyboard</code>
+                object will handle most of the layout, you will still need to
+                style everything yourself with CSS to get the elements to render
+                properly and the keys to change state when clicked or activated.
+                It defines several CSS classes, which you will need to manually
+                style to get things looking as desired:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="classname">guac-keyboard</code></span></dt><dd><p>This class is assigned to the root element
+                            containing the entire keyboard, returned by
+                                <code class="methodname">getElement()</code>,</p></dd><dt><span class="term"><code class="classname">guac-keyboard-row</code></span></dt><dd><p>Assigned to the <code class="code">div</code> elements which
+                            contain each row.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-column</code></span></dt><dd><p>Assigned to the <code class="code">div</code> elements which
+                            contain each column.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-gap</code></span></dt><dd><p>Assigned to any <code class="code">div</code> elements created
+                            as a result of <code class="code">&lt;gap&gt;</code> tags in the
+                            keyboard layout. <code class="code">&lt;gap&gt;</code> tags are
+                            intended to behave as keys with no visible styling
+                            or caps.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-key-container</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element which
+                            contains a key, and provides that key with its
+                            required dimensions. It is this element that will be
+                            scaled relative to the size specified in the layout
+                            XML and the size given to the <code class="code">resize()</code>
+                            function.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-key</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element which
+                            represents the actual key, not the cap. This element
+                            will not directly contain text, but it will contain
+                            all caps that this key can have. With clever CSS
+                            rules, you can take advantage of this and cause
+                            inactive caps to appear on the key in a corner (for
+                            example), or hide them entirely.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-cap</code></span></dt><dd><p>Assigned to the <code class="code">div</code> element
+                            representing a key cap. Each cap is a child of its
+                            corresponding key, and it is up to the author of the
+                            CSS rules to hide or show or reposition each cap
+                            appropriately. Each cap will contain the display
+                            text defined within the <code class="code">&lt;cap&gt;</code>
+                            element in the layout XML.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-requires-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to the cap element when that cap requires a
+                            specific modifier.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-uses-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to the key element when any cap contained
+                            within it requires a specific modifier.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-modifier-<em class="replaceable"><code>MODIFIER</code></em></code></span></dt><dd><p>Added to and removed from the root keyboard
+                            element when a modifier key is activated or
+                            deactivated respectively.</p></dd><dt><span class="term"><code class="classname">guac-keyboard-pressed</code></span></dt><dd><p>Added to and removed from any key element as it is
+                            pressed and released respectively.</p></dd></dl></div><div class="important"><h3 class="title">Important</h3><p>The CSS rules required for the on-screen keyboard to work
+                    as expected can be quite complex. Looking over the CSS rules
+                    used by the on-screen keyboard in the Guacamole web
+                    application would be a good place to start to see how the
+                    appearance of each key can be driven through the simple
+                    class changes described above.</p><p>Inspecting the elements of an active on-screen keyboard
+                    within the Guacamole web application with the developer
+                    tools of your favorite browser is also a good idea.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="osk-event-handling"></a>Handling key events</h3></div></div></div><p>Key events generated by the on-screen keyboard are identical
+                to those of <code class="classname">Guacamole.Keyboard</code> in that
+                they consist only of a single X11 keysym. Only keyup and keydown
+                events exist, as before; there is no keypress event.</p><div class="informalexample"><pre class="programlisting">// Assuming we have an instance of Guacamole.OnScreenKeyboard already
+// called "keyboard"
+
+keyboard.onkeydown = function(keysym) {
+    // Do something ...
+};
+
+keyboard.onkeyup = function(keysym) {
+    // Do something ...
+};</pre></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-common.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-ext.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 20. <span class="package">guacamole-common</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 22. guacamole-ext</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-common.html b/doc/1.1.0/gug/guacamole-common.html
new file mode 100644
index 0000000..746e96c
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-common.html
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 20. guacamole-common</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="libguac.html" title="Chapter 19. libguac" /><link rel="next" href="guacamole-common-js.html" title="Chapter 21. guacamole-common-js" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 20. <span class="package">guacamole-common</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="libguac.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-common-js.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-common"></a>Chapter 20. <span class="package">guacamole-common</span></h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-common.html#java-http-tunnel">HTTP tunnel</a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-protocol-usage">Using the Guacamole protocol</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-common.html#java-reading-protocol"><code class="classname">GuacamoleReader</code></a></span></dt><dt><span class="section"><a href="guacamole-common.html#java-writing-protocol"><code class="classname">GuacamoleWriter</code></a></span></dt></dl></dd></dl></div><a id="idm46420847415024" class="indexterm"></a><a id="idm46420847428496" class="indexterm"></a><p>The Java API provided by the Guacamole project is called guacamole-common. It provides a
+        basic means of tunneling data between the JavaScript client provided by guacamole-common-js
+        and the native proxy daemon, guacd, and for dealing with the Guacamole protocol. The purpose
+        of this library is to facilitate the creation of custom tunnels between the JavaScript
+        client and guacd, allowing your Guacamole-driven web application to enforce its own security
+        model, if any, and dictate exactly what connections are established.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="java-http-tunnel"></a>HTTP tunnel</h2></div></div></div><p>The Guacamole Java API implements the HTTP tunnel using a servlet
+            called <code class="classname">GuacamoleHTTPTunnelServlet</code>. This
+            servlet handles all requests coming to it over HTTP from the
+            JavaScript client, and translated them into connect, read, or write
+            requests, which each get dispatched to the
+                <code class="methodname">doConnect()</code>,
+                <code class="methodname">doRead()</code>, and
+                <code class="methodname">doWrite()</code> functions accordingly.</p><p>Normally, you wouldn't touch the <code class="methodname">doRead()</code>
+            and <code class="methodname">doWrite()</code> functions, as these have
+            already been written to properly handle the requests of the
+            JavaScript tunnel, and if you feel the need to touch these
+            functions, you are probably better off writing your own tunnel
+            implementation, although such a thing is difficult to do in a
+            performant way.</p><p>When developing an application based on the Guacamole API, you
+            should use <code class="classname">GuacamoleHTTPTunnelServlet</code> by
+            extending it, implementing your own version of
+                <code class="methodname">doConnect()</code>, which is the only abstract
+            function it defines. The tutorial later in this book demonstrating
+            how to write a Guacamole-based web application shows the basics of
+            doing this, but generally, <code class="methodname">doConnect()</code> is
+            an excellent place for authentication or other validation, as it is
+            the responsibility of <code class="methodname">doConnect()</code> to create
+            (or not create) the actual tunnel. If
+                <code class="methodname">doConnect()</code> does not create the tunnel,
+            communication between the JavaScript client and guacd cannot take
+            place, which is an ideal power to have as an authenticator.</p><p>The <code class="methodname">doConnect()</code> function is expected to return a new
+                <code class="classname">GuacamoleTunnel</code>, but it is completely up to the
+            implementation to decide how that tunnel is to be created. The already-implemented parts
+            of <code class="classname">GuacamoleHTTPTunnelServlet</code> then return the unique identifier
+            of this tunnel to the JavaScript client, allowing its own tunnel implementation to
+            continue to communicate with the tunnel existing on the Java side.</p><p>Instances of <code class="classname">GuacamoleTunnel</code> are created associated with a
+                <code class="classname">GuacamoleSocket</code>, which is the abstract interface surrounding
+            the low-level connection to guacd. Overall, there is a socket
+                (<code class="classname">GuacamoleSocket</code>) which provides a TCP connection to guacd.
+            This socket is exposed to <code class="classname">GuacamoleTunnel</code>, which provides
+            abstract protocol access around what is actually (but secretly, through the abstraction
+            of the API) a TCP socket.</p><p>The Guacamole web application extends this tunnel servlet in order
+            to implement authentication at the lowest possible level,
+            effectively prohibiting communication between the client and any
+            remote desktops unless they have properly authenticated. Your own
+            implementation can be considerably simpler, especially if you don't
+            need authentication:</p><div class="informalexample"><pre class="programlisting">public class MyGuacamoleTunnelServlet
+    extends GuacamoleHTTPTunnelServlet {
+
+    @Override
+    protected GuacamoleTunnel doConnect(HttpServletRequest request)
+        throws GuacamoleException {
+
+        // Connect to guacd here (this is a STUB)
+        GuacamoleSocket socket;
+
+        // Return a new tunnel which uses the connected socket
+        return new SimpleGuacamoleTunnel(socket);
+
+    }
+
+}</pre></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="java-protocol-usage"></a>Using the Guacamole protocol</h2></div></div></div><p>guacamole-common provides basic low-level support for the
+            Guacamole protocol. This low-level support is leveraged by the HTTP
+            tunnel implementation to satisfy the requirements of the JavaScript
+            client implementation, as the JavaScript client expects the
+            handshake procedure to have already taken place. This support exists
+            through the <code class="classname">GuacamoleReader</code> and
+                <code class="classname">GuacamoleWriter</code> classes, which are
+            similar to Java's <code class="classname">Reader</code> and
+                <code class="classname">Writer</code> classes, except that they deal
+            with the Guacamole protocol specifically, and thus have slightly
+            different contracts.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="java-reading-protocol"></a><code class="classname">GuacamoleReader</code></h3></div></div></div><p><code class="classname">GuacamoleReader</code> provides a very basic
+                    <code class="methodname">read()</code> function which is required
+                to return one or more complete instructions in a
+                    <span class="type">char</span> array. It also provides the typical
+                    <code class="methodname">available()</code> function, which informs
+                you whether <code class="methodname">read()</code> is likely to block
+                the next time it is called, and an even more abstract version of
+                    <code class="methodname">read()</code> called
+                    <code class="methodname">readInstruction()</code> which returns one
+                instruction at a time, wrapped within a
+                    <code class="classname">GuacamoleInstruction</code> instance.</p><p>Normally, you would not need to use this class yourself. It is
+                used by <code class="classname">ConfiguredGuacamoleSocket</code> to
+                complete the Guacamole protocol handshake procedure, and it is
+                used by <code class="classname">GuacamoleHTTPTunnelServlet</code> within
+                    <code class="methodname">doRead()</code> to implement the reading
+                half of the tunnel.</p><p>The only concrete implementation of
+                    <code class="classname">GuacamoleReader</code> is
+                    <code class="classname">ReaderGuacamoleReader</code>, which wraps a
+                Java <code class="classname">Reader</code>, using that as the source for
+                data to parse into Guacamole instructions. Again, you would not
+                normally directly use this class, nor instantiate it yourself. A
+                working, concrete instance of
+                    <code class="classname">GuacamoleReader</code> can be retrieved from
+                any <code class="classname">GuacamoleSocket</code> or
+                    <code class="classname">GuacamoleTunnel</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="java-writing-protocol"></a><code class="classname">GuacamoleWriter</code></h3></div></div></div><p><code class="classname">GuacamoleWriter</code> provides a very basic
+                    <code class="methodname">write()</code> function and a more
+                abstract version called
+                    <code class="methodname">writeInstruction()</code> which writes
+                instances of <code class="classname">GuacamoleInstruction</code>. These
+                functions are analogous to the <code class="methodname">read()</code>
+                and <code class="methodname">readInstruction()</code> functions
+                provided by <code class="classname">GuacamoleReader</code>, and have
+                similar restrictions: the contract imposed by
+                    <code class="methodname">write()</code> requires that written
+                instructions be complete</p><p>The only concrete implementation of
+                    <code class="classname">GuacamoleWriter</code> is
+                    <code class="classname">WriterGuacamoleWriter</code>, which wraps a
+                Java <code class="classname">Writer</code>, using that as the
+                destination for Guacamole instruction data, but you would not
+                normally directly use this class, nor instantiate it yourself.
+                It is used by <code class="classname">ConfiguredGuacamoleSocket</code>
+                to complete the Guacamole protocol handshake procedure, and it
+                is used by <code class="classname">GuacamoleHTTPTunnelServlet</code>
+                within <code class="methodname">doWrite()</code> to implement the
+                writing half of the tunnel.</p><p>If necessary, a <code class="classname">GuacamoleWriter</code> can be
+                retrieved from any <code class="classname">GuacamoleSocket</code> or
+                    <code class="classname">GuacamoleTunnel</code>, but in most cases,
+                the classes provided by the Guacamole Java API which already use
+                    <code class="classname">GuacamoleWriter</code> will be
+                sufficient.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="libguac.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-common-js.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 19. libguac </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 21. guacamole-common-js</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-docker.html b/doc/1.1.0/gug/guacamole-docker.html
new file mode 100644
index 0000000..3eaeaed
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-docker.html
@@ -0,0 +1,413 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 3. Installing Guacamole with Docker</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively" /><link rel="next" href="proxying-guacamole.html" title="Chapter 4. Proxying Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 3. Installing Guacamole with Docker</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="installing-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="proxying-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-docker"></a>Chapter 3. Installing Guacamole with Docker</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-image">Running the <span class="package">guacd</span> Docker image</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-guacamole">Running <span class="package">guacd</span> for use by the Guacamole Docker image</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-external">Running <span class="package">guacd</span> for use by services outside Docker</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-image">The Guacamole Docker image</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-config-via-env">Configuring Guacamole when using Docker</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-guacd">Connecting Guacamole to <span class="package">guacd</span></a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-mysql">MySQL authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-postgresql">PostgreSQL authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-ldap">LDAP authentication</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-guacamole-home">Custom extensions and <code class="envar">GUACAMOLE_HOME</code></a></span></dt><dt><span class="section"><a href="guacamole-docker.html#verifying-guacamole-docker">Verifying the Guacamole install</a></span></dt></dl></dd></dl></div><a id="idm46420849300368" class="indexterm"></a><p>Guacamole can be deployed using Docker, removing the need to build
+            <span class="package">guacamole-server</span> from source or configure the web application
+        manually. The Guacamole project provides officially-supported Docker images for both
+        Guacamole and <span class="package">guacd</span> which are kept up-to-date with each release.</p><p>A typical Docker deployment of Guacamole will involve three separate containers, linked
+        together at creation time:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="systemitem">guacamole/guacd</code></span></dt><dd><p>Provides the <span class="package">guacd</span> daemon, built from the released
+                        <span class="package">guacamole-server</span> source with support for VNC, RDP, SSH,
+                    telnet, and Kubernetes.</p></dd><dt><span class="term"><code class="systemitem">guacamole/guacamole</code></span></dt><dd><p>Provides the Guacamole web application running within Tomcat 8 with support
+                    for WebSocket. The configuration necessary to connect to
+                        <span class="package">guacd</span>, MySQL, PostgreSQL, LDAP, etc. will be generated
+                    automatically when the image starts based on Docker links or environment
+                    variables.</p></dd></dl></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="systemitem">mysql</code> or <code class="systemitem">postgresql</code></span></dt><dd><p>Provides the database that Guacamole will use for authentication and storage
+                    of connection configuration data.</p></dd></dl></div><p>This separation is important, as it facilitates upgrades and maintains proper separation
+        of concerns. With the database separate from Guacamole and <span class="package">guacd</span>, those
+        containers can be freely destroyed and recreated at will. The only container which must
+        persist data through upgrades is the database.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacd-docker-image"></a>Running the <span class="package">guacd</span> Docker image</h2></div></div></div><p>The <span class="package">guacd</span> Docker image is built from the released
+                <span class="package">guacamole-server</span> source with support for VNC, RDP, SSH, telnet,
+            and Kubernetes. Common pitfalls like installing the required dependencies, installing
+            fonts for SSH, telnet, or Kubernetes, and ensuring the FreeRDP plugins are installed to
+            the correct location are all taken care of. It will simply just work.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-docker-guacamole"></a>Running <span class="package">guacd</span> for use by the Guacamole Docker image</h3></div></div></div><p>When running the <span class="package">guacd</span> image with the intent of linking to a
+                Guacamole container, no ports need be exposed on the network. Access to these ports
+                will be handled automatically by Docker during linking, and the Guacamole image will
+                properly detect and configure the connection to <span class="package">guacd</span>.</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacd</code></em> -d guacamole/guacd</pre></div><p>When run in this manner, <span class="package">guacd</span> will be listening on its default
+                port 4822, but this port will only be available to Docker containers that have been
+                explicitly linked to
+                <code class="varname"><em class="replaceable"><code>some-guacd</code></em></code>.</p><p>The log level of guacd can be controlled with the <code class="varname">GUACD_LOG_LEVEL</code> environment variable.  The
+                default value is <code class="varname"><em class="replaceable"><code>info</code></em></code>, and can be set to any of the
+                valid settings for the guacd log flag (-L).</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run -e GUACD_LOG_LEVEL=<em class="replaceable"><code>debug</code></em> -d guacamole/guacd</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-docker-external"></a>Running <span class="package">guacd</span> for use by services outside Docker</h3></div></div></div><p>If you are not going to use the Guacamole image, you can still leverage the
+                    <span class="package">guacd</span> image for ease of installation and maintenance. By
+                exposing the <span class="package">guacd</span> port, 4822, services external to Docker will
+                be able to access <span class="package">guacd</span>.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Take great care when doing this</em></span> -
+                        <span class="package">guacd</span> is a passive proxy and does not perform any kind of
+                    authentication.</p><p>If you do not properly isolate <span class="package">guacd</span> from untrusted parts
+                    of your network, malicious users may be able to use <span class="package">guacd</span> as
+                    a jumping point to other systems.</p></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacd</code></em> -d -p 4822:4822 guacamole/guacd</pre></div><p><span class="package">guacd</span> will now be listening on port 4822, and Docker will
+                expose this port on the same server hosting Docker. Other services, such as an
+                instance of Tomcat running outside of Docker, will be able to connect to
+                    <span class="package">guacd</span> directly.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-docker-image"></a>The Guacamole Docker image</h2></div></div></div><p>The Guacamole Docker image is built on top of a standard Tomcat 8 image and takes care
+            of all configuration automatically. The configuration information required for
+                <span class="package">guacd</span> and the various authentication mechanisms are specified
+            with environment variables or Docker links given when the container is created.</p><div class="important"><h3 class="title">Important</h3><p>If using <a class="link" href="guacamole-docker.html#guacamole-docker-postgresql" title="PostgreSQL authentication">PostgreSQL</a> or <a class="link" href="guacamole-docker.html#guacamole-docker-mysql" title="MySQL authentication">MySQL</a> for authentication, <span class="emphasis"><em>you will need to initialize the
+                    database manually</em></span>. Guacamole will not automatically create its own
+                tables, but SQL scripts are provided to do this.</p></div><p>Once the Guacamole image is running, Guacamole will be accessible at
+                    <code class="uri">http://<em class="replaceable"><code>HOSTNAME</code></em>:8080/guacamole/</code>, where
+                <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or address of the machine
+            hosting Docker.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-config-via-env"></a>Configuring Guacamole when using Docker</h3></div></div></div><p>When running Guacamole using Docker, the traditional approach to configuring 
+                    Guacamole by editing <code class="filename">guacamole.properties</code> is less 
+                    convenient. When using Docker, you may wish to make use of the
+                    <em class="parameter"><code>enable-environment-properties</code></em> configuration 
+                    property, which allows you to specify values for arbitrary Guacamole 
+                    configuration properties using environment variables. This is covered in 
+                    <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>.
+            </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-guacd"></a>Connecting Guacamole to <span class="package">guacd</span></h3></div></div></div><p>The Guacamole Docker image needs to be able to connect to <span class="package">guacd</span>
+                to establish remote desktop connections, just like any other Guacamole deployment.
+                The connection information needed by Guacamole will be provided either via a Docker
+                link or through environment variables.</p><p>If you will be using Docker to provide <span class="package">guacd</span>, and you wish to
+                use a Docker link to connect the Guacamole image to <span class="package">guacd</span>, the
+                connection details are implied by the Docker link:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-guacd</code></em>:guacd</em></span>        \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre><p>If you are not using Docker to provide <span class="package">guacd</span>, you will need
+                    to provide the network connection information yourself using additional
+                    environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">GUACD_HOSTNAME</code></td><td>
+                                    <p>The hostname of the <span class="package">guacd</span> instance to
+                                        use to establish remote desktop connections. <span class="emphasis"><em>This
+                                            is required if you are not using Docker to provide
+                                                <span class="package">guacd</span>.</em></span></p>
+                                </td></tr><tr><td><code class="envar">GUACD_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                            <span class="package">guacd</span>. This environment variable is
+                                        optional. If not provided, the standard
+                                            <span class="package">guacd</span> port of 4822 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">GUACD_HOSTNAME</code> and, if necessary, <code class="envar">GUACD_PORT</code>
+                    environment variables can thus be used in place of a Docker link if using a
+                    Docker link is impossible or undesirable:</p><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    <span class="emphasis"><em>-e GUACD_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>  \
+    -e GUACD_PORT=<em class="replaceable"><code>4822</code></em></em></span>             \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p><span class="emphasis"><em>A connection to <span class="package">guacd</span> is not the only thing required
+                    for Guacamole to work</em></span>; some authentication mechanism needs to be
+                configured, as well. <a class="link" href="guacamole-docker.html#guacamole-docker-mysql" title="MySQL authentication">MySQL</a>, <a class="link" href="guacamole-docker.html#guacamole-docker-postgresql" title="PostgreSQL authentication">PostgreSQL</a>, and <a class="link" href="guacamole-docker.html#guacamole-docker-ldap" title="LDAP authentication">LDAP</a> are supported for this, and are
+                described in more detail in the sections below. If the required configuration
+                options for at least one authentication mechanism are not provided, the Guacamole
+                image will not be able to start up, and you will see an error.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-mysql"></a>MySQL authentication</h3></div></div></div><p>To use Guacamole with the MySQL authentication backend, you will need either a
+                Docker container running the <code class="systemitem">mysql</code> image, or network access
+                to a working installation of MySQL. The connection to MySQL can be specified using
+                either environment variables or a Docker link.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="initializing-guacamole-docker-mysql"></a>Initializing the MySQL database</h4></div></div></div><p>If your database is not already initialized with the Guacamole schema, you
+                    will need to do so prior to using Guacamole. A convenience script for generating
+                    the necessary SQL to do this is included in the Guacamole image.</p><p>To generate a SQL script which can be used to initialize a fresh MySQL
+                    database as documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql &gt; <em class="replaceable"><code>initdb.sql</code></em></pre></div><p>Alternatively, you can use the SQL scripts included with the database
+                    authentication.</p><p>Once this script is generated, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create a database for Guacamole within MySQL, such as
+                                    <span class="database"><em class="replaceable"><code>guacamole_db</code></em></span>.</p></li><li class="step"><p>Create a user for Guacamole within MySQL with access to this database,
+                            such as
+                                <code class="systemitem"><em class="replaceable"><code>guacamole_user</code></em></code>.</p></li><li class="step"><p>Run the script on the newly-created database.</p></li></ol></div><p>The process for doing this via the <span class="command"><strong>mysql</strong></span> utility included
+                    with MySQL is documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-connecting"></a>Connecting Guacamole to MySQL</h4></div></div></div><p>If your MySQL database is provided by another Docker container, and you wish
+                    to use a Docker link to connect the Guacamole image to your database, the
+                    connection details are implied by the Docker link itself:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-mysql</code></em>:mysql</em></span>        \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>If you are not using Docker to provide your MySQL database, you will need to
+                    provide the network connection information yourself using additional environment
+                    variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_HOSTNAME</code></td><td>
+                                    <p>The hostname of the database to use for Guacamole
+                                        authentication. <span class="emphasis"><em>This is required if you are not
+                                            using Docker to provide your MySQL
+                                        database.</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                        MySQL. This environment variable is optional. If not
+                                        provided, the standard MySQL port of 3306 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">MYSQL_HOSTNAME</code> and, if necessary, <code class="envar">MYSQL_PORT</code>
+                    environment variables can thus be used in place of a Docker link if using a
+                    Docker link is impossible or undesirable:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>-e MYSQL_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>  \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                        some-guacd:guacd</code> option above) is not required any more than a
+                    Docker link is required for MySQL. The connection information for
+                        <span class="package">guacd</span> can be specified using environment variables, as
+                    described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-required-vars"></a>Required environment
+                    variables</h4></div></div></div><p>Using MySQL for authentication requires additional configuration parameters
+                    specified via environment variables. These variables collectively describe how
+                    Guacamole will connect to MySQL:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_DATABASE</code></td><td>
+                                    <p>The name of the database to use for Guacamole
+                                        authentication.</p>
+                                </td></tr><tr><td><code class="envar">MYSQL_USER</code></td><td>
+                                    <p>The user that Guacamole will use to connect to
+                                        MySQL.</p>
+                                </td></tr><tr><td><code class="envar">MYSQL_PASSWORD</code></td><td>
+                                    <p>The password that Guacamole will provide when connecting
+                                        to MySQL as <code class="envar">MYSQL_USER</code>.</p>
+                                </td></tr></tbody></table></div><p>If any required environment variables are omitted, you will receive an error
+                    message in the logs, and the image will stop. You will then need to recreate the
+                    container with the proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-mysql-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to override Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">MYSQL_ABSOLUTE_MAX_CONNECTIONS</code></td><td>
+                                    <p>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</p>
+                                    <p><span class="emphasis"><em>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">MYSQL_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</em></span>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</p>
+                                </td></tr></tbody></table></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-postgresql"></a>PostgreSQL authentication</h3></div></div></div><p>To use Guacamole with the PostgreSQL authentication backend, you will need either
+                a Docker container running the <code class="systemitem">postgres</code> image, or network
+                access to a working installation of PostgreSQL. The connection to PostgreSQL can be
+                specified using either environment variables or a Docker link.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="initializing-guacamole-docker-postgresql"></a>Initializing the PostgreSQL database</h4></div></div></div><p>If your database is not already initialized with the Guacamole schema, you
+                    will need to do so prior to using Guacamole. A convenience script for generating
+                    the necessary SQL to do this is included in the Guacamole image.</p><p>To generate a SQL script which can be used to initialize a fresh PostgreSQL
+                    database as documented in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres &gt; <em class="replaceable"><code>initdb.sql</code></em></pre></div><p>Alternatively, you can use the SQL scripts included with the database
+                    authentication.</p><p>Once this script is generated, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create a database for Guacamole within PostgreSQL, such as
+                                    <span class="database"><em class="replaceable"><code>guacamole_db</code></em></span>.</p></li><li class="step"><p>Run the script on the newly-created database.</p></li><li class="step"><p>Create a user for Guacamole within PostgreSQL with access to the
+                            tables and sequences of this database, such as
+                                    <code class="systemitem"><em class="replaceable"><code>guacamole_user</code></em></code>.</p></li></ol></div><p>The process for doing this via the <span class="command"><strong>psql</strong></span> and
+                        <span class="command"><strong>createdb</strong></span> utilities included with PostgreSQL is documented
+                    in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-connecting"></a>Connecting Guacamole to PostgreSQL</h4></div></div></div><p>If your PostgreSQL database is provided by another Docker container, and you
+                    wish to use a Docker link to connect the Guacamole image to your database, the
+                    connection details are implied by the Docker link itself:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>--link <em class="replaceable"><code>some-postgres</code></em>:postgres</em></span>  \
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>If you are not using Docker to provide your PostgreSQL database, you will need
+                    to provide the network connection information yourself using additional
+                    environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_HOSTNAME</code></td><td>
+                                    <p>The hostname of the database to use for Guacamole
+                                        authentication. <span class="emphasis"><em>This is required if you are not
+                                            using Docker to provide your PostgreSQL
+                                            database.</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_PORT</code></td><td>
+                                    <p>The port that Guacamole should use when connecting to
+                                        PostgreSQL. This environment variable is optional. If not
+                                        provided, the standard PostgreSQL port of 5432 will be
+                                        used.</p>
+                                </td></tr></tbody></table></div><p>The <code class="envar">POSTGRES_HOSTNAME</code> and, if necessary,
+                        <code class="envar">POSTGRES_PORT</code> environment variables can thus be used in place
+                    of a Docker link if using a Docker link is impossible or undesirable:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em>   \
+    --link some-guacd:guacd           \
+    <span class="emphasis"><em>-e POSTGRES_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em> \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                        some-guacd:guacd</code> option above) is not required any more than a
+                    Docker link is required for PostgreSQL. The connection information for
+                        <span class="package">guacd</span> can be specified using environment variables, as
+                    described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-required-vars"></a>Required environment variables</h4></div></div></div><p>Using PostgreSQL for authentication requires additional configuration
+                    parameters specified via environment variables. These variables collectively
+                    describe how Guacamole will connect to PostgreSQL:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_DATABASE</code></td><td>
+                                    <p>The name of the database to use for Guacamole
+                                        authentication.</p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_USER</code></td><td>
+                                    <p>The user that Guacamole will use to connect to
+                                        PostgreSQL.</p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_PASSWORD</code></td><td>
+                                    <p>The password that Guacamole will provide when connecting
+                                        to PostgreSQL as <code class="envar">POSTGRES_USER</code>.</p>
+                                </td></tr></tbody></table></div><p>If any required environment variables are omitted, you will receive an error
+                    message in the logs, and the image will stop. You will then need to recreate the
+                    container with the proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-postgresql-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to override Guacamole's
+                    default behavior with respect to concurrent connection use by one or more users.
+                    Concurrent use of connections and connection groups can be limited to an overall
+                    maximum and/or a per-user maximum:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">POSTGRES_ABSOLUTE_MAX_CONNECTIONS</code></td><td>
+                                    <p>The absolute maximum number of concurrent connections to
+                                        allow at any time, regardless of the Guacamole connection or
+                                        user involved. If set to "0", this will be unlimited.
+                                        Because this limit applies across all Guacamole connections,
+                                        it cannot be overridden if set.</p>
+                                    <p><span class="emphasis"><em>By default, the absolute total number of
+                                            concurrent connections is unlimited
+                                        ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection. If set to "0", this will be
+                                        unlimited. This can be overridden on a per-connection basis
+                                        when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow to
+                                        any one Guacamole connection group. If set to "0", this will
+                                        be unlimited. This can be overridden on a per-group basis
+                                        when editing a connection group.</p>
+                                    <p><span class="emphasis"><em>By default, overall concurrent use of connection
+                                            groups is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection. If
+                                        set to "0", this will be unlimited. This can be overridden
+                                        on a per-connection basis when editing a connection.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connections is unlimited ("0").</em></span></p>
+                                </td></tr><tr><td><code class="envar">POSTGRES_DEFAULT_MAX_GROUP_CONNECTIONS_PER_USER</code></td><td>
+                                    <p>The maximum number of concurrent connections to allow a
+                                        single user to maintain to any one Guacamole connection
+                                        group. If set to "0", this will be unlimited. This can be
+                                        overridden on a per-group basis when editing a connection
+                                        group.</p>
+                                    <p><span class="emphasis"><em>By default, per-user concurrent use of
+                                            connection groups is limited to one ("1")</em></span>, to
+                                        prevent a balancing connection group from being completely
+                                        exhausted by one user alone.</p>
+                                </td></tr></tbody></table></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-ldap"></a>LDAP authentication</h3></div></div></div><p>To use Guacamole with the LDAP authentication backend, you will need network
+                access to an LDAP directory. Unlike MySQL and PostgreSQL, the Guacamole Docker image
+                does support Docker links for LDAP; the connection information
+                    <span class="emphasis"><em>must</em></span> be specified using environment variables:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_HOSTNAME</code></td><td>
+                                <p>The hostname or IP address of your LDAP server.</p>
+                            </td></tr><tr><td><code class="envar">LDAP_PORT</code></td><td>
+                                <p>The port your LDAP server listens on. By default, this will be
+                                    389 for unencrypted LDAP or LDAP using STARTTLS, and 636 for
+                                    LDAP over SSL (LDAPS).</p>
+                            </td></tr><tr><td><code class="envar">LDAP_ENCRYPTION_METHOD</code></td><td>
+                                <p>The encryption mechanism that Guacamole should use when
+                                    communicating with your LDAP server. Legal values are "none" for
+                                    unencrypted LDAP, "ssl" for LDAP over SSL/TLS (commonly known as
+                                    LDAPS), or "starttls" for STARTTLS. If omitted, encryption will
+                                    not be used.</p>
+                            </td></tr></tbody></table></div><p>Only the <code class="envar">LDAP_HOSTNAME</code> variable is required, but you may also need
+                to specify <code class="envar">LDAP_PORT</code> or <code class="envar">LDAP_ENCRYPTION_METHOD</code> if your
+                LDAP directory uses encryption or listens on a non-standard port:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em> \
+    --link some-guacd:guacd         \
+    <span class="emphasis"><em>-e LDAP_HOSTNAME=<em class="replaceable"><code>172.17.42.1</code></em>   \</em></span>
+    ...
+    -d -p 8080:8080 guacamole/guacamole</pre></div><p>Note that a Docker link to <span class="package">guacd</span> (the <code class="option">--link
+                    some-guacd:guacd</code> option above) is not required. Similar to LDAP, the
+                connection information for <span class="package">guacd</span> can be specified using
+                environment variables, as described in <a class="xref" href="guacamole-docker.html#guacamole-docker-guacd" title="Connecting Guacamole to guacd">the section called “Connecting Guacamole to <span class="package">guacd</span>”</a>.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-ldap-required-vars"></a>Required environment variables</h4></div></div></div><p>Using LDAP for authentication requires additional configuration parameters
+                    specified via environment variables. These variables collectively describe how
+                    Guacamole will query your LDAP directory:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_USER_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all Guacamole users. All Guacamole
+                                        users that will be authenticating against LDAP must be
+                                        descendents of this base DN.</p>
+                                </td></tr></tbody></table></div><p>As with the other authentication mechanisms, if any required environment
+                    variables are omitted (including those required for connecting to the LDAP
+                    directory over the network), you will receive an error message in the logs, and
+                    the image will stop. You will then need to recreate the container with the
+                    proper variables specified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="guacamole-docker-ldap-optional-vars"></a>Optional environment variables</h4></div></div></div><p>Additional optional environment variables may be used to configure the details
+                    of your LDAP directory hierarchy, or to enable more flexible searching for user
+                    accounts:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">LDAP_GROUP_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all groups that may be referenced
+                                        within Guacamole configurations using the standard
+                                            <span class="property">seeAlso</span> attribute. All groups which
+                                        will be used to control access to Guacamole configurations
+                                        must be descendents of this base DN. <span class="emphasis"><em>If this
+                                            variable is omitted, the <span class="property">seeAlso</span>
+                                            attribute will have no effect on Guacamole
+                                            configurations.</em></span></p>
+                                </td></tr><tr><td><code class="envar">LDAP_SEARCH_BIND_DN</code></td><td>
+                                    <p>The DN (Distinguished Name) of the user to bind as when
+                                        authenticating users that are attempting to log in. If
+                                        specified, Guacamole will query the LDAP directory to
+                                        determine the DN of each user that logs in. If omitted, each
+                                        user's DN will be derived directly using the base DN
+                                        specified with <code class="envar">LDAP_USER_BASE_DN</code>.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_SEARCH_BIND_PASSWORD</code></td><td>
+                                    <p>The password to provide to the LDAP server when binding as
+                                            <code class="envar">LDAP_SEARCH_BIND_DN</code> to authenticate other
+                                        users. This variable is only used if
+                                            <code class="envar">LDAP_SEARCH_BIND_DN</code> is specified. If
+                                        omitted, but <code class="envar">LDAP_SEARCH_BIND_DN</code> is
+                                        specified, Guacamole will attempt to bind with the LDAP
+                                        server without a password.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_USERNAME_ATTRIBUTE</code></td><td>
+                                    <p>The attribute or attributes which contain the username
+                                        within all Guacamole user objects in the LDAP directory.
+                                        Usually, and by default, this will simply be
+                                            "<span class="property">uid</span>". If your LDAP directory
+                                        contains users whose usernames are dictated by different
+                                        attributes, multiple attributes can be specified here,
+                                        separated by commas, but beware: <span class="emphasis"><em>doing so requires
+                                            that a search DN be provided with
+                                                <code class="envar">LDAP_SEARCH_BIND_DN</code></em></span>.</p>
+                                </td></tr><tr><td><code class="envar">LDAP_CONFIG_BASE_DN</code></td><td>
+                                    <p>The base of the DN for all Guacamole configurations. If
+                                        omitted, the configurations of Guacamole connections will
+                                        simply not be queried from the LDAP directory, and you will
+                                        need to store them elsewhere, such as within a MySQL or
+                                        PostgreSQL database.</p>
+                                </td></tr></tbody></table></div><p>As documented in <a class="xref" href="ldap-auth.html" title="Chapter 7. LDAP authentication">Chapter 7, <em>LDAP authentication</em></a>, Guacamole does support combining LDAP with a MySQL or
+                    PostgreSQL database, and this can be configured with the Guacamole Docker image,
+                    as well. Each of these authentication mechanisms is independently configurable
+                    using their respective environment variables, and by providing the required
+                    environment variables for multiple systems, Guacamole will automatically be
+                    configured to use each when the Docker image starts.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-docker-guacamole-home"></a>Custom extensions and <code class="envar">GUACAMOLE_HOME</code></h3></div></div></div><p>If you have your own or third-party extensions for Guacamole which are not
+                supported by the Guacamole Docker image, but are compatible with the version of
+                Guacamole within the image, you can still use them by providing a custom base
+                configuration using the <code class="envar">GUACAMOLE_HOME</code> environment variable:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Variable</th><th>Description</th></tr></thead><tbody><tr><td><code class="envar">GUACAMOLE_HOME</code></td><td>
+                                <p>The absolute path to the directory within the Docker container
+                                    to use <span class="emphasis"><em>as a template</em></span> for the image's
+                                    automatically-generated <a class="link" href="configuring-guacamole.html#guacamole-home" title="GUACAMOLE_HOME (/etc/guacamole)"><code class="envar">GUACAMOLE_HOME</code></a>. Any configuration
+                                    generated by the Guacamole Docker image based on other
+                                    environment variables will be applied to an independent copy of
+                                    the contents of this directory.</p>
+                            </td></tr></tbody></table></div><p>You will <span class="emphasis"><em>still</em></span> need to follow the steps required to create
+                the contents of <a class="link" href="configuring-guacamole.html#guacamole-home" title="GUACAMOLE_HOME (/etc/guacamole)"><code class="envar">GUACAMOLE_HOME</code></a> specific to your
+                extension (placing the extension itself within
+                        <code class="filename"><em class="replaceable"><code>GUACAMOLE_HOME</code></em>/extensions/</code>,
+                adding any properties to <code class="filename">guacamole.properties</code>, etc.), but the
+                rest of Guacamole's configuration will be handled automatically, overlaid on top of
+                a copy of the <code class="envar">GUACAMOLE_HOME</code> you provide.</p><p>Because the Docker image's <code class="envar">GUACAMOLE_HOME</code> environment variable must
+                point to a directory <span class="emphasis"><em>within the container</em></span>, you will need to
+                expose your custom <code class="envar">GUACAMOLE_HOME</code> to the container using the
+                    <code class="option">-v</code> option of <span class="command"><strong>docker run</strong></span>. The container
+                directory chosen can then be referenced in the <code class="envar">GUACAMOLE_HOME</code>
+                environment variable, and the image will handle the rest automatically:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> run --name <em class="replaceable"><code>some-guacamole</code></em>    \
+    ...
+    <span class="emphasis"><em>-v <em class="replaceable"><code>/local/path</code></em>:<em class="replaceable"><code>/some-directory</code></em>   \
+    -e GUACAMOLE_HOME=<em class="replaceable"><code>/some-directory</code></em> \</em></span>
+    -d -p 8080:8080 guacamole/guacamole</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="verifying-guacamole-docker"></a>Verifying the Guacamole install</h3></div></div></div><p>Once the Guacamole image is running, Guacamole should be accessible at
+                        <code class="uri">http://<em class="replaceable"><code>HOSTNAME</code></em>:8080/guacamole/</code>, where
+                    <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or address of the machine
+                hosting Docker, and you <span class="emphasis"><em>should</em></span> a login screen. If using MySQL
+                or PostgreSQL, the database initialization scripts will have created a default
+                administrative user called "<code class="systemitem">guacadmin</code>" with the password
+                    "<code class="systemitem">guacadmin</code>". <span class="emphasis"><em>You should log in and change
+                    your password immediately.</em></span> If using LDAP, you should be able to log
+                in as any valid user within your LDAP directory.</p><p>If you cannot access Guacamole, or you do not see a login screen, check Docker's
+                logs using the <span class="command"><strong>docker logs</strong></span> command to determine if something is
+                wrong. Configuration parameters may have been given incorrectly, or the database may
+                be improperly initialized:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <span class="command"><strong>docker</strong></span> logs <em class="replaceable"><code>some-guacamole</code></em></pre></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="installing-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="proxying-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 2. Installing Guacamole natively </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 4. Proxying Guacamole</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-ext.html b/doc/1.1.0/gug/guacamole-ext.html
new file mode 100644
index 0000000..398da78
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-ext.html
@@ -0,0 +1,457 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 22. guacamole-ext</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-common-js.html" title="Chapter 21. guacamole-common-js" /><link rel="next" href="custom-protocols.html" title="Chapter 23. Adding new protocols" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 22. guacamole-ext</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-common-js.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="custom-protocols.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-ext"></a>Chapter 22. guacamole-ext</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-ext.html#ext-file-format">Guacamole extension format</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-manifest">Extension manifest</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-patch-html">Updating existing HTML</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-environment">Accessing the server configuration</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-simple-config">Custom properties</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-advanced-config">Advanced configuration</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-auth-providers">Authentication providers</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#ext-simple-auth"><code class="classname">SimpleAuthenticationProvider</code></a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-user-context">The <code class="classname">UserContext</code></a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-object-directories"><code class="classname">Directory</code> classes</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-rest-resources">REST resources</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-permissions">Permissions</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-ext.html#idm46420844452544">System permissions</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#idm46420844439360">Object permissions</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-ext.html#ext-connections">Connections</a></span></dt><dt><span class="section"><a href="guacamole-ext.html#ext-active-connections">Managing/sharing active connections</a></span></dt></dl></div><a id="idm46420844903664" class="indexterm"></a><a id="idm46420844902320" class="indexterm"></a><p>While not strictly part of the Java API provided by the Guacamole project, guacamole-ext
+        is an API exposed by the Guacamole web application within a separate project such that
+        extensions, specifically authentication providers, can be written to tweak Guacamole to fit
+        well in existing deployments.</p><p>Extensions to Guacamole can:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Provide alternative authentication methods and sources of connection/user
+                data.</p></li><li class="listitem"><p>Provide event listeners that will be notified as Guacamole performs tasks such
+                as authentication and tunnel connection.</p></li><li class="listitem"><p>Theme or brand Guacamole through additional CSS files and static resources.</p></li><li class="listitem"><p>Extend Guacamole's JavaScript code by providing JavaScript that will be loaded
+                automatically.</p></li><li class="listitem"><p>Add additional display languages, or alter the translation strings of existing
+                languages.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-file-format"></a>Guacamole extension format</h2></div></div></div><p>Guacamole extensions are standard Java <code class="filename">.jar</code> files which contain
+            all classes and resources required by the extension, as well as the Guacamole extension
+            manifest. There is no set structure to an extension except that the manifest must be in
+            the root of the archive. Java classes and packages, if any, will be read from the
+                <code class="filename">.jar</code> relative to the root, as well.</p><p>Beyond this, the semantics and locations associated with all other resources within
+            the extension are determined by the extension manifest alone.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-manifest"></a>Extension manifest</h3></div></div></div><p>The Guacamole extension manifest is a single JSON file,
+                    <code class="filename">guac-manifest.json</code>, which describes the location of each
+                resource, the type of each resource, and the version of Guacamole that the extension
+                was built for. The manifest can contain the following properties:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">guacamoleVersion</span></td><td>
+                                <p>The version string of the Guacamole release that this
+                                    extension is written for. <span class="emphasis"><em>This property is required
+                                        for all extensions.</em></span> The special version string
+                                        <code class="code">"*"</code> can be used if the extension does not
+                                    depend on a particular version of Guacamole, but be careful -
+                                    this will bypass version compatibility checks, and should never
+                                    be used if the extension does more than basic theming or
+                                    branding.</p>
+                            </td></tr><tr><td><span class="property">name</span></td><td>
+                                <p>A human-readable name for the extension. <span class="emphasis"><em>This
+                                        property is required for all extensions.</em></span> When
+                                    your extension is successfully loaded, a message acknowledging
+                                    the successful loading of your extension by name will be
+                                    logged.</p>
+                            </td></tr><tr><td><span class="property">namespace</span></td><td>
+                                <p>A unique string which identifies your extension.
+                                        <span class="emphasis"><em>This property is required for all
+                                        extensions.</em></span> This string should be unique enough
+                                    that it is unlikely to collide with the namespace of any other
+                                    extension.</p>
+                                <p>If your extension contains static resources, those resources
+                                    will be served at a path derived from the namespace provided
+                                    here.</p>
+                            </td></tr><tr><td><span class="property">authProviders</span></td><td>
+                                <p>An array of the classnames of all
+                                        <code class="classname">AuthenticationProvider</code> subclasses
+                                    provided by this extension.</p>
+                            </td></tr><tr><td><span class="property">listeners</span></td><td>
+                                <p>An array of the classnames of all
+                                        <code class="classname">Listener</code> subclasses
+                                    provided by this extension.</p>
+                            </td></tr><tr><td><span class="property">js</span></td><td>
+                                <p>An array of all JavaScript files within the extension. All
+                                    paths within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>JavaScript files declared here will be automatically loaded
+                                    when the web application loads within the user's browser.</p>
+                            </td></tr><tr><td><span class="property">css</span></td><td>
+                                <p>An array of all CSS files within the extension. All paths
+                                    within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>CSS files declared here will be automatically applied when the
+                                    web application loads within the user's browser.</p>
+                            </td></tr><tr><td><span class="property">html</span></td><td>
+                                <p>An array of all HTML files within the extension that should be
+                                    used to update or replace existing HTML within the Guacamole
+                                    interface. All paths within this array must be relative paths,
+                                    and will be interpreted relative to the root of the
+                                    archive.</p>
+                                <p>HTML files declared here will be automatically applied to
+                                    other HTML within the Guacamole interface when the web
+                                    application loads within the user's browser. The manner in which
+                                    the files are applied is dictated by <code class="sgmltag-element">&lt;meta ...&gt;</code>
+                                    within those same files.</p>
+                            </td></tr><tr><td><span class="property">translations</span></td><td>
+                                <p>An array of all translation files within the extension. All
+                                    paths within this array must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>Translation files declared here will be automatically added to
+                                    the available languages. If a translation file provides a
+                                    language that already exists within Guacamole, its strings will
+                                    override the strings of the existing translation.</p>
+                            </td></tr><tr><td><span class="property">resources</span></td><td>
+                                <p>An object where each property name is the name of a web
+                                    resource file, and each value is the mimetype for that resource.
+                                    All paths within this object must be relative paths, and will be
+                                    interpreted relative to the root of the archive.</p>
+                                <p>Web resources declared here will be made available to the
+                                    application at
+                                            <code class="filename">app/ext/<em class="replaceable"><code>NAMESPACE</code></em>/<em class="replaceable"><code>PATH</code></em></code>,
+                                    where <em class="replaceable"><code>NAMESPACE</code></em> is the value of the
+                                        <span class="property">namespace</span> property, and
+                                        <em class="replaceable"><code>PATH</code></em> is the declared web resource
+                                    filename.</p>
+                            </td></tr></tbody></table></div><p>The only absolutely required properties are <span class="property">guacamoleVersion</span>,
+                    <span class="property">name</span>, and <span class="property">namespace</span>, as they are used
+                to identify the extension and for compatibility checks. The most minimal
+                    <code class="filename">guac-manifest.json</code> will look something like this:</p><div class="informalexample"><pre class="programlisting">{
+    "guacamoleVersion" : "1.1.0",
+    "name" : "My Extension",
+    "namespace" : "my-extension"
+}</pre></div><p>This will allow the extension to load, but does absolutely nothing otherwise.
+                Lacking the semantic information provided by the other properties, no other files
+                within the extension will be used. A typical <code class="filename">guac-manifest.json</code>
+                for an extension providing theming or branding would be more involved:</p><div class="informalexample"><pre class="programlisting">{
+
+    "guacamoleVersion" : "1.1.0",
+
+    "name"      : "My Extension",
+    "namespace" : "my-extension",
+
+    "css" : [ "theme.css" ],
+
+    "html" : [ "loginDisclaimer.html" ],
+
+    "resources" : {
+        "images/logo.png"   : "image/png",
+        "images/cancel.png" : "image/png",
+        "images/delete.png" : "image/png"
+    }
+
+}</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-patch-html"></a>Updating existing HTML</h3></div></div></div><p>The existing HTML structure of Guacamole's interface can be modified by extensions
+                through special "patch" HTML files declared by the <span class="property">html</span>
+                property in <code class="filename">guac-manifest.json</code>. These files are HTML fragments
+                and are identical to any other HTML file except that they contain Guacamole-specific
+                    <code class="sgmltag-element">meta</code> tags that instruct Guacamole to modify its own HTML in a
+                particular way. Each <code class="sgmltag-element">meta</code> tag takes the following form:</p><div class="informalexample"><pre class="programlisting">&lt;meta name="<em class="replaceable"><code>NAME</code></em>" content="<em class="replaceable"><code>SELECTOR</code></em>"&gt;</pre></div><p>where <em class="replaceable"><code>SELECTOR</code></em> is a CSS selector that matches the
+                elements within the Guacamole interface that serve as a basis for the modification,
+                and <em class="replaceable"><code>NAME</code></em> is any one of the following defined
+                modifications:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Name</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">before</span></td><td>
+                                <p>Inserts the specified HTML immediately before any element
+                                    matching the CSS selector.</p>
+                            </td></tr><tr><td><span class="property">after</span></td><td>
+                                <p>Inserts the specified HTML immediately after any element
+                                    matching the CSS selector.</p>
+                            </td></tr><tr><td><span class="property">replace</span></td><td>
+                                <p>Replaces any element matching the CSS selector with the
+                                    specified HTML.</p>
+                            </td></tr><tr><td><span class="property">before-children</span></td><td>
+                                <p>Inserts the specified HTML immediately before the first child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</p>
+                            </td></tr><tr><td><span class="property">after-children</span></td><td>
+                                <p>Inserts the specified HTML immediately after the last child
+                                    (if any) of any element matching the CSS selector. If a matching
+                                    element has no children, the HTML simply becomes the entire
+                                    contents of the matching element.</p>
+                            </td></tr><tr><td><span class="property">replace-children</span></td><td>
+                                <p>Replaces the entire contents of any element matching the CSS
+                                    selector with the specified HTML.</p>
+                            </td></tr></tbody></table></div><p>For example, to add a welcome message and link to some corporate privacy policy (a
+                fairly common need), you would add an HTML file like the following:</p><div class="informalexample"><pre class="programlisting">&lt;meta name="after" content=".login-ui .login-dialog"&gt;
+
+&lt;div class="welcome"&gt;
+    &lt;h2&gt;Welcome to our Guacamole server!&lt;/h2&gt;
+    &lt;p&gt;
+        Please be sure to read our &lt;a href="/path/to/some/privacy.html"&gt;privacy
+        policy&lt;/a&gt; before continuing.
+    &lt;/p&gt;
+&lt;/div&gt;</pre></div><p>After the extension is installed and Guacamole is restarted, the "welcome" div and
+                its contents will automatically be inserted directly below the login dialog (the
+                only element that would match <code class="code">.login-ui .login-dialog</code>) as if they were
+                part of Guacamole's HTML in the first place.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-environment"></a>Accessing the server configuration</h2></div></div></div><p>The configuration of the Guacamole server is exposed through the
+                <code class="classname">Environment</code> interface, specifically the
+                <code class="classname">LocalEnvironment</code> implementation of this interface. Through
+                <code class="classname">Environment</code>, you can access all properties declared within
+                <code class="filename">guacamole.properties</code>, determine the proper hostname/port of
+                <span class="package">guacd</span>, and access the contents of
+                <code class="varname">GUACAMOLE_HOME</code>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-simple-config"></a>Custom properties</h3></div></div></div><p>If your extension requires generic, unstructured configuration parameters,
+                    <code class="filename">guacamole.properties</code> is a reasonable and simple location
+                for them. The <code class="classname">Environment</code> interface provides direct access to
+                    <code class="filename">guacamole.properties</code> and simple mechanisms for reading and
+                parsing the properties therein. The value of a property can be retrieved calling
+                    <code class="methodname">getProperty()</code>, which will return
+                    <code class="constant">null</code> or a default value for undefined properties, or
+                    <code class="methodname">getRequiredProperty()</code>, which will throw an exception
+                for undefined properties.</p><p>For convenience, guacamole-ext contains several pre-defined property base classes
+                for common types:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Class Name</th><th>Value Type</th><th>Interpretation</th></tr></thead><tbody><tr><td><code class="classname">BooleanGuacamoleProperty</code></td><td><code class="classname">Boolean</code></td><td>The values "true" and "false" are parsed as their corresponding
+                                    <code class="classname">Boolean</code> values. Any other value results
+                                in a parse error.</td></tr><tr><td><code class="classname">IntegerGuacamoleProperty</code></td><td><code class="classname">Integer</code></td><td>Numeric strings are parsed as <code class="classname">Integer</code>
+                                values. Non-numeric strings will result in a parse error.</td></tr><tr><td><code class="classname">LongGuacamoleProperty</code></td><td><code class="classname">Long</code></td><td>Numeric strings are parsed as <code class="classname">Long</code> values.
+                                Non-numeric strings will result in a parse error.</td></tr><tr><td><code class="classname">StringGuacamoleProperty</code></td><td><code class="classname">String</code></td><td>The property value is returned as an untouched
+                                    <code class="classname">String</code>. No parsing is performed, and
+                                parse errors cannot occur.</td></tr><tr><td><code class="classname">FileGuacamoleProperty</code></td><td><code class="classname">File</code></td><td>The property is interpreted as a filename, and a new
+                                    <code class="classname">File</code> pointing to that filename is
+                                returned. If the filename is invalid, a parse error will be thrown.
+                                Note that the file need not exist or be accessible for the filename
+                                to be valid.</td></tr></tbody></table></div><p>To use these types, you must extend the base class, implementing the
+                    <code class="methodname">getName()</code> function to identify your property.
+                Typically, you would declare these properties as static members of some class
+                containing all properties relevant to your extension:</p><div class="informalexample"><pre class="programlisting">public class MyProperties {
+
+    public static <em class="replaceable"><code>MY_PROPERTY</code></em> = new IntegerGuacamoleProperty() {
+
+        @Override
+        public String getName() { return "<em class="replaceable"><code>my-property</code></em>"; }
+
+    };
+
+}</pre></div><p>Your property can then be retrieved with <code class="methodname">getProperty()</code> or
+                    <code class="methodname">getRequiredProperty()</code>:</p><div class="informalexample"><pre class="programlisting">Integer value = environment.getProperty(<em class="replaceable"><code>MyProperties.MY_PROPERTY</code></em>);</pre></div><p>If you need more sophisticated parsing, you can also implement your own property
+                types by implementing the <code class="classname">GuacamoleProperty</code> interface. The
+                only functions to implement are <code class="methodname">getName()</code>, which returns
+                the name of the property, and <code class="methodname">parseValue()</code>, which parses a
+                given string and returns its value.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-advanced-config"></a>Advanced configuration</h3></div></div></div><p>If you need more structured data than provided by simple properties, you can place
+                completely arbitrary files in a hierarchy of your choosing anywhere within
+                    <code class="varname">GUACAMOLE_HOME</code> as long as you avoid placing your files in
+                directories reserved for other purposes as described above.</p><p>The Environment interface exposes the location of
+                    <code class="varname">GUACAMOLE_HOME</code> through the
+                    <code class="methodname">getGuacamoleHome()</code> function. This function returns a
+                standard Java <code class="classname">File</code> which can then be used to locate other
+                files or directories within <code class="varname">GUACAMOLE_HOME</code>:</p><div class="informalexample"><pre class="programlisting">File myConfigFile = new File(environment.getGuacamoleHome(), "my-config.xml");</pre><p>There is no guarantee that <code class="varname">GUACAMOLE_HOME</code> or your file will
+                    exist, and you should verify this before proceeding further in your extension's
+                    configuration process, but once this is done you can simply parse your file as
+                    you see fit.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-auth-providers"></a>Authentication providers</h2></div></div></div><p>Guacamole's authentication system is driven by authentication providers, which are
+            classes which implement the <code class="classname">AuthenticationProvider</code> interface
+            defined by guacamole-ext. When any page within Guacamole is visited, the following
+            process occurs:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>All currently installed extensions are polled, in lexicographic order of their
+                    filenames, by invoking the <code class="methodname">getAuthenticatedUser()</code>
+                    function with a <code class="classname">Credentials</code> object constructed with the
+                    contents of the HTTP request.</p><p>The credentials given are abstract. While the Credentials object provides
+                    convenience access to a traditional username and password,
+                        <span class="emphasis"><em>implementations are not required to use usernames and
+                        passwords</em></span>. The entire contents of the HTTP request is at your
+                    disposal, including parameters, cookies, and SSL information.</p></li><li class="listitem"><p>If an authentication attempt fails, the extension throws either a
+                        <code class="classname">GuacamoleInsufficientCredentialsException</code> (if more
+                    credentials are needed before validity can be determined) or
+                        <code class="classname">GuacamoleInvalidCredentialsException</code> (if the
+                    credentials are technically sufficient, but are invalid as provided). If all
+                    extensions fail to authenticate the user, the contents of the exception thrown
+                    by the first extension to fail are used to produce the user login prompt.</p><p><span class="emphasis"><em>Note that this means there is no "login screen" in Guacamole per se;
+                        the prompt for credentials for unauthenticated users is determined purely
+                        based on the needs of the extension as declared within the authentication
+                        failure itself.</em></span></p><p>If an authentication attempt succeeds, the extension returns an instance of
+                        <code class="classname">AuthenticatedUser</code> describing the identity of the user
+                    that just authenticated, and no further extensions are polled.</p></li><li class="listitem"><p>If authentication has succeeded, and thus an
+                        <code class="classname">AuthenticatedUser</code> is available, that
+                        <code class="classname">AuthenticatedUser</code> is passed to the
+                        <code class="methodname">getUserContext()</code> function of all extensions'
+                    authentication providers. Each extension now has the opportunity to provide
+                    access to data for a user, even if that extension did not originally
+                    authenticate the user. If no <code class="classname">UserContext</code> is returned for
+                    the given <code class="classname">AuthenticatedUser</code>, then that extension has
+                    simply refused to provide data for that user.</p><p>The Guacamole interface will transparently unify the data from each extension,
+                    providing the user with a view of all available connections. If the user has
+                    permission to modify or administer any objects associated with an extension,
+                    access to the administrative interface will be exposed as well, again with a
+                    unified view of all applicable objects.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>Because authentication is decoupled from data storage/access, <span class="emphasis"><em>you do not
+                    need to implement full-blown data storage if you only wish to provide an
+                    additional authentication mechanism</em></span>. You can instead implement only
+                the authentication portion of an <code class="classname">AuthenticationProvider</code>, and
+                otherwise rely on the storage and features provided by other extensions, such as the
+                    <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database
+                    authentication extension</a>.</p></div><p>The Guacamole web application includes a basic authentication provider implementation
+            which parses an XML file to determine which users exist, their corresponding passwords,
+            and what configurations those users have access to. This is the part of Guacamole that
+            reads the <code class="filename">user-mapping.xml</code> file. If you use a custom authentication
+            provider for your authentication, this file will probably not be required.</p><p>The community has implemented authentication providers which access databases, use
+            LDAP, or even perform no authentication at all, redirecting all users to a single
+            configuration specified in <code class="filename">guacamole.properties</code>.</p><p>A minimal authentication provider is implemented in the tutorials later, and the
+            upstream authentication provider implemented within Guacamole, as well as the
+            authentication providers implemented by the community, are good examples for how
+            authentication can be extended without having to implement a whole new web
+            application.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="ext-simple-auth"></a><code class="classname">SimpleAuthenticationProvider</code></h3></div></div></div><p>The <code class="classname">SimpleAuthenticationProvider</code> class provides a much
+                simpler means of implementing authentication when you do not require the ability to
+                add and remove users and connections. It is an abstract class and requires only one
+                function implementation:
+                <code class="methodname">getAuthorizedConfigurations()</code>.</p><p>This function is required to return a <code class="classname">Map</code> of unique IDs to
+                configurations, where these configurations are all configurations accessible with
+                the provided credentials. As before, the credentials given are abstract. You are not
+                required to use usernames and passwords.</p><p>The configurations referred to by the function name are instances of
+                    <code class="classname">GuacamoleConfiguration</code> (part of guacamole-common), which
+                is just a wrapper around a protocol name and set of parameter name/value pairs. The
+                name of the protocol to use and a set of parameters is the minimum information
+                required for other parts of the Guacamole API to complete the handshake required by
+                the Guacamole protocol.</p><p>When a class that extends <code class="classname">SimpleAuthenticationProvider</code> is
+                asked for more advanced operations by the web application,
+                    <code class="classname">SimpleAuthenticationProvider</code> simply returns that there is
+                no permission to do so. This effectively disables all administrative functionality
+                within the web interface.</p><p>If you choose to go the simple route, most of the rest of this chapter is
+                irrelevant. Permissions, security model, and various classes will be discussed that
+                are all handled for you automatically by
+                    <code class="classname">SimpleAuthenticationProvider</code>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-user-context"></a>The <code class="classname">UserContext</code></h2></div></div></div><p>The <code class="classname">UserContext</code> is the root of all data-related operations. It
+            is used to list, create, modify, or delete users and connections, as well as to query
+            available permissions. If an extension is going to provide access to data of any sort,
+            it must do so through the <code class="classname">UserContext</code>.</p><p>The Guacamole web application uses permissions queries against the
+                <code class="classname">UserContext</code> to determine what operations to present, but
+                <span class="emphasis"><em>beware that it is up to the <code class="classname">UserContext</code> to actually
+                enforce these restrictions</em></span>. The Guacamole web application will not
+            enforce restrictions on behalf of the <code class="classname">UserContext</code>.</p><p>The <code class="classname">UserContext</code> is the sole means of entry and the sole means
+            of modification available to a logged-in user. If the <code class="classname">UserContext</code>
+            refuses to perform an operation (by throwing an exception), the user cannot perform the
+            operation at all.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-object-directories"></a><code class="classname">Directory</code> classes</h2></div></div></div><p>Access to objects beneath the <code class="classname">UserContext</code> is given through
+                <code class="classname">Directory</code> classes. These <code class="classname">Directory</code>
+            classes are similar to Java collections, but they also embody update and batching
+            semantics. Objects can be retrieved from a <code class="classname">Directory</code> using its
+                <code class="methodname">get()</code> function and added or removed with
+                <code class="methodname">add()</code> and <code class="methodname">remove()</code> respectively,
+            but objects already in the set can also be updated by passing an updated object to its
+                <code class="methodname">update()</code> function.</p><p>An implementation of a <code class="classname">Directory</code> can rely on these functions to
+            define the semantics surrounding all operations. The <code class="methodname">add()</code>
+            function is called only when creating new objects, the <code class="methodname">update()</code>
+            function is called only when updating an object previously retrieved with
+                <code class="methodname">get()</code>, and <code class="methodname">remove()</code> is called only
+            when removing an existing object by its identifier.</p><p>When implementing an <code class="classname">AuthenticationProvider</code>, you must ensure
+            that the <code class="classname">UserContext</code> will only return
+                <code class="classname">Directory</code> classes that automatically enforce the permissions
+            associated with all objects and the associated user.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-rest-resources"></a>REST resources</h2></div></div></div><p>Arbitrary REST resources may be exposed by extensions at the
+                <code class="classname">AuthenticationProvider</code> level, if the resource does not
+            require an associated authenticated user, or at the <code class="classname">UserContext</code>
+            level, if the resource should be available to authenticated users only. In both cases,
+            the REST resource is provided through implementing the
+                <code class="function">getResource()</code> function, returning an object which is annotated
+            with JAX-RS annotations (JSR 311).</p><p>The resource returned by <code class="function">getResource()</code> functions as the root
+            resource, providing access to other resources beneath itself. The root resource for the
+                <code class="classname">AuthenticationProvider</code> is exposed at
+                    <code class="uri"><em class="replaceable"><code>PATH</code></em>/api/ext/<em class="replaceable"><code>IDENTIFIER</code></em></code>,
+            and the root resource for the <code class="classname">UserContext</code> is exposed at
+                    <code class="uri"><em class="replaceable"><code>PATH</code></em>/api/session/ext/<em class="replaceable"><code>IDENTIFIER</code></em></code>,
+            where <em class="replaceable"><code>PATH</code></em> is the path to which Guacamole has been deployed
+            (typically <code class="uri">/guacamole/</code>) and <em class="replaceable"><code>IDENTIFIER</code></em> is the
+            unique identifier for the <code class="classname">AuthenticationProvider</code>, as returned by
+                <code class="function">getIdentifier()</code>.</p><p>The behavior of extension REST resources is generally left entirely to the
+            implementation, with the exception that the "token" request parameter is reserved for
+            use by Guacamole. This parameter contains the user's authentication token when the user
+            is logged in, and must be present on all requests which require authentication. Though
+            not relevant to REST resources exposed at the
+                <code class="classname">AuthenticationProvider</code> level, resources exposed at the
+                <code class="classname">UserContext</code> level inherently require the "token" parameter to
+            be present, as it is the sole means of locating the user's session.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-permissions"></a>Permissions</h2></div></div></div><p>The permissions system within guacamole-ext is an advisory system. It is the means by
+            which an authentication module describes to the web application what a user is allowed
+            to do. The body of permissions granted to a user describes which objects that user can
+            see and what they can do to those objects, and thus suggests how the Guacamole interface
+            should appear to that user.</p><p><span class="emphasis"><em>Permissions are not the means by which access is restricted</em></span>; they
+            are purely a means of describing access level. An implementation may internally use the
+            permission objects to define restrictions, but this is not required. It is up to the
+            implementation to enforce its own restrictions by throwing exceptions when an operation
+            is not allowed, and to correctly communicate the abilities of individual users through
+            these permissions.</p><p>The permissions available to a user are exposed through the
+                <code class="classname">SystemPermissionSet</code> and
+                <code class="classname">ObjectPermissionSet</code> classes which are accessible through the
+                <code class="classname">UserContext</code>. These classes also serve as the means for
+            manipulating the permissions granted to a user.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844452544"></a>System permissions</h3></div></div></div><p>System permissions describe access to operations that manipulate the system as a
+                whole, rather than specific objects. This includes the creation of new objects, as
+                object creation directly affects the system, and per-object controls cannot exist
+                before the object is actually created.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ADMINISTER</code></span></dt><dd><p>The user is a super-user - the Guacamole equivalent of root. They are
+                            allowed to manipulate of system-level permissions and all other objects.
+                            This permission implies all others.</p></dd><dt><span class="term"><code class="constant">CREATE_CONNECTION</code></span></dt><dd><p>The user is allowed to create new connections. If a user has this
+                            permission, the management interface will display components related to
+                            connection creation.</p></dd><dt><span class="term"><code class="constant">CREATE_CONNECTION_GROUP</code></span></dt><dd><p>The user is allowed to create new connection groups. If a user has
+                            this permission, the management interface will display components
+                            related to connection group creation.</p></dd><dt><span class="term"><code class="constant">CREATE_SHARING_PROFILE</code></span></dt><dd><p>The user is allowed to create new sharing profiles. If a user has this
+                            permission, the management interface will display components related to
+                            sharing profile creation.</p></dd><dt><span class="term"><code class="constant">CREATE_USER</code></span></dt><dd><p>The user is allowed to create other users. If a user has this
+                            permission, the management interface will display components related to
+                            user creation.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844439360"></a>Object permissions</h3></div></div></div><p>Object permissions describe access to operations that affect a particular object.
+                Guacamole currently defines four types of objects which can be associated with
+                permissions: users, connections, connection groups, and sharing profiles. Each
+                object permission associates a single user with an action that may be performed on a
+                single object.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">ADMINISTER</code></span></dt><dd><p>The user may grant or revoke permissions involving this object.
+                            "Involving", in this case, refers to either side of the permission
+                            association, and includes both the user to whom the permission is
+                            granted and the object the permission affects.</p></dd><dt><span class="term"><code class="constant">DELETE</code></span></dt><dd><p>The user may delete this object. This is distinct from the
+                                <code class="constant">ADMINISTER</code> permission which deals only with
+                            permissions. A user with this permission will see the "Delete" button
+                            when applicable.</p></dd><dt><span class="term"><code class="constant">READ</code></span></dt><dd><p>The user may see that this object exists and read the properties of
+                            that object.</p><p>Note that the implementation is <span class="emphasis"><em>not required to divulge the
+                                true underlying properties of any object</em></span>. The parameters
+                            of a connection or sharing profile, the type or contents of a connection
+                            group, the password of a user, etc. all need not be exposed.</p><p>This is particularly important from the perspective of security when
+                            it comes to connections, as the parameters of a connection are only
+                            truly needed when a connection is being modified, and likely should not
+                            be exposed otherwise. The actual connection operation is always
+                            performed internally by the authentication provider, and thus does not
+                            require client-side knowledge of anything beyond the connection's
+                            existence.</p></dd><dt><span class="term"><code class="constant">UPDATE</code></span></dt><dd><p>The user may change the properties of this object.</p><p>In the case of users, this means the user's password can be altered.
+                                <span class="emphasis"><em>Permissions are not considered properties of a
+                                user</em></span>, nor objects in their own right, but rather
+                            associations between a user and an action which may involve another
+                            object.</p><p>The properties of a connection include its name, protocol, parent
+                            connection group, and parameters. The properties of a connection group
+                            include its name, type, parent connection group, and children. The
+                            properties of a sharing profile include its name, primary connection,
+                            and parameters.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-connections"></a>Connections</h2></div></div></div><p>Guacamole connections are organized in a hierarchy made up of connection groups, which
+            each act as folders organizing the connections themselves. The hierarchy is accessed
+            through the root-level connection group, exposed by
+                <code class="methodname">getRootConnectionGroup()</code> by the
+                <code class="classname">UserContext</code>. The connections and connection groups exposed
+            beneath the root connection group must also be accessible directly through the
+            connection and connection group directories exposed by
+                <code class="methodname">getConnectionDirectory()</code> and
+                <code class="methodname">getConnectionGroupDirectory()</code> of the
+                <code class="classname">UserContext</code>.</p><p>When a user attempts to use a connection the <code class="methodname">connect()</code> of the
+            associated <code class="classname">Connection</code> object will be invoked. It is then up to
+            the implementation of this function to establish the TCP connection to guacd, perform
+            the connection handshake (most likely via an <code class="classname">InetGuacamoleSocket</code>
+            wrapped within a <code class="classname">ConfiguredGuacamoleSocket</code>), and then return a
+                <code class="classname">GuacamoleTunnel</code> which controls access to the established
+            socket.</p><p>Extensions may maintain historical record of connection use via
+                <code class="classname">ConnectionRecord</code> objects, which are exposed both at the
+                <code class="classname">Connection</code> level and across all connections via the
+                <code class="classname">UserContext</code>. Such record maintenance is optional, and it is
+            expected that most implementations will simply return empty lists.</p><div class="important"><h3 class="title">Important</h3><p>If connection state will not be tracked by the extension, and the parameters
+                associated with the connection will be known at the time the connection object is
+                created, the <code class="classname">SimpleConnection</code> implementation of
+                    <code class="classname">Connection</code> can be used to make life easier.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ext-active-connections"></a>Managing/sharing active connections</h2></div></div></div><p>After a connection has been established, its underlying
+                <code class="classname">GuacamoleTunnel</code> can be exposed by a
+                <code class="classname">UserContext</code> through the <code class="classname">Directory</code>
+            returned by <code class="methodname">getActiveConnectionDirectory()</code>. The
+                <code class="classname">ActiveConnection</code> objects accessible through this
+                <code class="classname">Directory</code> are the means by which an administrator may monitor
+            or forcibly terminate another user's connection, ultimately resulting in Guacamole
+            invoking the <code class="methodname">close()</code> function of the underlying
+                <code class="classname">GuacamoleTunnel</code>, and also serve as the basis for screen
+            sharing.</p><p>Screen sharing is implemented through the use of <code class="classname">SharingProfile</code>
+            objects, exposed through yet another <code class="classname">Directory</code> beneath the
+                <code class="classname">UserContext</code>. Each sharing profile is associated with a single
+            connection that it can be used to share, referred to as the "primary connection". If a
+            user has read access to a sharing profile associated with their current connection, that
+            sharing profile will be displayed as an option within <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">the share
+                menu of the Guacamole menu</a>.</p><p>The overall sharing process is as follows:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A user, having access to a sharing profile associated with their current
+                    active connection, clicks its option within the <a class="link" href="using-guacamole.html#client-share-menu" title="Sharing the connection">share
+                        menu</a>.</p></li><li class="listitem"><p>Guacamole locates the <code class="classname">ActiveConnection</code> and invokes its
+                        <code class="methodname">getSharingCredentials()</code> function with the
+                    identifier of the sharing profile. The contents of the returned
+                        <code class="classname">UserCredentials</code> object is used by Guacamole to
+                    generate a sharing link which can be given to other users.</p></li><li class="listitem"><p>When another user visits the sharing link, the credentials embedded in the
+                    link are passed to the authentication providers associated with each installed
+                    extension. <span class="emphasis"><em>It is up to the extension that originally provided those
+                        credentials to authenticate the user and provide them with access to the
+                        shared connection.</em></span></p></li><li class="listitem"><p>When the user attempts to connect to the shared connection, the extension
+                    establishes the connection using the ID of the connection being joined.
+                        <span class="emphasis"><em>This is not the connection identifier as dictated by
+                        guacamole-ext, but rather <a class="link" href="guacamole-protocol.html#guacamole-protocol-joining" title="Joining an existing connection">the unique ID assigned by guacd as
+                            required by the Guacamole protocol</a>.</em></span> This ID can be
+                    retrieved from a <code class="methodname">ConfiguredGuacamoleSocket</code> via
+                        <code class="methodname">getConnectionID()</code>, and can be passed through a
+                        <code class="methodname">GuacamoleConfiguration</code> through
+                        <code class="methodname">setConnectionID()</code> (instead of specifying a
+                    protocol, as would be done for a brand new connection).</p></li></ol></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-common-js.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="custom-protocols.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 21. guacamole-common-js </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 23. Adding new protocols</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/guacamole-protocol.html b/doc/1.1.0/gug/guacamole-protocol.html
new file mode 100644
index 0000000..7985419
--- /dev/null
+++ b/doc/1.1.0/gug/guacamole-protocol.html
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 18. The Guacamole protocol</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="next" href="libguac.html" title="Chapter 19. libguac" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 18. The Guacamole protocol</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="developers-guide.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="libguac.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="guacamole-protocol"></a>Chapter 18. The Guacamole protocol</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-design">Design</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-handshake">Handshake phase</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-joining">Joining an existing connection</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-drawing">Drawing</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-compositing">Compositing</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-images">Image data</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-copying-images">Copying image data between layers</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-graphical-primitives">Graphical primitives</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-layers">Buffers and layers</a></span></dt></dl></dd><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-streaming">Streams and objects</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-events">Events</a></span></dt><dt><span class="section"><a href="guacamole-protocol.html#guacamole-protocol-disconnecting">Disconnecting</a></span></dt></dl></div><a id="idm46420847424688" class="indexterm"></a><p>This chapter is an overview of the Guacamole protocol, describing its design and general
+        use. While a few instructions and their syntax will be described here, this is not an
+        exhaustive list of all available instructions. The intent is only to list the general types
+        and usage. If you are looking for the syntax or purpose of a specific instruction, consult
+        the protocol reference included with the appendices.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-design"></a>Design</h2></div></div></div><p>The Guacamole protocol consists of instructions. Each instruction is a comma-delimited
+            list followed by a terminating semicolon, where the first element of the list is the
+            instruction opcode, and all following elements are the arguments for that
+            instruction:</p><div class="informalexample"><pre class="programlisting"><em class="replaceable"><code>OPCODE</code></em>,<em class="replaceable"><code>ARG1</code></em>,<em class="replaceable"><code>ARG2</code></em>,<em class="replaceable"><code>ARG3</code></em>,<em class="replaceable"><code>...</code></em>;</pre></div><p>Each element of the list has a positive decimal integer length prefix separated by the
+            value of the element by a period. This length denotes the number of Unicode characters
+            in the value of the element, which is encoded in UTF-8:</p><div class="informalexample"><pre class="programlisting"><em class="replaceable"><code>LENGTH</code></em>.<em class="replaceable"><code>VALUE</code></em></pre></div><p>Any number of complete instructions make up a message which is sent from client to
+            server or from server to client. Client to server instructions are generally control
+            instructions (for connecting or disconnecting) and events (mouse and keyboard). Server
+            to client instructions are generally drawing instructions (caching, clipping, drawing
+            images), using the client as a remote display.</p><p>For example, a complete and valid instruction for setting the display size to 1024x768
+            would be:</p><div class="informalexample"><pre class="programlisting">4.size,1.0,4.1024,3.768;</pre></div><p>Here, the instruction would be decoded into four elements: "size", the opcode of the
+            size instruction, "0", the index of the default layer, "1024", the desired width in
+            pixels, and "768", the desired height in pixels.</p><p>The structure of the Guacamole protocol is important as it allows the protocol to be
+            streamed while also being easily parsable by JavaScript. JavaScript does have native
+            support for conceptually-similar structures like XML or JSON, but neither of those
+            formats is natively supported in a way that can be streamed; JavaScript requires the
+            entirety of the XML or JSON message to be available at the time of decoding. The
+            Guacamole protocol, on the other hand, can be parsed as it is received, and the presence
+            of length prefixes within each instruction element means that the parser can quickly
+            skip around from instruction to instruction without having to iterate over every
+            character.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-handshake"></a>Handshake phase</h2></div></div></div><p>The handshake phase is the phase of the protocol entered immediately upon connection.
+            It begins with a "select" instruction sent by the client which tells the server which
+            protocol will be loaded:</p><div class="informalexample"><pre class="programlisting">6.select,3.vnc;</pre></div><p>After receiving the "select" instruction, the server will load the associated client
+            support and respond with its protocol version and a list of accepted parameter names
+            using an "args" instruction:</p><div class="informalexample"><pre class="programlisting">4.args,13.VERSION_1_1_0,8.hostname,4.port,8.password,13.swap-red-blue,9.read-only;</pre></div><p>The protocol version is used to negotiate compatibility between differing
+            versions of client and server, allowing the two sides to negotiate the highest
+            supported version and enable or disable features associated with that version.
+            Older versions of the Guacamole Client that do not support this instruction
+            will silently ignore it as an empty connection parameter.  Valid protocol versions
+            are as follows:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Version</th><th>Value</th><th>Description</th></tr></thead><tbody><tr><td>1.0.0</td><td><code class="constant">VERSION_1_0_0</code></td><td>This is the default version and applies to any
+                            versions prior to 1.1.0.  Version 1.0.0 of the protocol
+                            does not support protocol negotiation, and requires that
+                            the handshake instructions are delivered in a certain
+                            order, and that they are present (even if empty).</td></tr><tr><td>1.1.0</td><td><code class="constant">VERSION_1_1_0</code></td><td>Protocol version 1.1.0 introduces support for
+                            protocol version negotiation, arbitrary order of the
+                            handshake instructions, and support for passing the
+                            timezone instruction during the handshake.</td></tr></tbody></table></div><p>
+        </p><p>After receiving the list of arguments, the client is required to respond with the list
+            of supported audio, video, and image mimetypes, the optimal display size and resolution,
+            and the values for all arguments available, even if blank.</p><div class="informalexample"><pre class="programlisting">
+4.size,4.1024,3.768,2.96;
+5.audio,9.audio/ogg;
+5.video;
+5.image,9.image/png,10.image/jpeg;
+8.timezone,16.America/New_York;
+7.connect,13.VERSION_1_1_0,9.localhost,4.5900,0.,0.,0.;</pre></div><p>For clarity, we've put each instruction on its own line, but in the real protocol, no
+            newlines exist between instructions. In fact, if there is anything after an instruction
+            other than the start of a new instruction, the connection is closed.</p><p>The following are valid instructions during the handshake:</p><div class="informaltable"><a id="idm46420845155632" class="indexterm"></a><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Instruction name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>audio</code></em></td><td><p>The audio codec(s) supported by the client.  In the example
+                            above the client is specifying audio/ogg as the supported codec.</p>
+                        </td></tr><tr><td><em class="parameter"><code>connect</code></em></td><td><p>This is the final instruction of the handshake, terminating
+                            the handshake and indicating that the connection should continue.
+                            This instruction has as its parameters values for the connection
+                            parameters sent by the server in the <code class="constant">args</code>
+                            instruction.  In the example above, this is connection to localhost
+                            on port 5900, with no values for the last three connection parameters.
+                        </p></td></tr><tr><td><em class="parameter"><code>image</code></em></td><td><p>The image formats that the client supports, in order of
+                            preference.  The client in the example above is supporting both PNG
+                            and JPEG.</p></td></tr><tr><td><em class="parameter"><code>timezone</code></em></td><td><p>The timezone of the client, in IANA zone key format.  More
+                            information on this instruction is available in
+                            <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>, under documentation related
+                            to the <code class="constant">timezone</code> connection parameters for the
+                            protocols that support it.</p>
+                        </td></tr><tr><td><em class="parameter"><code>video</code></em></td><td><p>The video codec(s) supported by the client.  The above example
+                            is a client that does not support any video codecs.</p></td></tr></tbody></table></div><p>The order of the instructions sent by the client in the handshake is arbitrary, with
+            the exception that the final instruction, connect, will end the handshake and attempt
+            to start the connection.</p><p>Once these instructions have been sent by the client, the server will attempt to
+            initialize the connection with the parameters received and, if successful, respond with
+            a "ready" instruction. This instruction contains the ID of the new client connection and
+            marks the beginning of the interactive phase. The ID is an arbitrary string, but is
+            guaranteed to be unique from all other active connections, as well as from the names of
+            all supported protocols:</p><div class="informalexample"><pre class="programlisting">5.ready,37.$260d01da-779b-4ee9-afc1-c16bae885cc7;</pre></div><p>The actual interactive phase begins immediately after the "ready" instruction is sent.
+            Drawing and event instructions pass back and forth until the connection is
+            closed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-joining"></a>Joining an existing connection</h3></div></div></div><p>Once the handshake phase has completed, that connection is considered active and
+                can be joined by other connections if the ID is provided instead of a protocol name
+                via the "select" instruction:</p><div class="informalexample"><pre class="programlisting">6.select,37.$260d01da-779b-4ee9-afc1-c16bae885cc7;</pre><p>The rest of the handshake phase for a joining connection is identical. Just as
+                    with a new connection, the restrictions or features which apply to the joining
+                    connection are dictated by the parameter values supplied during the
+                    handshake.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-drawing"></a>Drawing</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-compositing"></a>Compositing</h3></div></div></div><p>The Guacamole protocol provides compositing operations through the use of "channel
+                masks". The term "channel mask" is simply a description of the mechanism used while
+                designing the protocol to conceptualize and fully enumerate all possible compositing
+                operations based on four different sources of image data: source image data where
+                the destination is opaque, source image data where the destination is transparent,
+                destination image data where the source is opaque, and destination image data where
+                the source is transparent. Assigning a binary value to each of these "channels"
+                creates a unique integer ID for every possible compositing operation, where these
+                operations parallel the operations described by Porter and Duff in their paper. As
+                the HTML5 canvas tag also uses Porter/Duff to describe their compositing operations
+                (as do other graphical APIs), the Guacamole protocol is conveniently similar to the
+                compositing support already present in web browsers, with some operations not yet
+                supported. The following operations are all implemented and known to work correctly
+                in all browsers:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">B out A (0x02)</span></dt><dd><p>Clears the destination where the source is opaque, but otherwise draws
+                            nothing. This is useful for masking.</p></dd><dt><span class="term">A atop B (0x06)</span></dt><dd><p>Fills with the source where the destination is opaque only.</p></dd><dt><span class="term">A xor B (0x0A)</span></dt><dd><p>As with logical XOR. Note that this is a compositing operation, not a
+                            bitwise operation. It draws the source where the destination is
+                            transparent, and draws the destination where the source is
+                            transparent.</p></dd><dt><span class="term">B over A (0x0B)</span></dt><dd><p>What you would typically expect when drawing, but reversed. The source
+                            appears only where the destination is transparent, as if you were
+                            attempting to draw the destination over the source, rather than the
+                            source over the destination.</p></dd><dt><span class="term">A over B (0x0E)</span></dt><dd><p>The most common and sensible compositing operation, this draws the
+                            source everywhere, but includes the destination where the source is
+                            transparent.</p></dd><dt><span class="term">A + B (0x0F)</span></dt><dd><p>Simply adds the components of the source image to the destination
+                            image, capping the result at pure white.</p></dd></dl></div><p>The following operations are all implemented, but may work incorrectly in WebKit
+                browsers which always include the destination image where the source is
+                transparent:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">B in A (0x01)</span></dt><dd><p>Draws the destination only where the source is opaque, clearing
+                            anywhere the source or destination are transparent.</p></dd><dt><span class="term">A in B (0x04)</span></dt><dd><p>Draws the source only where the destination is opaque, clearing
+                            anywhere the source or destination are transparent.</p></dd><dt><span class="term">A out B (0x08)</span></dt><dd><p>Draws the source only where the destination is transparent, clearing
+                            anywhere the source or destination are opaque.</p></dd><dt><span class="term">B atop A (0x09)</span></dt><dd><p>Fills with the destination where the source is opaque only.</p></dd><dt><span class="term">A (0x0C)</span></dt><dd><p>Fills with the source, ignoring the destination entirely.</p></dd></dl></div><p>The following operations are defined, but not implemented, and do not exist as
+                operations within the HTML5 canvas:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Clear (0x00)</span></dt><dd><p>Clears all existing image data in the destination.</p></dd><dt><span class="term">B (0x03)</span></dt><dd><p>Does nothing.</p></dd><dt><span class="term">A xnor B (0x05)</span></dt><dd><p>Adds the source to the destination where the destination or source are
+                            opaque, clearing anywhere the source or destination are transparent.
+                            This is similar to A + B except the aspect of transparency is also
+                            additive.</p></dd><dt><span class="term">(A + B) atop B (0x07)</span></dt><dd><p>Adds the source to the destination where the destination is opaque,
+                            preserving the destination otherwise.</p></dd><dt><span class="term">(A + B) atop A (0x0D)</span></dt><dd><p>Adds the destination to the source where the source is opaque, copying
+                            the source otherwise.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-images"></a>Image data</h3></div></div></div><p>The Guacamole protocol, like many remote desktop protocols, provides a method of
+                sending an arbitrary rectangle of image data and placing it either within a buffer
+                or in a visible rectangle of the screen. Raw image data in the Guacamole protocol is
+                streamed as PNG, JPEG, or WebP data over a stream allocated with the "img"
+                instruction. Depending on the format used, image updates sent in this manner can be
+                RGB or RGBA (alpha transparency) and are automatically palettized if sent using
+                libguac. The streaming system used for image data is generalized and used by
+                Guacamole for other types of streams, including audio and file transfer. For more
+                information about streams in the Guacamole protocol, see <a class="xref" href="guacamole-protocol.html#guacamole-protocol-streaming" title="Streams and objects">the section called “Streams and objects”</a>.</p><p>Image data can be sent to any specified rectangle within a layer or buffer.
+                Sending the data to a layer means that the image becomes immediately visible, while
+                sending the data to a buffer allows that data to be reused later.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-copying-images"></a>Copying image data between layers</h3></div></div></div><p>Image data can be copied from one layer or buffer into another layer or buffer.
+                This is often used for scrolling (where most of the result of the graphical update
+                is identical to the previous state) or for caching parts of an image.</p><p>Both VNC and RDP provide a means of copying a region of screen data and placing it
+                somewhere else within the same screen. RDP provides an additional means of copying
+                data to a cache, or recalling data from that cache and placing it on the screen.
+                Guacamole takes this concept and reduces it further, as both on-screen and
+                off-screen image storage is the same. The Guacamole "copy" instruction allows you to
+                copy a rectangle of image data, and place it within another layer, whether that
+                layer is the same as the source layer, a different visible layer, or an off-screen
+                buffer.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-graphical-primitives"></a>Graphical primitives</h3></div></div></div><p>The Guacamole protocol provides basic graphics operations similar to those of
+                Cairo or the HTML5 canvas. In many cases, these primitives are useful for remote
+                drawing, and desirable in that they take up less bandwidth than sending
+                corresponding PNG images. Beware that excessive use of primitives leads to an
+                increase in client-side processing, which may reduce the performance of a connected
+                client, especially if that client is on a lower-performance machine like a mobile
+                phone or tablet.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-protocol-layers"></a>Buffers and layers</h3></div></div></div><p>All drawing operations in the Guacamole protocol affect a layer, and each layer
+                has an integer index which identifies it. When this integer is negative, the layer
+                is not visible, and can be used for storage or caching of image data. In this case,
+                the layer is referred to within the code and within documentation as a "buffer".
+                Layers are created automatically when they are first referenced in an
+                instruction.</p><p>There is one main layer which is always present called the "default layer". This
+                layer has an index of 0. Resizing this layer resizes the entire remote display.
+                Other layers default to the size of the default layer upon creation, while buffers
+                are always created with a size of 0x0, automatically resizing themselves to fit
+                their contents.</p><p>Non-buffer layers can be moved and nested within each other. In this way, layers
+                provide a simple means of hardware-accelerated compositing. If you need a window to
+                appear above others, or you have some object which will be moving or you need the
+                data beneath it automatically preserved, a layer is a good way of accomplishing
+                this. If a layer is nested within another layer, its position is relative to that of
+                its parent. When the parent is moved or reordered, the child moves with it. If the
+                child extends beyond the parents bounds, it will be clipped.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-streaming"></a>Streams and objects</h2></div></div></div><p>Guacamole supports transfer of clipboard contents, audio, video, and image data, as
+            well as files and arbitrary named pipes.</p><p>Streams are allocated directly with instructions that associate the new stream with
+            particular semantics and metadata, such as the "audio" or "video" instructions used for
+            playing media, the "file" instruction used for file transfer, and the "pipe" instruction
+            for transfer of completely  arbitrary data between client and server. In some cases, the
+            availability and semantics of streams may be explicitly advertised using structured sets
+            of named streams known as "objects".</p><p>Once a stream is allocated, data is sent along the stream in chunks using "blob"
+            instructions, which may be acknowledged by the receiving end by "ack" instructions. The
+            end of the stream is finally signalled with an "end" instruction.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-events"></a>Events</h2></div></div></div><p>When something changes on either side, client or server, such as a key being pressed,
+            the mouse moving, or clipboard data changing, an instruction describing the event is
+            sent.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-protocol-disconnecting"></a>Disconnecting</h2></div></div></div><p>The server and client can end the connection at any time. There is no requirement for
+            the server or the client to communicate that the connection needs to terminate. When the
+            client or server wish to end the connection, and the reason is known, they can use the
+            "disconnect" or "error" instructions.</p><p>The disconnect instruction is sent by the client when it is disconnecting. This is
+            largely out of politeness, and the server must be written knowing that the disconnect
+            instruction may not always be sent in time (guacd is written this way).</p><p>If the client does something wrong, or the server detects a problem with the client
+            plugin, the server sends an error instruction, including a description of the problem in
+            the parameters. This informs the client that the connection is being closed.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="developers-guide.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="libguac.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Part II. Developer's Guide </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 19. libguac</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/gug.css b/doc/1.1.0/gug/gug.css
new file mode 100644
index 0000000..370de3e
--- /dev/null
+++ b/doc/1.1.0/gug/gug.css
@@ -0,0 +1,179 @@
+
+body {
+
+    color: black;
+    background: white;
+
+    font-family: 'FreeSans', 'Liberation Sans', 'Arial', 'Helvetica', sans-serif;
+    text-align: justify;
+    text-rendering: optimizeLegibility;
+    line-height: 125%;
+
+    margin: 0;
+    padding: 0;
+
+}
+
+/* Green links */
+a[href]         { color: #080; }
+a[href]:visited { color: #884; }
+
+div#content {
+
+    margin-top: 0;
+    margin-bottom: 0;
+    margin-left: auto;
+    margin-right: auto;
+
+    max-width: 25cm;
+    padding: 1em;
+
+}
+
+/* DOCBOOK */
+
+.navheader hr, .navfooter hr {
+    border: 0;
+    border-bottom: 1px solid black;
+}
+
+.chapter div.toc,
+.appendix div.toc {
+    border: 1px solid #BCBCBC;
+    background: #FBFBFB;
+    margin: 2em;
+    padding: 0 1em;
+    font-size: 0.75em;
+}
+
+.programlisting, .screen {
+    padding: 1em;
+}
+
+.replaceable {
+    color: #008;
+    background: rgba(0, 0, 0, 0.05);
+    border: 1px solid rgba(0, 0, 0, 0.05);
+    font-style: normal;
+    padding: 0 0.25em;
+}
+
+pre .emphasis em {
+    font-style: normal;
+    font-weight: bold;
+}
+
+.book .titlepage {
+    text-align: center;
+    padding: 2em;
+}
+
+.titlepage hr {
+    display: none;
+}
+
+.titlepage .legalnotice {
+    text-align: left;
+}
+
+.mediaobject {
+    text-align: center;
+    float: none;
+    margin: 1em;
+}
+
+.mediaobject img {
+    width: auto;
+    max-width: 100%;
+}
+
+.screenshot img {
+    border: 1px solid black;
+}
+
+.caption {
+    font-size: 0.8em;
+    font-style: italic;
+}
+
+.navfooter, .section {
+    clear: both;
+}
+
+.table-contents, .informaltable {
+    margin: 1em;
+}
+
+.table-contents table,
+.informaltable table {
+    border: 1px solid #BCBCBC;
+    border-collapse: collapse;
+    font-size: 10pt;
+}
+
+.table-contents th, .informaltable th {
+    background: #FBFBFB;
+}
+
+.table-contents td, .table-contents th,
+.informaltable td, .informaltable th {
+    border: 1px solid #BCBCBC;
+    padding: 0.5em;
+    min-width: 1.5in;
+}
+
+.table-contents table table,
+.informaltable table table {
+    border: none;
+}
+
+.table-contents table table td,
+.table-contents table table th,
+.informaltable table table td,
+.informaltable table table th {
+    background: none;
+    padding: 0.25em;
+}
+
+dl.variablelist {
+    margin-left: 1em;
+}
+
+.variablelist .term {
+    font-weight: bold;
+}
+
+blockquote {
+    border-left: 1px solid rgba(0, 0, 0, 0.25);
+    padding: 1px 1em;
+    font-style: oblique;
+    color: rgba(0, 0, 0, 0.75);
+}
+
+div.important {
+    background: #FFFFE8;
+    border: 1px solid rgba(0, 0, 0, 0.25);
+    padding: 0 1em;
+    margin: 2em;
+}
+
+/* Printable styles */
+
+@media print {
+
+    .navheader, .navfooter, .chapter .toc {
+        display: none
+    }
+
+    body {
+        font-size: 10pt;
+    }
+
+    .chapter > .titlepage {
+        margin: 2em 0;
+        font-size: 1.5em;
+        text-align: center; 
+    }
+
+}
+
diff --git a/doc/1.1.0/gug/header-auth.html b/doc/1.1.0/gug/header-auth.html
new file mode 100644
index 0000000..1a56e1d
--- /dev/null
+++ b/doc/1.1.0/gug/header-auth.html
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 10. HTTP header authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="totp-auth.html" title="Chapter 9. TOTP two-factor authentication" /><link rel="next" href="cas-auth.html" title="Chapter 11. CAS Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 10. HTTP header authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="totp-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="cas-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="header-auth"></a>Chapter 10. HTTP header authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="header-auth.html#header-downloading">Downloading the HTTP header authentication extension</a></span></dt><dt><span class="section"><a href="header-auth.html#installing-header-auth">Installing HTTP header authentication</a></span></dt><dd><dl><dt><span class="section"><a href="header-auth.html#guac-header-config">Configuring Guacamole for HTTP header authentication</a></span></dt><dt><span class="section"><a href="header-auth.html#completing-header-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420849422992" class="indexterm"></a><p>Guacamole supports delegating authentication to an arbitrary external service, relying on
+        the presence of an HTTP header which contains the username of the authenticated user. This
+        authentication method must be layered on top of some other authentication extension, such as
+        those available from the main project website, in order to provide access to actual
+        connections.</p><div class="important"><h3 class="title">Important</h3><p>All external requests must be properly sanitized if this extension is used. The chosen
+            HTTP header must be stripped from untrusted requests, such that the authentication
+            service is the only possible source of that header. <span class="emphasis"><em>If such sanitization is
+                not performed, it will be trivial for malicious users to add this header manually,
+                and thus gain unrestricted access.</em></span></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="header-downloading"></a>Downloading the HTTP header authentication extension</h2></div></div></div><p>The HTTP header authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The HTTP header authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing only the extension itself,
+                <code class="filename">guacamole-auth-header-1.1.0.jar</code>, which must
+            ultimately be placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-header-auth"></a>Installing HTTP header authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the HTTP header authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-header-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use HTTP header authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-header-config"></a>Configuring Guacamole for HTTP header authentication</h3></div></div></div><a id="idm46420848418672" class="indexterm"></a><a id="idm46420849597792" class="indexterm"></a><p>The HTTP header authentication extension provides only one configuration property,
+                and it is optional. By default, the extension will pull the username of the
+                authenticated user from the <code class="constant">REMOTE_USER</code> header, if present. If
+                your authentication system uses a different HTTP header, you will need to override
+                this by specifying the <span class="property">http-auth-header</span> property within <a class="link" href="configuring-guacamole.html#initial-setup" title="guacamole.properties"><code class="filename">guacamole.properties</code></a>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">http-auth-header</span></span></dt><dd><p>The HTTP header containing the username of the authenticated user.
+                            This property is optional. If not specified,
+                                <code class="constant">REMOTE_USER</code> will be used by default.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-header-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before HTTP header authentication can be used. <span class="emphasis"><em>Doing this will
+                    disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="totp-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="cas-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 9. TOTP two-factor authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 11. CAS Authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/images/duo-add-guacamole.png b/doc/1.1.0/gug/images/duo-add-guacamole.png
new file mode 100644
index 0000000..e90039c
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-add-guacamole.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-auth-factor-1.png b/doc/1.1.0/gug/images/duo-auth-factor-1.png
new file mode 100644
index 0000000..3a82976
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-auth-factor-1.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-auth-factor-2.png b/doc/1.1.0/gug/images/duo-auth-factor-2.png
new file mode 100644
index 0000000..8c35648
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-auth-factor-2.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-copy-details.png b/doc/1.1.0/gug/images/duo-copy-details.png
new file mode 100644
index 0000000..d7faa7a
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-copy-details.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/duo-rename-guacamole.png b/doc/1.1.0/gug/images/duo-rename-guacamole.png
new file mode 100644
index 0000000..7c63d4e
--- /dev/null
+++ b/doc/1.1.0/gug/images/duo-rename-guacamole.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-connection.png b/doc/1.1.0/gug/images/edit-connection.png
new file mode 100644
index 0000000..5d5f023
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-connection.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-group-memberships.png b/doc/1.1.0/gug/images/edit-group-memberships.png
new file mode 100644
index 0000000..3845373
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-group-memberships.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-group.png b/doc/1.1.0/gug/images/edit-group.png
new file mode 100644
index 0000000..458aaac
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-group.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-sharing-profile.png b/doc/1.1.0/gug/images/edit-sharing-profile.png
new file mode 100644
index 0000000..77d34f3
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-sharing-profile.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-user-group.png b/doc/1.1.0/gug/images/edit-user-group.png
new file mode 100644
index 0000000..16dbae8
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-user-group.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-user-membership.png b/doc/1.1.0/gug/images/edit-user-membership.png
new file mode 100644
index 0000000..ef7d5d9
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-user-membership.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/edit-user.png b/doc/1.1.0/gug/images/edit-user.png
new file mode 100644
index 0000000..eb53c40
--- /dev/null
+++ b/doc/1.1.0/gug/images/edit-user.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/file-browser.png b/doc/1.1.0/gug/images/file-browser.png
new file mode 100644
index 0000000..f531374
--- /dev/null
+++ b/doc/1.1.0/gug/images/file-browser.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/file-transfers.png b/doc/1.1.0/gug/images/file-transfers.png
new file mode 100644
index 0000000..3566bc5
--- /dev/null
+++ b/doc/1.1.0/gug/images/file-transfers.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-arch.png b/doc/1.1.0/gug/images/guac-arch.png
new file mode 100644
index 0000000..a38b12c
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-arch.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-menu-disconnect.png b/doc/1.1.0/gug/images/guac-menu-disconnect.png
new file mode 100644
index 0000000..4875712
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-menu-disconnect.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-menu-share-link.png b/doc/1.1.0/gug/images/guac-menu-share-link.png
new file mode 100644
index 0000000..eedebbb
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-menu-share-link.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guac-menu-share.png b/doc/1.1.0/gug/images/guac-menu-share.png
new file mode 100644
index 0000000..8ceaead
--- /dev/null
+++ b/doc/1.1.0/gug/images/guac-menu-share.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-client-interface.png b/doc/1.1.0/gug/images/guacamole-client-interface.png
new file mode 100644
index 0000000..57c1dc7
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-client-interface.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-drive-download.png b/doc/1.1.0/gug/images/guacamole-drive-download.png
new file mode 100644
index 0000000..1b16ca0
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-drive-download.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-drive.png b/doc/1.1.0/gug/images/guacamole-drive.png
new file mode 100644
index 0000000..8395e4b
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-drive.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-home-screen.png b/doc/1.1.0/gug/images/guacamole-home-screen.png
new file mode 100644
index 0000000..ae95880
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-home-screen.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-preferences.png b/doc/1.1.0/gug/images/guacamole-preferences.png
new file mode 100644
index 0000000..b751e8d
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-preferences.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/guacamole-settings-sections.png b/doc/1.1.0/gug/images/guacamole-settings-sections.png
new file mode 100644
index 0000000..18055bb
--- /dev/null
+++ b/doc/1.1.0/gug/images/guacamole-settings-sections.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-button.png b/doc/1.1.0/gug/images/manage-button.png
new file mode 100644
index 0000000..c1d8cf0
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-button.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-connections.png b/doc/1.1.0/gug/images/manage-connections.png
new file mode 100644
index 0000000..76e4c2f
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-connections.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-groups.png b/doc/1.1.0/gug/images/manage-groups.png
new file mode 100644
index 0000000..b7126f5
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-groups.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-history.png b/doc/1.1.0/gug/images/manage-history.png
new file mode 100644
index 0000000..c25ec5b
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-history.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-sessions.png b/doc/1.1.0/gug/images/manage-sessions.png
new file mode 100644
index 0000000..c6d8325
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-sessions.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/manage-users.png b/doc/1.1.0/gug/images/manage-users.png
new file mode 100644
index 0000000..d00b71c
--- /dev/null
+++ b/doc/1.1.0/gug/images/manage-users.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/session-filter-example-1.png b/doc/1.1.0/gug/images/session-filter-example-1.png
new file mode 100644
index 0000000..a72bbb6
--- /dev/null
+++ b/doc/1.1.0/gug/images/session-filter-example-1.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/session-filter-example-2.png b/doc/1.1.0/gug/images/session-filter-example-2.png
new file mode 100644
index 0000000..11be992
--- /dev/null
+++ b/doc/1.1.0/gug/images/session-filter-example-2.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-auth-factor-1.png b/doc/1.1.0/gug/images/totp-auth-factor-1.png
new file mode 100644
index 0000000..3a82976
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-auth-factor-1.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-auth-factor-2.png b/doc/1.1.0/gug/images/totp-auth-factor-2.png
new file mode 100644
index 0000000..c2a649f
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-auth-factor-2.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-enroll-detail.png b/doc/1.1.0/gug/images/totp-enroll-detail.png
new file mode 100644
index 0000000..afde141
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-enroll-detail.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/totp-enroll.png b/doc/1.1.0/gug/images/totp-enroll.png
new file mode 100644
index 0000000..97474b6
--- /dev/null
+++ b/doc/1.1.0/gug/images/totp-enroll.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/touchpad.png b/doc/1.1.0/gug/images/touchpad.png
new file mode 100644
index 0000000..fa9df42
--- /dev/null
+++ b/doc/1.1.0/gug/images/touchpad.png
Binary files differ
diff --git a/doc/1.1.0/gug/images/touchscreen.png b/doc/1.1.0/gug/images/touchscreen.png
new file mode 100644
index 0000000..85d669c
--- /dev/null
+++ b/doc/1.1.0/gug/images/touchscreen.png
Binary files differ
diff --git a/doc/1.1.0/gug/index.html b/doc/1.1.0/gug/index.html
new file mode 100644
index 0000000..7ae5167
--- /dev/null
+++ b/doc/1.1.0/gug/index.html
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Guacamole Manual</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="next" href="preface.html" title="Introduction" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Guacamole Manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="preface.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a id="idm46420850062688"></a>Guacamole Manual</h1></div><div><div class="legalnotice"><a id="idm46420857822688"></a><p>Licensed to the Apache Software Foundation (ASF) under one or more contributor
+                license agreements. See the <a class="link" href="https://raw.githubusercontent.com/apache/guacamole-manual/master/NOTICE" target="_top"><code class="filename">NOTICE</code></a> file distributed with this work for
+                additional information regarding copyright ownership. The ASF licenses this file to
+                you under the Apache License, Version 2.0 (the "License"); you may not use this file
+                except in compliance with the License. You may obtain a copy of the License
+                at:</p><p><a class="link" href="http://www.apache.org/licenses/LICENSE-2.0" target="_top"><code class="uri">http://www.apache.org/licenses/LICENSE-2.0</code></a></p><p>Unless required by applicable law or agreed to in writing, software distributed
+                under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+                CONDITIONS OF ANY KIND, either express or implied. See the License for the specific
+                language governing permissions and limitations under the License.</p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="preface"><a href="preface.html">Introduction</a></span></dt><dt><span class="part"><a href="users-guide.html">I. User's Guide</a></span></dt><dd><dl><dt><span class="chapter"><a href="guacamole-architecture.html">1. Implementation and architecture</a></span></dt><dt><span class="chapter"><a href="installing-guacamole.html">2. Installing Guacamole natively</a></span></dt><dt><span class="chapter"><a href="guacamole-docker.html">3. Installing Guacamole with Docker</a></span></dt><dt><span class="chapter"><a href="proxying-guacamole.html">4. Proxying Guacamole</a></span></dt><dt><span class="chapter"><a href="configuring-guacamole.html">5. Configuring Guacamole</a></span></dt><dt><span class="chapter"><a href="jdbc-auth.html">6. Database authentication</a></span></dt><dt><span class="chapter"><a href="ldap-auth.html">7. LDAP authentication</a></span></dt><dt><span class="chapter"><a href="duo-auth.html">8. Duo two-factor authentication</a></span></dt><dt><span class="chapter"><a href="totp-auth.html">9. TOTP two-factor authentication</a></span></dt><dt><span class="chapter"><a href="header-auth.html">10. HTTP header authentication</a></span></dt><dt><span class="chapter"><a href="cas-auth.html">11. CAS Authentication</a></span></dt><dt><span class="chapter"><a href="openid-auth.html">12. OpenID Connect Authentication</a></span></dt><dt><span class="chapter"><a href="radius-auth.html">13. RADIUS Authentication</a></span></dt><dt><span class="chapter"><a href="adhoc-connections.html">14. Ad-hoc Connections</a></span></dt><dt><span class="chapter"><a href="using-guacamole.html">15. Using Guacamole</a></span></dt><dt><span class="chapter"><a href="administration.html">16. Administration</a></span></dt><dt><span class="chapter"><a href="troubleshooting.html">17. Troubleshooting</a></span></dt></dl></dd><dt><span class="part"><a href="developers-guide.html">II. Developer's Guide</a></span></dt><dd><dl><dt><span class="chapter"><a href="guacamole-protocol.html">18. The Guacamole protocol</a></span></dt><dt><span class="chapter"><a href="libguac.html">19. libguac</a></span></dt><dt><span class="chapter"><a href="guacamole-common.html">20. <span class="package">guacamole-common</span></a></span></dt><dt><span class="chapter"><a href="guacamole-common-js.html">21. guacamole-common-js</a></span></dt><dt><span class="chapter"><a href="guacamole-ext.html">22. guacamole-ext</a></span></dt><dt><span class="chapter"><a href="custom-protocols.html">23. Adding new protocols</a></span></dt><dt><span class="chapter"><a href="custom-auth.html">24. Custom authentication</a></span></dt><dt><span class="chapter"><a href="event-listeners.html">25. Event listeners</a></span></dt><dt><span class="chapter"><a href="writing-you-own-guacamole-app.html">26. Writing your own Guacamole application</a></span></dt></dl></dd><dt><span class="part"><a href="appendices.html">III. Appendices</a></span></dt><dd><dl><dt><span class="appendix"><a href="faq.html">A. FAQ</a></span></dt><dt><span class="appendix"><a href="protocol-reference.html">B. Guacamole protocol reference</a></span></dt><dt><span class="index"><a href="book-index.html">Index</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="preface.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Introduction</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/installing-guacamole.html b/doc/1.1.0/gug/installing-guacamole.html
new file mode 100644
index 0000000..4f968ec
--- /dev/null
+++ b/doc/1.1.0/gug/installing-guacamole.html
@@ -0,0 +1,454 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 2. Installing Guacamole natively</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="guacamole-architecture.html" title="Chapter 1. Implementation and architecture" /><link rel="next" href="guacamole-docker.html" title="Chapter 3. Installing Guacamole with Docker" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 2. Installing Guacamole natively</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-architecture.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-docker.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="installing-guacamole"></a>Chapter 2. Installing Guacamole natively</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-server">Building <span class="package">guacamole-server</span></a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#required-dependencies">Required dependencies</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#optional-dependencies">Optional dependencies</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-source">Obtaining the source code</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-build-process">The build process</a></span></dt><dt><span class="section"><a href="installing-guacamole.html#guacamole-server-installation">Installation</a></span></dt></dl></dd><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-client"><span class="package">guacamole-client</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#idm46420848897680">What about WebSocket?</a></span></dt></dl></dd></dl></div><a id="idm46420849611936" class="indexterm"></a><a id="idm46420849611040" class="indexterm"></a><p>Guacamole is separated into two pieces: <span class="package">guacamole-server</span>, which
+        provides the <span class="package">guacd</span> proxy and related libraries, and
+            <span class="package">guacamole-client</span>, which provides the client to be served by your
+        servlet container, usually <a class="link" href="http://tomcat.apache.org/" target="_top">Tomcat</a>.</p><p><span class="package">guacamole-client</span> is available in binary form, but
+            <span class="package">guacamole-server</span> must be built from source. Don't be discouraged:
+        building the components of Guacamole from source is <span class="emphasis"><em>not</em></span> as difficult as
+        it sounds, and the build process is automated. You just need to be sure you have the
+        necessary tools installed ahead of time. With the necessary dependencies in place, building
+        Guacamole only takes a few minutes.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="building-guacamole-server"></a>Building <span class="package">guacamole-server</span></h2></div></div></div><a id="idm46420849572592" class="indexterm"></a><a id="idm46420849571120" class="indexterm"></a><a id="idm46420849569776" class="indexterm"></a><a id="idm46420849568432" class="indexterm"></a><a id="idm46420849567088" class="indexterm"></a><a id="idm46420849565744" class="indexterm"></a><a id="idm46420849564400" class="indexterm"></a><a id="idm46420849562928" class="indexterm"></a><a id="idm46420849561456" class="indexterm"></a><a id="idm46420849559984" class="indexterm"></a><a id="idm46420849558512" class="indexterm"></a><a id="idm46420849557072" class="indexterm"></a><p><span class="package">guacamole-server</span> contains all the native, server-side components
+            required by Guacamole to connect to remote desktops. It provides a common C library,
+                <span class="package">libguac</span>, which all other native components depend on, as well as
+            separate libraries for each supported protocol, and <span class="package">guacd</span>, the heart
+            of Guacamole.</p><p><span class="package">guacd</span> is the proxy daemon that runs on your Guacamole server,
+            accepts users' connections that are tunneled through the Guacamole web application, and
+            then connects to remote desktops on their behalf. Building <span class="package">guacd</span>
+            creates an executable called <code class="filename">guacd</code> which can be run manually or, if
+            you wish, automatically when your computer starts up.</p><p>To build <span class="package">guacamole-server</span>, you will need a C compiler (such as
+                <span class="package">gcc</span>) and the libraries that <span class="package">guacamole-server</span>
+            depends on. Some dependencies are absolutely required, while others are optional. The
+            presence of optional dependencies enables additional features.</p><div class="important"><h3 class="title">Important</h3><p>Many Linux distributions separate library packages into binary and "development"
+                packages; <span class="emphasis"><em>you will need to install the development packages</em></span>.
+                These will usually end in a "-dev" or "-devel" suffix.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="required-dependencies"></a>Required dependencies</h3></div></div></div><p>In order to build <span class="package">guacamole-server</span>, you will need
+                    <span class="package">Cairo</span>, <span class="package">libjpeg</span>, <span class="package">libpng</span>,
+                and the OSSP UUID library. These libraries are strictly required <span class="emphasis"><em>in all
+                    cases</em></span> - Guacamole cannot be built without them.</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="lib-name" /><col class="features" /></colgroup><thead><tr><th>Library name</th><th>Features</th></tr></thead><tbody><tr><td><a class="link" href="http://cairographics.org/" target="_top">Cairo</a></td><td>
+                                <p>Cairo is used by libguac for graphics rendering. Guacamole
+                                    cannot function without Cairo installed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libcairo2-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">cairo-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://libjpeg-turbo.virtualgl.org/" target="_top">libjpeg-turbo</a></td><td>
+                                <p>libjpeg-turbo is used by libguac to provide JPEG support.
+                                    Guacamole will not build without this library present:</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian package</th><td><span class="package">libjpeg62-turbo-dev</span></td></tr><tr><th>Ubuntu package</th><td><span class="package">libjpeg-turbo8-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libjpeg-turbo-devel</span></td></tr></tbody></table></div>
+                                <p>If libjpeg-turbo is unavailable on your platform, and you do
+                                    not wish to build it from source, <a class="link" href="http://www.ijg.org/" target="_top">libjpeg</a> will work as
+                                    well, though it will not be quite as fast:</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libjpeg62-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libjpeg-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.libpng.org/pub/png/libpng.html" target="_top">libpng</a></td><td>
+                                <p>libpng is used by libguac to write PNG images, the core image
+                                    type used by the Guacamole protocol. Guacamole cannot function
+                                    without libpng.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpng12-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libpng-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://www.gnu.org/software/libtool/manual/libtool.html" target="_top">libtool</a></td><td>
+                                <p>libtool is used during the build process. 
+                                libtool creates compiled libraries needed for Guacamole.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libtool-bin</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libtool</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.ossp.org/pkg/lib/uuid/" target="_top">OSSP
+                                    UUID</a></td><td>
+                                <p>OSSP UUID is used by libguac to assign unique IDs to each
+                                    Guacamole connection. These unique IDs are the basis for
+                                    connection sharing support.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libossp-uuid-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">uuid-devel</span></td></tr></tbody></table></div>
+                            </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="optional-dependencies"></a>Optional dependencies</h3></div></div></div><p>The optional dependencies of Guacamole dictate which parts of
+                    <span class="package">guacamole-server</span> will be built. This includes the support for
+                various remote desktop protocols, as well as any additional features of those
+                protocols:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>VNC support depends on the <span class="package">libvncclient</span> library, which
+                        is part of <span class="package">libVNCServer</span>.</p></li><li class="listitem"><p>RDP support depends on a recent version of <span class="package">FreeRDP</span> (1.0
+                        or higher, but please <a class="link" href="https://github.com/FreeRDP/FreeRDP/issues/2839" target="_top">not a
+                            non-release version from git</a>).</p></li><li class="listitem"><p>SSH support depends on <span class="package">libssh2</span>, <span class="package">OpenSSL</span>
+                        and <span class="package">Pango</span> (a font rendering and text layout library, used
+                        by Guacamole's built-in terminal emulator).</p></li><li class="listitem"><p>Telnet depends on <span class="package">libtelnet</span> and
+                            <span class="package">Pango</span>.</p></li><li class="listitem"><p>Kubernetes support depends on <span class="package">libwebsockets</span>,
+                            <span class="package">OpenSSL</span>, and <span class="package">Pango</span>.</p></li></ul></div><p>The <span class="command"><strong>guacenc</strong></span> utility, provided by
+                    <span class="package">guacamole-server</span> to translate screen recordings into video,
+                depends on FFmpeg, and will only be built if at least the
+                    <span class="package">libavcodec</span>, <span class="package">libavutil</span>, and
+                    <span class="package">libswscale</span> libraries provided by FFmpeg are installed.</p><div class="important"><h3 class="title">Important</h3><p>If you lack these dependencies, <span class="emphasis"><em>then the features or protocols which
+                        depend on them will not be enabled</em></span>. Please read this section
+                    carefully before deciding not to install an optional dependency.</p></div><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="lib-name" /><col class="features" /></colgroup><thead><tr><th>Library name</th><th>Features</th></tr></thead><tbody><tr><td><a class="link" href="https://ffmpeg.org/" target="_top">FFmpeg</a></td><td>
+                                <p>The <span class="package">libavcodec</span>,
+                                        <span class="package">libavutil</span>, and
+                                        <span class="package">libswscale</span> libraries provided by FFmpeg
+                                    are used by <span class="command"><strong>guacenc</strong></span> to encode video streams
+                                    when translating recordings of Guacamole sessions. Without
+                                    FFmpeg, the <span class="command"><strong>guacenc</strong></span> utility will simply not
+                                    be built.</p>
+                                <p>If you do not wish to make graphical recordings of Guacamole
+                                    sessions, or do not wish to translate such recordings into
+                                    video, then FFmpeg is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td>
+                                                  <p><span class="package">libavcodec-dev</span>,
+                                                  <span class="package">libavutil-dev</span>,
+                                                  <span class="package">libswscale-dev</span></p>
+                                                </td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">ffmpeg-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.freerdp.com/" target="_top">FreeRDP</a></td><td>
+                                <p>FreeRDP 2.0.0 or later is required for RDP support. If you do
+                                    not wish to build RDP support, this library is not
+                                    needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">freerdp2-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">freerdp-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.pango.org/" target="_top">Pango</a></td><td>
+                                <p>Pango is a text layout library which Guacamole uses to render
+                                    text for protocols that require a terminal (Kubernetes, SSH, and
+                                    telnet). If you do not wish to build any terminal-based protocol
+                                    support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpango1.0-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">pango-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.libssh2.org/" target="_top">libssh2</a></td><td>
+                                <p>libssh2 is required for SSH support. If you do not wish to
+                                    build SSH support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libssh2-1-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libssh2-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://github.com/seanmiddleditch/libtelnet" target="_top">libtelnet</a></td><td>
+                                <p>libtelnet is required for telnet support. If you do not wish
+                                    to build telnet support, this library is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libtelnet-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libtelnet-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://libvnc.github.io/" target="_top">libVNCServer</a></td><td>
+                                <p>libVNCServer provides libvncclient, which is required for VNC
+                                    support. If you do not wish to build VNC support, this library
+                                    is not needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libvncserver-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libvncserver-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://libwebsockets.org/" target="_top">libwebsockets</a></td><td>
+                                <p>libwebsockets is required for Kubernetes support. If you do
+                                    not wish to build Kubernetes support, this library is not
+                                    needed.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libwebsockets-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libwebsockets-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://www.freedesktop.org/wiki/Software/PulseAudio/" target="_top">PulseAudio</a></td><td>
+                                <p>PulseAudio provides libpulse, which is used by Guacamole's VNC
+                                    support to provide experimental audio support. If you are not
+                                    going to be using the experimental audio support for VNC, you do
+                                    not need this library.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libpulse-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">pulseaudio-libs-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://www.openssl.org/" target="_top">OpenSSL</a></td><td>
+                                <p>OpenSSL provides support for SSL and TLS - two common
+                                    encryption schemes that make up the majority of encrypted web
+                                    traffic.</p>
+                                <p>If you have libssl installed, guacd will be built with SSL
+                                    support, allowing communication between the web application and
+                                    guacd to be encrypted. This library is also required for SSH
+                                    support, for manipulating public/private keys, and for
+                                    Kubernetes support, for SSL/TLS connections to the Kubernetes
+                                    server.</p>
+                                <p>Without SSL support, there will be no option to encrypt
+                                    communication to guacd, and support for SSH and Kubernetes
+                                    cannot be built.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libssl-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">openssl-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="http://xiph.org/vorbis/" target="_top">libvorbis</a></td><td>
+                                <p>libvorbis provides support for Ogg Vorbis - a free and open
+                                    standard for sound compression. If installed, libguac will be
+                                    built with support for Ogg Vorbis, and protocols supporting
+                                    audio will use Ogg Vorbis compression when possible.</p>
+                                <p>Otherwise, sound will only be encoded as WAV (uncompressed),
+                                    and will only be available if your browser also supports
+                                    WAV.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libvorbis-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libvorbis-devel</span></td></tr></tbody></table></div>
+                            </td></tr><tr><td><a class="link" href="https://developers.google.com/speed/webp/" target="_top">libwebp</a></td><td>
+                                <p>libwebp is used by libguac to write WebP images. Though
+                                    support for WebP is not mandated by the Guacamole protocol, WebP
+                                    images will be used if supported by both the browser and by
+                                    libguac.</p>
+                                <p>Lacking WebP support, Guacamole will simply use JPEG in cases
+                                    that it would have preferred WebP.</p>
+                                <div class="informaltable"><table class="informaltable" border="0"><colgroup><col class="c1" /><col class="c2" /></colgroup><tbody><tr><th>Debian / Ubuntu package</th><td><span class="package">libwebp-dev</span></td></tr><tr><th>Fedora / CentOS / RHEL package</th><td><span class="package">libwebp-devel</span></td></tr></tbody></table></div>
+                            </td></tr></tbody></table></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-source"></a>Obtaining the source code</h3></div></div></div><p>You can obtain a copy of the <span class="package">guacamole-server</span> source from the
+                Guacamole project web site. These releases are stable snapshots of the latest code
+                which have undergone enough testing that the Guacamole team considers them fit for
+                public consumption. Source downloaded from the project web site will take the form
+                of a <code class="filename">.tar.gz</code> archive which you can extract from the command
+                line:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>tar -xzf guacamole-server-1.1.0.tar.gz</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-server-1.1.0/</code></strong>
+<code class="prompt">$</code></pre></div><p>If you want the absolute latest code, and don't care that the code hasn't been as
+                rigorously tested as the code in stable releases, you can also clone the Guacamole
+                team's git repository on GitHub:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>git clone <code class="uri">git://github.com/apache/guacamole-server.git</code></code></strong>
+<code class="computeroutput">Cloning into 'guacamole-server'...
+remote: Counting objects: 6769, done.
+remote: Compressing objects: 100% (2244/2244), done.
+remote: Total 6769 (delta 3058), reused 6718 (delta 3008)
+Receiving objects: 100% (6769/6769), 2.32 MiB | 777 KiB/s, done.
+Resolving deltas: 100% (3058/3058), done.</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-build-process"></a>The build process</h3></div></div></div><p>Once the <span class="package">guacamole-server</span> source has been downloaded and
+                extracted, you need to run <code class="filename">configure</code>. This is a shell script
+                automatically generated by GNU Autotools, a popular build system used by the
+                Guacamole project for <span class="package">guacamole-server</span>. Running
+                    <code class="filename">configure</code> will determine which libraries are available on
+                your system and will select the appropriate components for building depending on
+                what you actually have installed.</p><div class="important"><h3 class="title">Important</h3><p>Source downloaded directly from git will not contain this
+                        <code class="filename">configure</code> script, as autogenerated code is not included
+                    in the project's repositories. If you downloaded the code from the project's git
+                    repositories directly, you will need to generate <code class="filename">configure</code>
+                    manually:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-server/</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>autoreconf -fi</code></strong>
+<code class="prompt">$</code></pre><p>Doing this requires GNU Autotools to be installed.</p><p>Source archives downloaded from the project website contain the
+                            <code class="filename">configure</code> script and all other necessary build
+                        files, and thus do not require GNU Autotools to be installed on the build
+                        machine.</p></div></div><p>Once you run <code class="filename">configure</code>, you can see what a listing of what
+                libraries were found and what it has determined should be built:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>./configure --with-init-dir=<em class="replaceable"><code>/etc/init.d</code></em></code></strong>
+<code class="computeroutput">checking for a BSD-compatible install... /usr/bin/install -c
+checking whether build environment is sane... yes
+...
+
+------------------------------------------------
+guacamole-server version 1.1.0
+------------------------------------------------
+
+   Library status:
+
+     freerdp2 ............ yes
+     pango ............... yes
+     libavcodec .......... yes
+     libavutil ........... yes
+     libssh2 ............. yes
+     libssl .............. yes
+     libswscale .......... yes
+     libtelnet ........... yes
+     libVNCServer ........ yes
+     libvorbis ........... yes
+     libpulse ............ yes
+     libwebsockets ....... yes
+     libwebp ............. yes
+     wsock32 ............. no
+
+   Protocol support:
+
+      Kubernetes .... yes
+      RDP ........... yes
+      SSH ........... yes
+      Telnet ........ yes
+      VNC ........... yes
+
+   Services / tools:
+
+      guacd ...... yes
+      guacenc .... yes
+      guaclog .... yes
+
+   Init scripts: /etc/init.d
+   Systemd units: no
+
+Type "make" to compile guacamole-server.
+</code>
+<code class="prompt">$</code></pre></div><p><a id="idm46420848980576" class="indexterm"></a>The <code class="option">--with-init-dir=/etc/init.d</code> shown above prepares
+                the build to install a startup script for <span class="package">guacd</span> into the
+                    <code class="filename">/etc/init.d</code> directory, such that we can later easily
+                configure <span class="package">guacd</span> to start automatically on boot. If you do not
+                wish guacd to start automatically at boot, leave off the
+                    <code class="option">--with-init-dir</code> option. If the directory containing your
+                distribution's startup scripts differs from the common
+                    <code class="filename">/etc/init.d</code>, replace <code class="filename">/etc/init.d</code> with
+                the proper directory here. You may need to consult your distribution's
+                documentation, or do a little digging in <code class="filename">/etc</code>, to determine the
+                proper location.</p><p>Here, <code class="filename">configure</code> has found everything, including all optional
+                libraries, and will build all protocol support, even support for Ogg Vorbis sound in
+                RDP. If you are missing some libraries, some of the
+                    "<code class="computeroutput">yes</code>" answers above will read
+                    "<code class="computeroutput">no</code>". If a library which is strictly required
+                is missing, the script will fail outright, and you will need to install the missing
+                dependency. If, after running <code class="filename">configure</code>, you find support for
+                something you wanted is missing, simply install the corresponding dependencies and
+                run <code class="filename">configure</code> again.</p><div class="important"><h3 class="title">Important</h3><p>All protocols that require a terminal (Kubernetes, SSH, and telnet) require
+                    that fonts are installed on the Guacamole server in order to function, as output
+                    from the terminal cannot be rendered otherwise. Support for these protocols will
+                    build just fine if fonts are not installed, but it will fail to connect when
+                    used:</p><div class="informalexample"><pre class="screen">Aug 23 14:09:45 my-server guacd[5606]: Unable to get font "monospace"</pre></div><p>If terminal-based connections are not working and you see such a message in
+                    syslog, you should make sure fonts are installed and try again.</p></div><p>Once <code class="filename">configure</code> is finished, just type
+                    "<strong class="userinput"><code>make</code></strong>", and it will <span class="package">guacamole-server</span>
+                will compile:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>make</code></strong>
+<code class="computeroutput">Making all in src/libguac
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+...
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[1]: Nothing to be done for `all-am'.
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server'</code>
+<code class="prompt">$</code></pre></div><p>Quite a bit of output will scroll up the screen as all the components are
+                compiled.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-server-installation"></a>Installation</h3></div></div></div><p>Once everything finishes, all you have left to do is type "<strong class="userinput"><code>make
+                    install</code></strong>" to install the components that were built, and then
+                    "<strong class="userinput"><code>ldconfig</code></strong>" to update your system's cache of installed
+                libraries:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>make install</code></strong>
+<code class="computeroutput">Making install in src/libguac
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+make[2]: Entering directory `/home/zhz/guacamole/guacamole-server/src/libguac'
+...
+----------------------------------------------------------------------
+Libraries have been installed in:
+   /usr/local/lib
+
+If you ever happen to want to link against installed libraries
+in a given directory, LIBDIR, you must either use libtool, and
+specify the full pathname of the library, or use the `-LLIBDIR'
+flag during linking and do at least one of the following:
+   - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
+     during execution
+   - add LIBDIR to the `LD_RUN_PATH' environment variable
+     during linking
+   - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
+   - have your system administrator add LIBDIR to `/etc/ld.so.conf'
+
+See any operating system documentation about shared libraries for
+more information, such as the ld(1) and ld.so(8) manual pages.
+----------------------------------------------------------------------
+make[2]: Nothing to be done for `install-data-am'.
+make[2]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server/src/protocols/vnc'
+make[1]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[2]: Entering directory `/home/zhz/guacamole/guacamole-server'
+make[2]: Nothing to be done for `install-exec-am'.
+make[2]: Nothing to be done for `install-data-am'.
+make[2]: Leaving directory `/home/zhz/guacamole/guacamole-server'
+make[1]: Leaving directory `/home/zhz/guacamole/guacamole-server'</code>
+<code class="prompt">#</code> <strong class="userinput"><code>ldconfig</code></strong>
+<code class="prompt">#</code>   </pre></div><p>At this point, everything is installed, but <span class="package">guacd</span> is not
+                running. You will need to run guacd in order to use Guacamole once the client
+                components are installed as well.</p><p>Beware that even after installing <span class="package">guacd</span> and its startup script,
+                you will likely still have to activate the service for it to start automatically.
+                Doing this varies by distribution, but each distribution will have documentation
+                describing how to do so.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="building-guacamole-client"></a><span class="package">guacamole-client</span></h2></div></div></div><a id="idm46420848952608" class="indexterm"></a><a id="idm46420848951136" class="indexterm"></a><div class="important"><h3 class="title">Important</h3><p>Normally, you don't need to build <span class="package">guacamole-client</span>, as it is
+                written in Java and is cross-platform. You can easily obtain the latest version of
+                    <span class="package">guacamole-client</span> from the release archives of the Guacamole
+                project web site, including all supported extensions, without having to build it
+                yourself.</p><p>If you do not want to build guacamole-client from source, just download
+                    <code class="filename">guacamole.war</code> from the project web site, along with any
+                desired extensions, and skip ahead to <a class="xref" href="installing-guacamole.html#deploying-guacamole" title="Deploying Guacamole">the section called “Deploying Guacamole”</a>.</p></div><p><span class="package">guacamole-client</span> contains all Java and JavaScript components of
+            Guacamole (<span class="package">guacamole</span>, <span class="package">guacamole-common</span>,
+                <span class="package">guacamole-ext</span>, and <span class="package">guacamole-common-js</span>). These
+            components ultimately make up the web application that will serve the HTML5 Guacamole
+            client to users that connect to your server. This web application will then connect to
+                <span class="package">guacd</span>, part of <span class="package">guacamole-server</span>, on behalf of
+            connected users in order to serve them any remote desktop they are authorized to
+            access.</p><p>To compile <span class="package">guacamole-client</span>, all you need is Apache Maven and a
+            copy of the Java JDK. Most, if not all, Linux distributions will provide packages for
+            these.</p><p>You can obtain a copy of the <span class="package">guacamole-client</span> source from the
+            Guacamole project web site. These releases are stable snapshots of the latest code which
+            have undergone enough testing that the Guacamole team considers them fit for public
+            consumption. Source downloaded from the project web site will take the form of a
+                <code class="filename">.tar.gz</code> archive which you can extract from the command
+            line:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>tar -xzf guacamole-client-1.1.0.tar.gz</code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>cd guacamole-client-1.1.0/</code></strong>
+<code class="prompt">$</code></pre></div><p>As with <span class="package">guacamole-server</span>, if you want the absolute latest code, and
+            don't care that the code hasn't been as rigorously tested as the code in stable
+            releases, you can also clone the Guacamole team's git repository on GitHub:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>git clone <code class="uri">git://github.com/apache/guacamole-client.git</code></code></strong>
+<code class="computeroutput">Cloning into 'guacamole-client'...
+remote: Counting objects: 12788, done.
+remote: Compressing objects: 100% (4183/4183), done.
+remote: Total 12788 (delta 3942), reused 12667 (delta 3822)
+Receiving objects: 100% (12788/12788), 3.23 MiB | 799 KiB/s, done.
+Resolving deltas: 100% (3942/3942), done.</code>
+<code class="prompt">$</code></pre></div><p>Unlike <span class="package">guacamole-server</span>, even if you grab the code from the git
+            repositories, you won't need to run anything before building. There are no scripts that
+            need to be generated before building - all Maven needs is the
+                <code class="filename">pom.xml</code> file provided with the source.</p><p>To build <span class="package">guacamole-client</span>, just run "<strong class="userinput"><code>mvn
+                package</code></strong>". This will invoke Maven to automatically build and package all
+            components, producing a single <code class="filename">.war</code> file, which contains the entire
+            web application:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>mvn package</code></strong>
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Build Order:
+[INFO] 
+[INFO] guacamole-common
+[INFO] guacamole-ext
+[INFO] guacamole-common-js
+[INFO] guacamole
+[INFO] guacamole-auth-cas
+[INFO] guacamole-auth-duo
+[INFO] guacamole-auth-header
+[INFO] guacamole-auth-jdbc
+[INFO] guacamole-auth-jdbc-base
+[INFO] guacamole-auth-jdbc-mysql
+[INFO] guacamole-auth-jdbc-postgresql
+[INFO] guacamole-auth-jdbc-sqlserver
+[INFO] guacamole-auth-jdbc-dist
+[INFO] guacamole-auth-ldap
+[INFO] guacamole-auth-openid
+[INFO] guacamole-auth-quickconnect
+[INFO] guacamole-auth-totp
+[INFO] guacamole-example
+[INFO] guacamole-playback-example
+[INFO] guacamole-client
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] 
+[INFO] guacamole-common ................................... SUCCESS [ 21.852 s]
+[INFO] guacamole-ext ...................................... SUCCESS [  9.055 s]
+[INFO] guacamole-common-js ................................ SUCCESS [  1.988 s]
+[INFO] guacamole .......................................... SUCCESS [ 18.040 s]
+[INFO] guacamole-auth-cas ................................. SUCCESS [  4.203 s]
+[INFO] guacamole-auth-duo ................................. SUCCESS [  2.251 s]
+[INFO] guacamole-auth-header .............................. SUCCESS [  1.399 s]
+[INFO] guacamole-auth-jdbc ................................ SUCCESS [  1.396 s]
+[INFO] guacamole-auth-jdbc-base ........................... SUCCESS [  3.266 s]
+[INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [  4.665 s]
+[INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [  3.764 s]
+[INFO] guacamole-auth-jdbc-sqlserver ...................... SUCCESS [  3.738 s]
+[INFO] guacamole-auth-jdbc-dist ........................... SUCCESS [  1.214 s]
+[INFO] guacamole-auth-ldap ................................ SUCCESS [  1.991 s]
+[INFO] guacamole-auth-openid .............................. SUCCESS [  2.204 s]
+[INFO] guacamole-auth-quickconnect ........................ SUCCESS [  2.983 s]
+[INFO] guacamole-auth-totp ................................ SUCCESS [  8.154 s]
+[INFO] guacamole-example .................................. SUCCESS [  0.895 s]
+[INFO] guacamole-playback-example ......................... SUCCESS [  0.795 s]
+[INFO] guacamole-client ................................... SUCCESS [  7.478 s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 01:41 min
+[INFO] Finished at: 2018-10-15T17:08:29-07:00
+[INFO] Final Memory: 42M/379M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Once the Guacamole web application is built, there will be a .war file in the
+                <code class="filename">guacamole/target/</code> subdirectory of the current directory (the
+            directory you were in when you ran <span class="application">mvn</span>), ready to be deployed
+            to a servlet container like Tomcat.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="deploying-guacamole"></a>Deploying Guacamole</h2></div></div></div><a id="idm46420848921088" class="indexterm"></a><p>The web application portion of Guacamole is packaged as a fully self-contained
+                <code class="filename">.war</code> file. If you downloaded Guacamole from the main project
+            web site, this file will be called <code class="filename">guacamole.war</code>. Deploying this
+            involves copying the file into the directory your servlet container uses for
+                <code class="filename">.war</code> files. In the case of Tomcat, this will be
+                    <code class="filename"><em class="replaceable"><code>CATALINA_HOME</code></em>/webapps/</code>. The
+            location of <code class="envar">CATALINA_HOME</code> will vary by how Tomcat was installed, but is
+            commonly <code class="filename">/var/lib/tomcat</code>, <code class="filename">/var/lib/tomcat7</code>, or
+            similar:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cp guacamole.war <em class="replaceable"><code>/var/lib/tomcat</code></em>/webapps</code></strong>
+<code class="prompt">#</code></pre></div><p>If you have built guacamole-client from source, the required <code class="filename">.war</code>
+            file will be within the <code class="filename">guacamole/target/</code> directory and will
+            contain an additional version suffix. As Tomcat will determine the location of the web
+            application from the name of the <code class="filename">.war</code> file, you will likely want to
+            rename this to simply <code class="filename">guacamole.war</code> while copying:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>cp guacamole/target/guacamole-1.1.0.war <em class="replaceable"><code>/var/lib/tomcat/webapps</code></em>/guacamole.war</code></strong>
+<code class="prompt">#</code></pre></div><p>Again, if you are using a different servlet container or if Tomcat is installed to a
+            different location, you will need to check the documentation of your servlet container,
+            distribution, or both to determine the proper location for deploying
+                <code class="filename">.war</code> files like <code class="filename">guacamole.war</code>.</p><p>Once the <code class="filename">.war</code> file is in place, you may need to restart Tomcat to
+            force Tomcat to deploy the new web application, and the <span class="package">guacd</span> daemon
+            must be started if it isn't running already. The command to restart Tomcat and
+                <span class="package">guacd</span> will vary by distribution. Typically, you can do this by
+            running the corresponding init scripts with the "restart" option:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>/etc/init.d/tomcat7 restart</code></strong>
+<code class="computeroutput">Stopping Tomcat... OK
+Starting Tomcat... OK</code>
+<code class="prompt">#</code> <strong class="userinput"><code>/etc/init.d/guacd start</code></strong>
+<code class="computeroutput">Starting guacd: SUCCESS
+guacd[6229]: INFO:  Guacamole proxy daemon (guacd) version 1.1.0 started</code>
+<code class="prompt">#</code></pre></div><div class="important"><h3 class="title">Important</h3><p>If you want Guacamole to start on boot, you will need to configure the Tomcat and
+                    <span class="package">guacd</span> services to run automatically. Your distribution will
+                provide documentation for doing this.</p></div><p>After restarting Tomcat and starting <span class="package">guacd</span>, Guacamole is
+            successfully installed, though it will not be fully running. In its current state, it is
+            completely unconfigured, and further steps are required to add at least one Guacamole
+            user and a few connections. This is covered in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848897680"></a>What about WebSocket?</h3></div></div></div><a id="idm46420848896944" class="indexterm"></a><p>Guacamole will use WebSocket automatically if supported by the browser and your
+                servlet container. In the event that Guacamole cannot connect using WebSocket, it
+                will immediately and transparently fall back to using HTTP.</p><p>WebSocket is supported in Guacamole for Tomcat 7.0.37 or higher, Jetty 8 or
+                higher, and any servlet container supporting JSR 356, the standardized Java API for
+                WebSocket.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-architecture.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-docker.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Implementation and architecture </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 3. Installing Guacamole with Docker</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/jdbc-auth.html b/doc/1.1.0/gug/jdbc-auth.html
new file mode 100644
index 0000000..cac7c91
--- /dev/null
+++ b/doc/1.1.0/gug/jdbc-auth.html
@@ -0,0 +1,920 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 6. Database authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole" /><link rel="next" href="ldap-auth.html" title="Chapter 7. LDAP authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 6. Database authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="configuring-guacamole.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="ldap-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="jdbc-auth"></a>Chapter 6. Database authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="jdbc-auth.html#idm46420848531088">Downloading the database authentication extension</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-database-creation">Creating the Guacamole database</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-mysql">MySQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-postgresql">PostgreSQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-sqlserver">SQL Server</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#idm46420849413472">Upgrading an existing Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420847663760">Granting Guacamole access to the database</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#idm46420847659008">MySQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420847248864">PostgreSQL</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420848090912">SQL Server</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-installation">Installing database authentication</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-configuration">Configuring Guacamole for database authentication</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-restrict">Restricting authentication to database users only</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420848067232">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-entities">Entities</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-users">Users</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-groups">User groups</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-connections">Connections and parameters</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles">Sharing profiles and parameters</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-connection-groups">Connection groups</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema-permissions">Permissions</a></span></dt></dl></dd></dl></div><a id="idm46420848123776" class="indexterm"></a><a id="idm46420848122880" class="indexterm"></a><a id="idm46420848121984" class="indexterm"></a><p>Guacamole supports authentication via MySQL, PostgreSQL, or SQL Server databases through
+        extensions available from the project website. Using a database for authentication provides
+        additional features, such as the ability to use load balancing groups of connections and a
+        web-based administrative interface. Unlike the default, XML-driven authentication module, all
+        changes to users and connections take effect immediately; users need not logout and back in
+        to see new connections.</p><p>While most authentication extensions function independently, the database authentication
+        can act in a subordinate role, allowing users and user groups from other authentication
+        extensions to be associated with connections within the database. Users and groups are
+        considered identical to those within the database if they have the same names, and the
+        authentication result of another extension will be trusted if it succeeds. A user with an
+        account under multiple systems will thus be able to see data from each system after
+        successfully logging in. For more information on using the database authentication alongside
+        other mechanisms, see <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a> within <a class="xref" href="ldap-auth.html" title="Chapter 7. LDAP authentication">Chapter 7, <em>LDAP authentication</em></a>.</p><p>To use the database authentication extension, you will need:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A supported database - currently MariaDB, MySQL, PostgreSQL, or SQL Server.</p></li><li class="listitem"><p>Sufficient permission to create new databases, to create new users, and to grant
+                those users permissions.</p></li><li class="listitem"><p>Network access to the database from the Guacamole server.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46420848531088"></a>Downloading the database authentication extension</h2></div></div></div><p>The database authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The database authentication extension is packaged as a <code class="filename">.tar.gz</code>
+            file containing:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">mysql/</code></span></dt><dd><p>Contains the MySQL/MariaDB authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-mysql-1.1.0.jar</code>, along with a
+                            <code class="filename">schema/</code> directory containing MySQL-specific SQL
+                        scripts required to set up the database. The
+                            <code class="filename">guacamole-auth-jdbc-mysql-1.1.0.jar</code> file will
+                        ultimately need to be placed within
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>, while the MySQL JDBC
+                        driver must be placed within <code class="filename">GUACAMOLE_HOME/lib</code>.</p><p><span class="emphasis"><em>The MySQL JDBC driver is not included with the
+                            extension.</em></span> You must obtain the JDBC driver
+                            <code class="filename">.jar</code> yourself from <a class="link" href="http://dev.mysql.com/downloads/connector/j/" target="_top">MySQL's
+                            website</a>. The driver is known as "Connector/J", and the required
+                            <code class="filename">.jar</code> will be within a <code class="filename">.tar.gz</code>
+                        archive.</p></dd><dt><span class="term"><code class="filename">postgresql/</code></span></dt><dd><p>Contains the PostgreSQL authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-postgresql-1.1.0.jar</code>, along
+                        with a <code class="filename">schema/</code> directory containing PostgreSQL-specific
+                        SQL scripts required to set up the database. The
+                            <code class="filename">guacamole-auth-jdbc-postgresql-1.1.0.jar</code> file will
+                        ultimately need to be placed within
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>, while the PostgreSQL
+                        JDBC driver must be placed within
+                        <code class="filename">GUACAMOLE_HOME/lib</code>.</p><p><span class="emphasis"><em>The PostgreSQL JDBC driver is not included with the
+                            extension.</em></span> You must obtain the JDBC driver
+                            <code class="filename">.jar</code> yourself from <a class="link" href="https://jdbc.postgresql.org/download.html#current" target="_top">PostgreSQL's website</a>. The proper <code class="filename">.jar</code> file
+                        depends on the version of Java you have installed. </p></dd><dt><span class="term"><code class="filename">sqlserver/</code></span></dt><dd><p>Contains the SQL Server authentication extension,
+                            <code class="filename">guacamole-auth-jdbc-sqlserver-1.1.0.jar</code>, along with
+                        a <code class="filename">schema/</code> directory contains SQL Server-specific
+                        scripts requires to set up the database. The JAR extension file will need to
+                        be placed within the <code class="filename">GUACAMOLE_HOME/extensions</code> folder,
+                        while the SQL Server JDBC driver must be placed within the
+                            <code class="filename">GUACAMOLE_HOME/lib</code> directory.</p><p><span class="emphasis"><em>The SQL Server JDBC driver is not included with the extension.</em></span>  You
+                        must obtain the JDBC driver <code class="filename">.jar</code> yourself and place it in the directory.
+                        Furthermore, the SQL Server authentication extension supports a number of TDS-compatible
+                        drivers, so you must make sure the one you choose is supported by the extension, that the
+                        extension is configured properly, and that the <code class="filename">.jar</code> is in the correct
+                        directory.  Microsoft's JDBC driver can be downloaded from Microsoft's <a class="link" href="https://docs.microsoft.com/en-us/sql/connect/sql-connection-libraries#anchor-20-drivers-relational-access" target="_top">
+                        SQL Connection Libraries</a> page.</p><p>In addition to the various parameters mentioned below, the SQL Server driver has a
+                        unique parameter available to control the driver compatibility of the JDBC module:
+                        <span class="property">sqlserver-driver</span>.  This parameter allows you to choose the compatibility
+                        mode of the module with various TDS-comptabile drivers such that it can be used with different
+                        versions of SQL Server and even non-Microsoft SQL Server databases.  The following options are available
+                        for the <span class="property">sqlserver-driver</span> property:
+                        </p><div class="variablelist"><dl class="variablelist"><dt><span class="term">microsoft2005</span></dt><dd><p>The current Microsoft driver, supporting SQL Server 2005 and later.</p></dd><dt><span class="term">microsoft</span></dt><dd><p>The legacy SQL Server support.</p></dd><dt><span class="term">jtds</span></dt><dd><p>The open source JTDS driver.</p></dd><dt><span class="term">datadirect</span></dt><dd><p>The Progress Sybase driver.</p></dd></dl></div><p>
+                    </p></dd></dl></div><p>Only one of the directories within the archive will be applicable to you, depending on
+            whether you are using MariaDB, MySQL, PostgreSQL, or SQL Server.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-database-creation"></a>Creating the Guacamole database</h2></div></div></div><p>The database authentication module will need a database to store authentication data
+            and a user to use only for data access and manipulation. You can use an existing
+            database and existing user, but for the sake of simplicity and security, these
+            instructions assume you will be creating a new database and new user that will be used
+            only by Guacamole and only for this authentication module.</p><p>You need MariaDB, MySQL, PostgreSQL, or SQL Server installed, and must have sufficient
+            access to create and administer databases. If this is not the case, install your database
+            of choice now. Most distributions will provide a convenient MySQL or PostgreSQL package
+            which will set up everything for you, including the root database user, if
+            applicable.  If you're using SQL Server, you need to install the packages on your platform
+            of choice, and also make sure that you obtain the proper licensing for the version
+            and edition of SQL Server you are running.</p><p>For the sake of clarity, these instructions will refer to the database as
+            "guacamole_db", but the database can be named whatever you like.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-mysql"></a>MySQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>ls schema/</code></strong>
+<code class="computeroutput">001-create-schema.sql  002-create-admin-user.sql  upgrade</code>
+<code class="prompt">$</code> <strong class="userinput"><code>cat schema/*.sql | mysql -u root -p <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="prompt">Enter password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-postgresql"></a>PostgreSQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>createdb <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>ls schema/</code></strong>
+<code class="computeroutput">001-create-schema.sql  002-create-admin-user.sql</code>
+<code class="prompt">$</code> <strong class="userinput"><code>cat schema/*.sql | psql -d <em class="replaceable"><code>guacamole_db</code></em> -f -</code></strong>
+<code class="computeroutput">CREATE TYPE
+CREATE TYPE
+CREATE TYPE
+CREATE TABLE
+CREATE INDEX</code>
+...
+<code class="computeroutput">INSERT 0 1
+INSERT 0 4
+INSERT 0 3</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-sqlserver"></a>SQL Server</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -d <em class="replaceable"><code>guacamole_db</code></em> -i schema/001-create-schema.sql</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">Rule bound to data type.
+The new rule has been bound to column(s) of the specified user data type.
+Rule bound to data type.
+The new rule has been bound to column(s) of the specified user data type.</code>
+<code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -d <em class="replaceable"><code>guacamole_db</code></em> -i schema/002-create-admin-user.sql</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">
+(1 rows affected)
+
+(3 rows affected)
+                        
+(5 rows affected)</code>
+</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46420849413472"></a>Upgrading an existing Guacamole database</h2></div></div></div><p>If you are upgrading from an older version of Guacamole, you may need to run one or
+            more database schema upgrade scripts located within the
+                <code class="filename">schema/upgrade/</code> directory. Each of these scripts is named
+                    <code class="filename">upgrade-pre-<em class="replaceable"><code>VERSION</code></em>.sql</code> where
+                <em class="replaceable"><code>VERSION</code></em> is the version of Guacamole where those changes
+            were introduced. They need to be run when you are upgrading from a version of Guacamole
+            older than <em class="replaceable"><code>VERSION</code></em>.</p><p>If there are no
+                <code class="filename">upgrade-pre-<em class="replaceable"><code>VERSION</code></em>.sql</code> scripts
+            present in the <code class="filename">schema/upgrade/</code> directory which apply to your
+            existing Guacamole database, then the schema has not changed between your version and
+            the version your are installing, and there is no need to run any database upgrade
+            scripts.</p><p>These scripts are incremental and, when relevant, <span class="emphasis"><em>must be run in
+                order</em></span>. For example, if you are upgrading an existing database from
+            version 0.9.13-incubating to version 1.0.0, you would need to run the
+                <code class="filename">upgrade-pre-0.9.14.sql</code> script (because 0.9.13-incubating is
+            older than 0.9.14), followed by the <code class="filename">upgrade-pre-1.0.0.sql</code> script
+            (because 0.9.13-incubating is also older than 1.0.0).</p><div class="important"><h3 class="title"><a id="jdbc-auth-postgresql-upgrade"></a>Important</h3><p>Because the permissions granted to the Guacamole-specific PostgreSQL user when the
+                database was first created will not automatically be granted for any new tables and
+                sequences, you will also need to re-grant those permissions after applying any
+                upgrade relevant scripts:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>psql -d <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="computeroutput">psql (9.3.6)
+Type "help" for help.
+</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>\q</code></strong>
+<code class="prompt">$</code></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="idm46420847663760"></a>Granting Guacamole access to the database</h2></div></div></div><p>For Guacamole to be able to execute queries against the database, you must create a
+            new user for the database and grant that user sufficient privileges to manage the
+            contents of all tables in the database. The user created for Guacamole needs only
+                <code class="code">SELECT</code>, <code class="code">UPDATE</code>, <code class="code">INSERT</code>, and
+                <code class="code">DELETE</code> permissions on all Guacamole tables. Additionally, if using
+            PostgreSQL, the user will need <code class="code">SELECT</code> and <code class="code">USAGE</code> permission on
+            all sequences within all Guacamole tables. <span class="emphasis"><em>No other permissions should be
+                granted.</em></span></p><p>These instructions will refer to the user as "guacamole_user" but the user can be
+            named whatever you like. Naturally, you should also choose a real password for your user
+            rather than the string "some_password" used as a placeholder below.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420847659008"></a>MySQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mysql -u root -p
+<code class="prompt">Enter password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="computeroutput">Welcome to the MySQL monitor.  Commands end with ; or \g.
+Your MySQL connection id is 233
+Server version: 5.5.29-0ubuntu0.12.10.1 (Ubuntu)
+
+Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+
+Oracle is a registered trademark of Oracle Corporation and/or its
+affiliates. Other names may be trademarks of their respective
+owners.
+
+Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
+</code>
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>CREATE DATABASE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="computeroutput">Query OK, 1 row affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>CREATE USER '<em class="replaceable"><code>guacamole_user'</code></em>@'localhost' IDENTIFIED BY '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON <em class="replaceable"><code>guacamole_db</code></em>.* TO '<em class="replaceable"><code>guacamole_user'</code></em>@'localhost';</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.00 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>FLUSH PRIVILEGES;</code></strong>
+<code class="computeroutput">Query OK, 0 rows affected (0.02 sec)</code>
+
+<code class="prompt">mysql&gt;</code> <strong class="userinput"><code>quit</code></strong>
+<code class="computeroutput">Bye</code>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420847248864"></a>PostgreSQL</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>psql -d <em class="replaceable"><code>guacamole_db</code></em></code></strong>
+<code class="computeroutput">psql (9.3.6)
+Type "help" for help.
+</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>CREATE USER <em class="replaceable"><code>guacamole_user</code></em> WITH PASSWORD '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="computeroutput">CREATE ROLE</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,INSERT,UPDATE,DELETE ON ALL TABLES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>GRANT SELECT,USAGE ON ALL SEQUENCES IN SCHEMA public TO <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="computeroutput">GRANT</code>
+<code class="prompt">guacamole=# </code><strong class="userinput"><code>\q</code></strong>
+<code class="prompt">$</code></pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848090912"></a>SQL Server</h3></div></div></div><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>/opt/mssql-tools/bin/sqlcmd -S localhost -U SA</code></strong>
+<code class="prompt">Password:</code> <strong class="userinput"><code><em class="replaceable"><code>password</code></em></code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE DATABASE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE LOGIN <em class="replaceable"><code>guacamole_user</code></em> WITH PASSWORD = '<em class="replaceable"><code>some_password</code></em>';</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>USE <em class="replaceable"><code>guacamole_db</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>CREATE USER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>GO</code></strong>
+<code class="prompt">1&gt;</code> <strong class="userinput"><code>ALTER ROLE db_datawriter ADD MEMBER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">2&gt;</code> <strong class="userinput"><code>ALTER ROLE db_datareader ADD MEMBER <em class="replaceable"><code>guacamole_user</code></em>;</code></strong>
+<code class="prompt">3&gt;</code> <strong class="userinput"><code>GO</code></strong></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-installation"></a>Installing database authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the database authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-jdbc-mysql-1.1.0.jar</code>
+                    <span class="emphasis"><em>or</em></span>
+                    <code class="filename">guacamole-auth-jdbc-postgresql-1.1.0.jar</code>
+                    <span class="emphasis"><em>or</em></span>
+                    <code class="filename">guacamole-auth-jdbc-sqlserver-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>, depending on whether you are
+                    using MySQL/MariaDB, PostgreSQL, or SQL Server.</p></li><li class="step"><p>Copy the JDBC driver for your database to
+                        <code class="filename">GUACAMOLE_HOME/lib</code>. Without a JDBC driver for your
+                    database, Guacamole will not be able to connect and authenticate users.</p></li><li class="step"><p>Configure Guacamole to use database authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the database authentication properly, Guacamole will not start up again
+                until the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-configuration"></a>Configuring Guacamole for database authentication</h3></div></div></div><p>Additional properties must be added to <code class="filename">guacamole.properties</code>
+                for Guacamole to properly connect to your database. These properties are specific to
+                the database being used, and must be set correctly for authentication to
+                work.</p><p>To use a MySQL database, you will need to specify the following:</p><div class="informalexample"><pre class="programlisting"># MySQL properties
+mysql-hostname: localhost
+mysql-port: 3306
+mysql-database: <em class="replaceable"><code>guacamole_db</code></em>
+mysql-username: <em class="replaceable"><code>guacamole_user</code></em>
+mysql-password: <em class="replaceable"><code>some_password</code></em>
+                </pre></div><p>For PostgreSQL, the properties are similar, but with different prefixes:</p><div class="informalexample"><pre class="programlisting"># PostgreSQL properties
+postgresql-hostname: localhost
+postgresql-port: 5432
+postgresql-database: <em class="replaceable"><code>guacamole_db</code></em>
+postgresql-username: <em class="replaceable"><code>guacamole_user</code></em>
+postgresql-password: <em class="replaceable"><code>some_password</code></em>
+                </pre></div><p>The SQL Server properties follow the same format:</p><div class="informalexample"><pre class="programlisting"># SQL Server properties
+sqlserver-hostname: localhost
+sqlserver-port: 1433
+sqlserver-database: <em class="replaceable"><code>guacamole_db</code></em>
+sqlserver-username: <em class="replaceable"><code>guacamole_user</code></em>
+sqlserver-password: <em class="replaceable"><code>some_password</code></em>
+sqlserver-driver: microsoft2005
+                </pre></div><p>The properties absolutely required by the database authentication extension are
+                relatively few and self-explanatory, describing only how the connection to the
+                database is to be established, and how Guacamole will authenticate when querying the
+                database:</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /><col class="c4" /></colgroup><thead><tr><th>MySQL/MariaDB Property</th><th>PostgreSQL Property</th><th>SQL Server Property</th><th>Description</th></tr></thead><tbody><tr><td><span class="property">mysql-hostname</span></td><td><span class="property">postgresql-hostname</span></td><td><span class="property">sqlserver-hostname</span></td><td>
+                                <p>The hostname or IP address of the server hosting your
+                                    database.</p>
+                            </td></tr><tr><td><span class="property">mysql-port</span></td><td><span class="property">postgresql-port</span></td><td><span class="property">sqlserver-port</span></td><td>
+                                <p>The port number of the database to connect to. For MySQL and
+                                    MariaDB, this will likely be 3306. For PostgreSQL, this will
+                                    likely be 5432.</p>
+                            </td></tr><tr><td><span class="property">mysql-database</span></td><td><span class="property">postgresql-database</span></td><td><span class="property">sqlserver-database</span></td><td>
+                                <p>The name of the database that you created for Guacamole. This
+                                    is given as "guacamole_db" in the examples given in this
+                                    chapter.</p>
+                            </td></tr><tr><td><span class="property">mysql-username</span></td><td><span class="property">postgresql-username</span></td><td><span class="property">sqlserver-username</span></td><td>
+                                <p>The username of the user that Guacamole should use to connect
+                                    to the database. This is given as "guacamole_user" in the
+                                    examples given in this chapter.</p>
+                            </td></tr><tr><td><span class="property">mysql-password</span></td><td><span class="property">postgresql-password</span></td><td><span class="property">sqlserver-password</span></td><td>
+                                <p>The password Guacamole should provide when authenticating with
+                                    the database. This is given as "some_password" in the examples
+                                    given in this chapter.</p>
+                            </td></tr></tbody></table></div><p>Be sure to specify the correct username and password for the database user you
+                created, and to specify the correct database. Authentication will not work if these
+                parameters are not correct.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420847149552"></a>Enforcing password policies</h4></div></div></div><p>Configuration options are available for enforcing rules intended to encourage
+                    password complexity and regular changing of passwords. None of these options are
+                    enabled by default, but can be selectively enabled through additional properties
+                    in <code class="filename">guacamole.properties</code>.</p><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46420847147616"></a>Password complexity</h5></div></div></div><p>Administrators can require that passwords have a certain level of
+                        complexity, such as having both uppercase and lowercase letters ("multiple
+                        case"), at least one digit, or at least one symbol, and can prohibit
+                        passwords from containing the user's own username.</p><p>With respect to password content, the database authentication defines a
+                        "digit" as any numeric character and a "symbol" is any non-alphanumeric
+                        character. This takes non-English languages into account, thus a digit is
+                        not simply "0" through "9" but rather <a class="link" href="https://en.wikipedia.org/wiki/Numerals_in_Unicode" target="_top">any
+                            character defined in Unicode as numeric</a>, and a symbol is any
+                        character which Unicode does not define as alphabetic or numeric.</p><p>The check for whether a password contains the user's own username is
+                        performed in a case-insensitive manner. For example, if the user's username
+                        is "phil", the passwords "ch!0roPhil" and "PHIL-o-dendr0n" would still be
+                        prohibited.</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-min-length: <em class="replaceable"><code>8</code></em>
+mysql-user-password-require-multiple-case: true
+mysql-user-password-require-symbol: true
+mysql-user-password-require-digit: true
+mysql-user-password-prohibit-username: true
+
+# PostgreSQL
+postgresql-user-password-min-length: <em class="replaceable"><code>8</code></em>
+postgresql-user-password-require-multiple-case: true
+postgresql-user-password-require-symbol: true
+postgresql-user-password-require-digit: true
+postgresql-user-password-prohibit-username: true
+
+# SQL Server
+sqlserver-user-password-min-length: <em class="replaceable"><code>8</code></em>
+sqlserver-user-password-require-multiple-case: true
+sqlserver-user-password-require-symbol: true
+sqlserver-user-password-require-digit: true
+sqlserver-user-password-prohibit-username: true</pre></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46420847140976"></a>Password age / expiration</h5></div></div></div><p>"Password age" refers to two separate concepts:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Requiring users to change their password after a certain amount of
+                                time has elapsed since the last password change (maximum password
+                                age).</p></li><li class="listitem"><p>Preventing users from changing their password too frequently
+                                (minimum password age).</p></li></ol></div><p>While it may seem strange to prevent users from changing their password
+                        too frequently, it does make sense if you are concerned that rapid password
+                        changes may defeat password expiration (users could immediately change the
+                        password back) or tracking of password history (users could cycle through
+                        passwords until the history is exhausted and their old password is usable
+                        again).</p><p>By default, the database authentication does not apply any limits to
+                        password age, and users with permission to change their passwords may do so
+                        as frequently or infrequently as they wish. Password age limits can be
+                        enabled using a pair of properties, each accepting values given in units of
+                        days:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-min-age: <em class="replaceable"><code>7</code></em>
+mysql-user-password-max-age: <em class="replaceable"><code>90</code></em>
+
+# PostgreSQL
+postgresql-user-password-min-age: <em class="replaceable"><code>7</code></em>
+postgresql-user-password-max-age: <em class="replaceable"><code>90</code></em>
+
+# SQL Server
+sqlserver-user-password-min-age: <em class="replaceable"><code>7</code></em>
+sqlserver-user-password-max-age: <em class="replaceable"><code>90</code></em></pre></div><div class="important"><h3 class="title">Important</h3><p>So that administrators can always intervene in the case that a
+                            password needs to be reset despite restrictions, the minimum age
+                            restriction does not apply to any user with permission to administer the
+                            system.</p></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="idm46420847458864"></a>Preventing password reuse</h5></div></div></div><p>If desired, Guacamole can keep track of each user's most recently used
+                        passwords, and will prohibit reuse of those passwords until the password has
+                        been changed sufficiently many times. By default, Guacamole will not keep
+                        track of old passwords.</p><p>Note that these passwords are hashed in the same manner as each user's
+                        current password. When a user's password is changed, the hash, salt, etc.
+                        currently stored for that user is actually just copied verbatim (along with
+                        a timestamp) into a list of historical passwords, with older entries from
+                        this list being automatically deleted.</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-password-history-size: <em class="replaceable"><code>6</code></em>
+
+# PostgreSQL
+postgresql-user-password-history-size: <em class="replaceable"><code>6</code></em>
+
+# SQL Server
+sqlserver-user-password-history-size: <em class="replaceable"><code>6</code></em></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-concurrency"></a>Concurrent use of Guacamole connections</h4></div></div></div><p>The database authentication module provides configuration options to restrict
+                    concurrent use of connections or connection groups. These options are set
+                    through <code class="filename">guacamole.properties</code> and specify the default
+                    concurrency policies for connections and connection groups. The values set
+                    through the properties can be overridden later on a per-connection basis using
+                    the administrative interface:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-default-max-connections: 1
+mysql-default-max-group-connections: 1
+
+# PostgreSQL
+postgresql-default-max-connections: 1
+postgresql-default-max-group-connections: 1
+
+# SQL Server
+sqlserver-default-max-connections: 1
+sqlserver-default-max-group-connections: 1</pre></div><p>These properties are not required, but with the above properties in place,
+                    users attempting to use a connection or group that is already in use will be
+                    denied access. By default, concurrent access is allowed.</p><p>Concurrent access can also be restricted such that a particular user may only
+                    use a connection or group a certain number of times. By default, per-user
+                    concurrent use is limited for connection groups (to avoid allowing a single user
+                    to exhaust the contents of the group) but otherwise unrestricted. This default
+                    behavior can be modified through <code class="filename">guacamole.properties</code> or
+                    the per-connection settings exposed in the administrative interface:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-default-max-connections-per-user: 0
+mysql-default-max-group-connections-per-user: 0
+
+# PostgreSQL
+postgresql-default-max-connections-per-user: 0
+postgresql-default-max-group-connections-per-user: 0
+
+# SQL Server
+sqlserver-default-max-connections-per-user: 0
+sqlserver-default-max-group-connections-per-user: 0</pre></div><p>If you wish to impose an absolute limit on the number of connections that can
+                    be established through Guacamole, ignoring which users or connections are
+                    involved, this can be done as well. By default, Guacamole will impose no such
+                    limit:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-absolute-max-connections: 0
+
+# PostgreSQL
+postgresql-absolute-max-connections: 0
+
+# SQL Server
+sqlserver-absolute-max-connections: 0</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-restrict"></a>Restricting authentication to database users only</h3></div></div></div><p>By default, users will be allowed access to Guacamole as long as they are
+                authenticated by at least one extension. If database authentication is in use, and a
+                user is not associated with the database, then that user will be allowed access to
+                Guacamole if another extension grants this access, and will be provided with a view
+                of the data exposed by other extensions for that user account.</p><p>In some situations, such as when <a class="link" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">combining LDAP
+                    with a database</a>, it would be preferable to let the database have the last
+                word regarding whether a user should be allowed into the system: restricting access
+                to only those users which exist in the database, and explicitly denying
+                authentication through all other means unless that user has been associated with the
+                database as well. This behavior can be forced by setting properties which declare
+                that database user accounts are required:</p><div class="informalexample"><pre class="programlisting"># MySQL
+mysql-user-required: true
+
+# PostgreSQL
+postgresql-user-required: true
+
+# SQL Server
+sqlserver-user-required: true</pre></div><p>With the above properties set, successful authentication attempts for users which
+                are not associated with the database will be vetoed by the database authentication.
+                Guacamole will report that the login is invalid, as if the user does not exist at
+                all.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848067232"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before the database authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the database authentication
+                extension will prevent Guacamole from starting up, and any such errors will be
+                recorded in the logs of your servlet container.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-default-user"></a>Logging in</h2></div></div></div><a id="idm46420848059040" class="indexterm"></a><a id="idm46420848058144" class="indexterm"></a><p>The default Guacamole user created by the provided SQL scripts is
+                "<code class="systemitem">guacadmin</code>", with a default password of
+                "<code class="systemitem">guacadmin</code>". Once you have verified that the database
+            authentication is working, <span class="emphasis"><em>you should change your password
+                immediately</em></span>.</p><p>More detailed instructions for managing users and connections is given in <a class="xref" href="administration.html" title="Chapter 16. Administration">Chapter 16, <em>Administration</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="jdbc-auth-schema"></a>Modifying data manually</h2></div></div></div><a id="idm46420848052880" class="indexterm"></a><p>If necessary, it is possible to modify the data backing the authentication module
+            manually by executing SQL statements against the database. In general use, this will not
+            be common, but if you need to bulk-insert a large number of users or connections, or you
+            wish to translate an existing configuration automatically, you will need to know how
+            everything is laid out at a high level.</p><p>This section assumes knowledge of SQL and your chosen database, and that whatever you
+            need to do can be accomplished if only you had high-level information about Guacamole's
+            SQL schema.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-entities"></a>Entities</h3></div></div></div><a id="idm46420848169472" class="indexterm"></a><p>Every user and user group has a corresponding entry in the
+                    <code class="classname">guacamole_entity</code> table which serves as the basis for
+                assignment of a unique name, permissions, as well as relations which are common to
+                both users and groups like group membership. Each entity has a corresponding name
+                which is unique across all other entities of the same type.</p><p>If deleting a user or user group, the corresponding entity should also be deleted.
+                As any user or group which points to the entity will be deleted automatically when
+                the entity is deleted through cascading deletion, <span class="emphasis"><em>it is advisable to use
+                    the entity as the basis for any delete operation</em></span>.</p><p>The <code class="classname">guacamole_entity</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The unique integer associated with each entity (user or user group).
+                            This value is generated automatically when a new entry is inserted into
+                            the <code class="classname">guacamole_entity</code> table and is distinct from
+                            the unique integer associated with the user entry in <a class="link" href="jdbc-auth.html#jdbc-auth-schema-users" title="Users"><code class="classname">guacamole_user</code></a> or the user group
+                            entry in <a class="link" href="jdbc-auth.html#jdbc-auth-schema-groups" title="User groups"><code class="classname">guacamole_user_group</code></a>.</p></dd><dt><span class="term"><span class="property">name</span></span></dt><dd><p>The unique name associated with each user or group. This value must be
+                            specified manually, and must be different from any existing user or
+                            group in the table. The name need only be unique relative to the names
+                            of other entities having the same type (a user may have the same name as
+                            a group).</p></dd><dt><span class="term"><span class="property">type</span></span></dt><dd><p>The type of this entity. This can be either <span class="type">USER</span> or
+                                <span class="type">USER_GROUP</span>.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-users"></a>Users</h3></div></div></div><a id="idm46420848154192" class="indexterm"></a><p>Every user has a corresponding entry in the <code class="classname">guacamole_user</code>
+                and <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities"><code class="classname">guacamole_entity</code></a> tables. Each user has a
+                corresponding unique username, specified via
+                <code class="classname">guacamole_entity</code>, and salted password. The salted password is
+                split into two columns: one containing the salt, and the other containing the
+                password hashed with SHA-256.</p><p>If deleting a user, the <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities">corresponding
+                    entity</a> should also be deleted. As any user which points to the entity
+                will be deleted automatically when the entity is deleted through cascading deletion,
+                    <span class="emphasis"><em>it is advisable to use the entity as the basis for any delete
+                    operation</em></span>.</p><p>The <code class="classname">guacamole_user</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The unique integer associated with each user. This value is generated
+                            automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_user</code> table.</p></dd><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                <code class="classname">guacamole_entity</code> entry representing this
+                            user.</p></dd><dt><span class="term"><span class="property">password_hash</span></span></dt><dd><p>The result of hashing the user's password concatenated with the
+                            contents of <span class="property">password_salt</span> using SHA-256. The salt
+                            is appended to the password prior to hashing.</p><p>Although passwords set through Guacamole will always be salted, it is
+                            possible to use unsalted password hashes when inserted manually or
+                            through an external system. If <span class="property">password_salt</span> is
+                                <code class="constant">NULL</code>, the <span class="property">password_hash</span>
+                            will be handled as a simple unsalted hash of the password.</p></dd><dt><span class="term"><span class="property">password_salt</span></span></dt><dd><p>A 32-byte random value. When a new user is created from the web
+                            interface, this value is randomly generated using a
+                            cryptographically-secure random number generator.</p><p>This will always be set for users whose passwords are set through
+                            Guacamole, but it is possible to use unsalted password hashes when
+                            inserted manually or through an external system. If
+                                <span class="property">password_salt</span> is <code class="constant">NULL</code>, the
+                                <span class="property">password_hash</span> will be handled as a simple
+                            unsalted hash of the password.</p></dd><dt><span class="term"><span class="property">password_date</span></span></dt><dd><p>The date (and time) that the password was last changed. When a
+                            password is changed via the Guacamole interface, this value is updated.
+                            This, along with the contents of the
+                                <code class="classname">guacamole_user_password_history</code> table, is
+                            used to enforce password policies.</p></dd><dt><span class="term"><span class="property">disabled</span></span></dt><dd><p>Whether login attempts as this user account should be rejected. If
+                            this column is set to <code class="constant">TRUE</code> or
+                                <code class="constant">1</code>, login attempts by this user will be rejected
+                            as if the user did not exist. By default, user accounts are not
+                            disabled, and login attempts will succeed if the user provides the
+                            correct password.</p></dd><dt><span class="term"><span class="property">expired</span></span></dt><dd><p>If set to <code class="constant">TRUE</code> or <code class="constant">1</code>,
+                            requires that the user reset their password prior to fully logging in.
+                            The user will be presented with a password reset form, and will not be
+                            allowed to log into Guacamole until the password has been changed. By
+                            default, user accounts are not expired, and no password reset will be
+                            required upon login.</p></dd><dt><span class="term"><span class="property">access_window_start</span></span></dt><dd><p>The time of day (not date) after which this user account may be used.
+                            If <code class="constant">NULL</code>, this restriction does not apply. If set to
+                                non-<code class="constant">NULL</code>, attempts to log in after the
+                            specified time will be allowed, while attempts to log in before the
+                            specified time will be denied.</p></dd><dt><span class="term"><span class="property">access_window_end</span></span></dt><dd><p>The time of day (not date) after which this user account may
+                                <span class="emphasis"><em>not</em></span> be used. If <code class="constant">NULL</code>, this
+                            restriction does not apply. If set to non-<code class="constant">NULL</code>,
+                            attempts to log in after the specified time will be denied, while
+                            attempts to log in before the specified time will be allowed.</p></dd><dt><span class="term"><span class="property">valid_from</span></span></dt><dd><p>The date (not time of day) after which this user account may be used.
+                            If <code class="constant">NULL</code>, this restriction does not apply. If set to
+                                non-<code class="constant">NULL</code>, attempts to log in after the
+                            specified date will be allowed, while attempts to log in before the
+                            specified date will be denied.</p></dd><dt><span class="term"><span class="property">valid_until</span></span></dt><dd><p>The date (not time of day) after which this user account may
+                                <span class="emphasis"><em>not</em></span> be used. If <code class="constant">NULL</code>, this
+                            restriction does not apply. If set to non-<code class="constant">NULL</code>,
+                            attempts to log in after the specified date will be denied, while
+                            attempts to log in before the specified date will be allowed.</p></dd><dt><span class="term"><span class="property">timezone</span></span></dt><dd><p>The time zone to use when interpreting the
+                                <span class="property">access_window_start</span>,
+                                <span class="property">access_window_end</span>,
+                                <span class="property">valid_from</span>, and
+                                <span class="property">valid_until</span> values. This value may be any Java
+                                <code class="classname">TimeZone</code> ID, as defined by <a class="link" href="http://docs.oracle.com/javase/7/docs/api/java/util/TimeZone.html#getAvailableIDs()" target="_top"><code class="methodname">getAvailableIDs()</code></a>, though the
+                            Guacamole management interface will only present a subset of these time
+                            zones.</p></dd><dt><span class="term"><span class="property">full_name</span></span></dt><dd><p>The user's full name. Unlike the username, this name need not be
+                            unique; it is optional and is meant for display purposes only. Defining
+                            this value has no bearing on user identity, which is dictated purely by
+                            the username. User accounts with no associated full name should have
+                            this column set to <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">email_address</span></span></dt><dd><p>The user's email address, if any. This value is optional, need not be
+                            unique relative to other defined users, and is meant for display
+                            purposes only. Defining this value has no bearing on user identity,
+                            which is dictated purely by the username. If the user has no associated
+                            email address, this column should be set to
+                            <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">organization</span></span></dt><dd><p>The name of the organization, company, etc. that the user is
+                            affiliated with. This value is optional and is meant for display
+                            purposes only. Defining this value has no bearing on user identity,
+                            which is dictated purely by the username. Users with no associated
+                            organization should have this column set to
+                            <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">organizational_role</span></span></dt><dd><p>The role or title of the user at the organization described by the
+                                <span class="property">organization</span> column. This value is optional and
+                            is used for display purposes only. Defining this value has no bearing on
+                            user identity, which is dictated purely by the username. Users with no
+                            associated organization (or specific role/title at that organization)
+                            should have this column set to <code class="constant">NULL</code>.</p></dd></dl></div><div class="important"><h3 class="title">Important</h3><p>If you choose to manually set unsalted password hashes, please be sure you
+                    understand the security implications of doing so.</p><p>In the event that your database is compromised, finding the password for a
+                        <span class="emphasis"><em>salted</em></span> hash is computationally infeasible, but finding
+                    the password for an <span class="emphasis"><em>unsalted</em></span> hash is often not. In many
+                    cases, the password which corresponds to an unsalted hash can be found simply by
+                    entering the hash into a search engine like Google.</p></div><p>If creating a user manually, the main complication is the salt, which must be
+                determined before the <span class="command"><strong>INSERT</strong></span> statement can be constructed, but
+                this can be dealt with using variables. For MySQL:</p><div class="informalexample"><pre class="programlisting">-- Generate salt
+SET @salt = UNHEX(SHA2(UUID(), 256));
+
+-- Create base entity entry for user
+INSERT INTO guacamole_entity (name, type)
+VALUES ('<em class="replaceable"><code>myuser</code></em>', 'USER');
+
+-- Create user and hash password with salt
+INSERT INTO guacamole_user (
+    entity_id,
+    password_salt,
+    password_hash,
+    password_date
+)
+SELECT
+    entity_id,
+    @salt,
+    UNHEX(SHA2(CONCAT('<em class="replaceable"><code>mypassword</code></em>', HEX(@salt)), 256)),
+    CURRENT_TIMESTAMP
+FROM guacamole_entity
+WHERE
+    name = '<em class="replaceable"><code>myuser</code></em>'
+    AND type = 'USER';</pre></div><p>This sort of statement is useful for both creating new users or for changing
+                passwords, especially if all administrators have forgotten theirs.</p><p>If you are not using MySQL, or you are using a version of MySQL that lacks the
+                    <code class="methodname">SHA2</code> function, you will need to calculate the SHA-256
+                value manually (by using the <span class="command"><strong>sha256sum</strong></span> command, for
+                example).</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-password-history"></a>Password history</h4></div></div></div><a id="idm46420848519264" class="indexterm"></a><p>When a user's password is changed, a copy of the previous password's hash and
+                    salt is made within the <code class="classname">guacamole_user_password_history</code>.
+                    Each entry in this table is associated with the user whose password changed,
+                    along with the date that password first applied.</p><p>Old entries within this table are automatically deleted on a per-user basis
+                    depending on the requirements of the password policy. For example, if the
+                    password policy has been configured to require that users not reuse any of their
+                    previous six passwords, then there will be no more than six entries in this
+                    table for each user.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">password_history_id</span></span></dt><dd><p>The unique integer associated with each password history record.
+                                This value is generated automatically when a new entry is inserted
+                                into the <code class="classname">guacamole_user_password_history</code>
+                                table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> column from the
+                                entry in <code class="classname">guacamole_user</code> associated with the
+                                user who previously had this password.</p></dd><dt><span class="term"><span class="property">password_hash</span></span></dt><dd><p>The hashed password specified within the
+                                    <span class="property">password_hash</span> column of
+                                    <code class="classname">guacamole_user</code> prior to the password
+                                being changed.</p><p>In most cases, this will be a salted hash, though it is possible
+                                to force the use of unsalted hashes when making changes to the
+                                database manually or through an external system.</p></dd><dt><span class="term"><span class="property">password_salt</span></span></dt><dd><p>The salt value specified within the
+                                    <span class="property">password_salt</span> column of
+                                    <code class="classname">guacamole_user</code> prior to the password
+                                being changed.</p><p>This will always be set for users whose passwords are set through
+                                Guacamole, but it is possible to use unsalted password hashes when
+                                inserted manually or through an external system, in which case this
+                                may be <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">password_date</span></span></dt><dd><p>The date (and time) that the password was set. The time that the
+                                password ceased being used is recorded either by the password_date
+                                of the next related entry in
+                                    <code class="classname">guacamole_user_password_history</code> or
+                                    <span class="property">password_date</span> of
+                                    <code class="classname">guacamole_user</code> (if there is no such
+                                history entry).</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-login-history"></a>Login history</h4></div></div></div><a id="idm46420848325632" class="indexterm"></a><p>When a user logs in or out, a corresponding entry in the
+                        <code class="classname">guacamole_user_history</code> table is created or updated
+                    respectively. Each entry is associated with the user that logged in and the time
+                    their session began. If the user has logged out, the time their session ended is
+                    also stored.</p><p>It is very unlikely that a user will need to update this table, but knowing
+                    the structure is potentially useful if you wish to generate a report of
+                    Guacamole usage. The <code class="classname">guacamole_user_history</code> table has the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">history_id</span></span></dt><dd><p>The unique integer associated with each history record. This value
+                                is generated automatically when a new entry is inserted into the
+                                    <code class="classname">guacamole_user_history</code> table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> from the entry in
+                                    <code class="classname">guacamole_user</code> associated with the user
+                                that logged in. If the user no longer exists, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">username</span></span></dt><dd><p>The username associated with the user at the time that they logged
+                                in. This username value is not guaranteed to uniquely identify a
+                                user, as the original user may be subsequently renamed or
+                                deleted.</p></dd><dt><span class="term"><span class="property">remote_host</span></span></dt><dd><p>The hostname or IP address of the machine that the user logged in
+                                from, if known. If unknown, this will be
+                                <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">start_date</span></span></dt><dd><p>The time at which the user logged in. Despite its name, this
+                                column also stores time information in addition to the date.</p></dd><dt><span class="term"><span class="property">end_date</span></span></dt><dd><p>The time at which the user logged out. If the user is still
+                                active, the value in this column will be <code class="constant">NULL</code>.
+                                Despite its name, this column also stores time information in
+                                addition to the date.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-groups"></a>User groups</h3></div></div></div><a id="idm46420847186848" class="indexterm"></a><p>Similar to <a class="link" href="jdbc-auth.html#jdbc-auth-schema-users" title="Users">users</a>, every user group
+                has a corresponding entry in the <code class="classname">guacamole_user_group</code> and
+                    <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities"><code class="classname">guacamole_entity</code></a> tables. Each user group has
+                a corresponding unique name specified via
+                <code class="classname">guacamole_entity</code>.</p><p>If deleting a user group, the <a class="link" href="jdbc-auth.html#jdbc-auth-schema-entities" title="Entities">corresponding entity</a> should also be deleted. As any user group which
+                points to the entity will be deleted automatically when the entity is deleted
+                through cascading deletion, <span class="emphasis"><em>it is advisable to use the entity as the basis
+                    for any delete operation</em></span>.</p><p>The <code class="classname">guacamole_user_group</code> table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_group_id</span></span></dt><dd><p>The unique integer associated with each user group. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_user_group</code> table.</p></dd><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                <code class="classname">guacamole_entity</code> entry representing this user
+                            group.</p></dd><dt><span class="term"><span class="property">disabled</span></span></dt><dd><p>Whether membership within this group should be taken into account when
+                            determining the permissions granted to a particular user. If this column
+                            is set to <code class="constant">TRUE</code> or <code class="constant">1</code>,
+                            membership in this group will have no effect on user permissions,
+                            whether those permissions are granted to this group directly or
+                            indirectly through the groups that this group is a member of. By
+                            default, user groups are not disabled, and permissions granted to a user
+                            through the group will be taken into account.</p></dd></dl></div><a id="idm46420847170544" class="indexterm"></a><p>Membership within a user group is dictated through entries in the
+                    <code class="classname">guacamole_user_group_member</code> table. As both users and user
+                groups may be members of groups, each entry associates the containing group with the
+                entity of the member.</p><p>The <code class="classname">guacamole_user_group_member</code> table contains the
+                following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">user_group_id</span></span></dt><dd><p>The <span class="property">user_group_id</span> value of the user group having
+                            the specified member.</p></dd><dt><span class="term"><span class="property">member_entity_id</span></span></dt><dd><p>The <span class="property">entity_id</span> value of the user or user group
+                            that is a member of the specified group.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-connections"></a>Connections and parameters</h3></div></div></div><a id="idm46420847876752" class="indexterm"></a><a id="idm46420847875728" class="indexterm"></a><p>Each connection has an entry in the <code class="classname">guacamole_connection</code>
+                table, with a one-to-many relationship to parameters, stored as name/value pairs in
+                the <code class="classname">guacamole_connection_parameter</code> table.</p><p>The <code class="classname">guacamole_connection</code> table is simply a pairing of a
+                unique and descriptive name with the protocol to be used for the connection. It
+                contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The unique integer associated with each connection. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_connection</code> table.</p></dd><dt><span class="term"><span class="property">connection_name</span></span></dt><dd><p>The unique name associated with each connection. This value must be
+                            specified manually, and must be different from any existing connection
+                            name in the same connection group. References to connections in other
+                            tables use the value from <span class="property">connection_id</span>, not
+                                <span class="property">connection_name</span>.</p></dd><dt><span class="term"><span class="property">protocol</span></span></dt><dd><p>The protocol to use with this connection. This is the name of the
+                            protocol that should be sent to <span class="package">guacd</span> when
+                            connecting, for example "<code class="constant">vnc</code>" or
+                                "<code class="constant">rdp</code>".</p></dd><dt><span class="term"><span class="property">parent_id</span></span></dt><dd><p>The unique integer associated with the connection group containing
+                            this connection, or <code class="constant">NULL</code> if this connection is
+                            within the root group.</p></dd><dt><span class="term"><span class="property">max_connections</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection at any one time <span class="emphasis"><em>regardless of user</em></span>.
+                                <code class="constant">NULL</code> will use the default value specified in
+                                <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited.</p></dd><dt><span class="term"><span class="property">max_connections_per_user</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection at any one time <span class="emphasis"><em>from a single user</em></span>.
+                                <code class="constant">NULL</code> will use the default value specified in
+                                <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited.</p></dd><dt><span class="term"><span class="property">proxy_hostname</span></span></dt><dd><p>The hostname or IP address of the Guacamole proxy daemon
+                                (<span class="package">guacd</span>) which should be used for this connection.
+                            If <code class="constant">NULL</code>, the value defined with the
+                                <span class="property">guacd-hostname</span> property in
+                                <code class="filename">guacamole.properties</code> will be used.</p></dd><dt><span class="term"><span class="property">proxy_port</span></span></dt><dd><p>The TCP port number of the Guacamole proxy daemon
+                                (<span class="package">guacd</span>) which should be used for this connection.
+                            If <code class="constant">NULL</code>, the value defined with the
+                                <span class="property">guacd-port</span> property in
+                                <code class="filename">guacamole.properties</code> will be used.</p></dd><dt><span class="term"><span class="property">proxy_encryption_method</span></span></dt><dd><p>The encryption method which should be used when communicating with the
+                            Guacamole proxy daemon (<span class="package">guacd</span>) for this connection.
+                            This can be either <code class="constant">NONE</code>, for no encryption, or
+                                <code class="constant">SSL</code>, for SSL/TLS. If <code class="constant">NULL</code>,
+                            the encryption method will be dictated by the
+                                <span class="property">guacd-ssl</span> property in
+                                <code class="filename">guacamole.properties</code>.</p></dd><dt><span class="term"><span class="property">connection_weight</span></span></dt><dd><p>The weight for a connection, used for applying weighted load balancing
+                        algorithms when connections are part of a BALANCING group.  This is an
+                        integer value, where values <code class="constant">1</code> or greater will weight 
+                        the connection relative to other connections in that group, and values 
+                        below <code class="constant">1</code> cause the connection to be disabled in the 
+                        group.  If <code class="constant">NULL</code>, the connection will be assigned a 
+                        default weight of <code class="constant">1</code>.</p></dd><dt><span class="term"><span class="property">failover_only</span></span></dt><dd><p>Whether this connection should be used for failover situations only,
+                            also known as a "hot spare". If this column is set to
+                                <code class="constant">TRUE</code> or <code class="constant">1</code>, this connection
+                            will be used only when another connection within the same
+                                <span class="type">BALANCING</span> connection group has failed due to an error
+                            within the remote desktop. </p><p><span class="emphasis"><em>Connection groups will always transparently switch to the
+                                next available connection in the event of remote desktop failure,
+                                regardless of the value of this column.</em></span> This column
+                            simply dictates whether a particular connection should be
+                                <span class="emphasis"><em>reserved</em></span> for such situations, and left unused
+                            otherwise.</p><p>This column only has an effect on connections within
+                                <span class="type">BALANCING</span> groups.</p></dd></dl></div><p>As there are potentially multiple parameters per connection, where the names of
+                each parameter are completely arbitrary and determined only by the protocol in use,
+                every parameter for a given connection has an entry in table
+                    <code class="classname">guacamole_connection_parameter</code> table associated with its
+                corresponding connection. This table contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The <span class="property">connection_id</span> value from the connection this
+                            parameter is for.</p></dd><dt><span class="term"><span class="property">parameter_name</span></span></dt><dd><p>The name of the parameter to set. This is the name listed in the
+                            documentation for the protocol specified in the associated
+                            connection.</p></dd><dt><span class="term"><span class="property">parameter_value</span></span></dt><dd><p>The value to assign to the parameter named. While this value is an
+                            arbitrary string, it must conform to the requirements of the protocol as
+                            documented for the connection to be successful.</p></dd></dl></div><p>Adding a connection and corresponding parameters is relatively easy compared to
+                adding a user as there is no salt to generate nor password to hash:</p><div class="informalexample"><pre class="programlisting">-- Create connection
+INSERT INTO guacamole_connection (connection_name, protocol) VALUES ('<em class="replaceable"><code>test</code></em>', '<em class="replaceable"><code>vnc</code></em>');
+
+-- Determine the connection_id
+SELECT * FROM guacamole_connection WHERE connection_name = '<em class="replaceable"><code>test</code></em>' AND parent_id IS NULL;
+
+-- Add parameters to the new connection
+INSERT INTO guacamole_connection_parameter VALUES (<em class="replaceable"><code>1</code></em>, 'hostname', '<em class="replaceable"><code>localhost</code></em>');
+INSERT INTO guacamole_connection_parameter VALUES (<em class="replaceable"><code>1</code></em>, 'port', '<em class="replaceable"><code>5901</code></em>');</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-history"></a>Usage history</h4></div></div></div><a id="idm46420848249248" class="indexterm"></a><p>When a connection is initiated or terminated, a corresponding entry in the
+                        <code class="classname">guacamole_connection_history</code> table is created or
+                    updated respectively. Each entry is associated with the user using the
+                    connection, the connection itself, the  <a class="link" href="jdbc-auth.html#jdbc-auth-schema-sharing-profiles" title="Sharing profiles and parameters">sharing profile</a> in use
+                    (if the connection is being shared), and the time the connection started. If the
+                    connection has ended, the end time is also stored.</p><p>It is very unlikely that a user will need to update this table, but knowing
+                    the structure is potentially useful if you wish to generate a report of
+                    Guacamole usage. The <code class="classname">guacamole_connection_history</code> table
+                    has the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">history_id</span></span></dt><dd><p>The unique integer associated with each history record. This value
+                                is generated automatically when a new entry is inserted into the
+                                    <code class="classname">guacamole_connection_history</code>
+                                table.</p></dd><dt><span class="term"><span class="property">user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> from the entry in
+                                    <code class="classname">guacamole_user</code> associated with the user
+                                using the connection. If the user no longer exists, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">username</span></span></dt><dd><p>The username associated with the user at the time that they used
+                                the connection. This username value is not guaranteed to uniquely
+                                identify a user, as the original user may be subsequently renamed or
+                                deleted.</p></dd><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The value of the <span class="property">connection_id</span> from the entry
+                                in <code class="classname">guacamole_connection</code> associated the
+                                connection being used. If the connection associated with the history
+                                record no longer exists, this will be
+                                <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">connection_name</span></span></dt><dd><p>The name associated with the connection at the time that it was
+                                used.</p></dd><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The value of the <span class="property">sharing_profile_id</span> from the
+                                entry in <code class="classname">guacamole_sharing_profile</code> associated
+                                the sharing profile being used to access the connection. If the
+                                connection is not being shared (no sharing profile is being used),
+                                or if the sharing profile associated with the history record no
+                                longer exists, this will be <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">sharing_profile_name</span></span></dt><dd><p>The name associated with the sharing profile being used to access
+                                the connection at the time this history entry was recorded. If the
+                                connection is not being shared, this will be
+                                    <code class="constant">NULL</code>.</p></dd><dt><span class="term"><span class="property">start_date</span></span></dt><dd><p>The time at which the connection was started by the user
+                                specified. Despite its name, this column also stores time
+                                information in addition to the date.</p></dd><dt><span class="term"><span class="property">end_date</span></span></dt><dd><p>The time at which the connection ended. If the connection is still
+                                active, the value in this column will be <code class="constant">NULL</code>.
+                                Despite its name, this column also stores time information in
+                                addition to the date.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-sharing-profiles"></a>Sharing profiles and parameters</h3></div></div></div><a id="idm46420847600832" class="indexterm"></a><a id="idm46420847599792" class="indexterm"></a><p>Each sharing profile has an entry in the
+                    <code class="classname">guacamole_sharing_profile</code> table, with a one-to-many
+                relationship to parameters, stored as name/value pairs in the
+                    <code class="classname">guacamole_sharing_profile_parameter</code> table.</p><p>The <code class="classname">guacamole_sharing_profile</code> table is simply a pairing of
+                a unique and descriptive name with the connection that can be shared using the
+                sharing profile, also known as the "primary connection". It contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The unique integer associated with each sharing profile. This value is
+                            generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_sharing_profile</code> table.</p></dd><dt><span class="term"><span class="property">sharing_profile_name</span></span></dt><dd><p>The unique name associated with each sharing profile. This value must
+                            be specified manually, and must be different from any existing sharing
+                            profile name associated with the same primary connection. References to
+                            sharing profiles in other tables use the value from
+                                <span class="property">sharing_profile_id</span>, not
+                                <span class="property">sharing_profile_name</span>.</p></dd><dt><span class="term"><span class="property">primary_connection_id</span></span></dt><dd><p>The unique integer associated with the primary connection. The
+                            "primary connection" is the connection which can be shared using this
+                            sharing profile.</p></dd></dl></div><p>As there are potentially multiple parameters per sharing profile, where the names
+                of each parameter are completely arbitrary and determined only by the protocol
+                associated with the primary connection, every parameter for a given sharing profile
+                has an entry in the <code class="classname">guacamole_sharing_profile_parameter</code> table
+                associated with its corresponding sharing profile. This table contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The <span class="property">sharing_profile_id</span> value from the entry in
+                            the <code class="classname">guacamole_sharing_profile</code> table for the
+                            sharing profile this parameter applies to.</p></dd><dt><span class="term"><span class="property">parameter_name</span></span></dt><dd><p>The name of the parameter to set. This is the name listed in the
+                            documentation for the protocol of the primary connection of the
+                            associated sharing profile.</p></dd><dt><span class="term"><span class="property">parameter_value</span></span></dt><dd><p>The value to assign to the parameter named. While this value is an
+                            arbitrary string, it must conform to the requirements of the protocol as
+                            documented.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-connection-groups"></a>Connection groups</h3></div></div></div><a id="idm46420847350912" class="indexterm"></a><p>Each connection group has an entry in the
+                    <code class="classname">guacamole_connection_group</code> table, with a one-to-many
+                relationship to other groups and connections.</p><p>The <code class="classname">guacamole_connection_group</code> table is simply a pairing of
+                a unique and descriptive name with a group type, which can be either
+                    <span class="type">ORGANIZATIONAL</span> or <span class="type">BALANCING</span>. It contains the following
+                columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">connection_group_id</span></span></dt><dd><p>The unique integer associated with each connection group. This value
+                            is generated automatically when a new entry is inserted into the
+                                <code class="classname">guacamole_connection_group</code> table.</p></dd><dt><span class="term"><span class="property">connection_group_name</span></span></dt><dd><p>The unique name associated with each connection group. This value must
+                            be specified manually, and must be different from any existing
+                            connection group name in the same connection group. References to
+                            connections in other tables use the value from
+                                <span class="property">connection_group_id</span>, not
+                                <span class="property">connection_group_name</span>.</p></dd><dt><span class="term"><span class="property">type</span></span></dt><dd><p>The type of this connection group. This can be either
+                                <span class="type">ORGANIZATIONAL</span> or <span class="type">BALANCING</span>.</p></dd><dt><span class="term"><span class="property">parent_id</span></span></dt><dd><p>The unique integer associated with the connection group containing
+                            this connection group, or <code class="constant">NULL</code> if this connection
+                            group is within the root group.</p></dd><dt><span class="term"><span class="property">max_connections</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection group at any one time <span class="emphasis"><em>regardless of
+                            user</em></span>. <code class="constant">NULL</code> will use the default value
+                            specified in <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited. This only has
+                            an effect on <span class="type">BALANCING</span> groups.</p></dd><dt><span class="term"><span class="property">max_connections_per_user</span></span></dt><dd><p>The maximum number of concurrent connections to allow to this
+                            connection group at any one time <span class="emphasis"><em>from a single
+                            user</em></span>. <code class="constant">NULL</code> will use the default value
+                            specified in <code class="filename">guacamole.properties</code> with the
+                                <span class="property">mysql-default-max-connections</span> or
+                                <span class="property">postgresql-default-max-connections</span> properties,
+                            and a value of <code class="constant">0</code> denotes unlimited. This only has
+                            an effect on <span class="type">BALANCING</span> groups.</p></dd><dt><span class="term"><span class="property">enable_session_affinity</span></span></dt><dd><p>Whether session affinity should apply to this connection group. If
+                            this column is set to <code class="constant">TRUE</code> or
+                                <code class="constant">1</code>, users will be consistently routed to the
+                            same underlying connection until they log out. The normal balancing
+                            behavior will only apply for each user's first connection attempt during
+                            any one Guacamole session. By default, session affinity is not enabled,
+                            and connections will always be balanced across the entire connection
+                            group. This only has an effect on <span class="type">BALANCING</span> groups.</p></dd></dl></div><p>Adding a connection group is even simpler than adding a new connection as there
+                are no associated parameters stored in a separate table:</p><div class="informalexample"><pre class="programlisting">-- Create connection group
+INSERT INTO guacamole_connection_group (connection_group_name, type)
+     VALUES ('<em class="replaceable"><code>test</code></em>', '<em class="replaceable"><code>ORGANIZATIONAL</code></em>');</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="jdbc-auth-schema-permissions"></a>Permissions</h3></div></div></div><p>There are several permissions tables in the schema which correspond to the types
+                of permissions in Guacamole's authentication model: system permissions, which
+                control operations that affect the system as a whole, and permissions which control
+                operations that affect specific objects within the system, such as users,
+                connections, or groups.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-system-permissions"></a>lSystem permissions</h4></div></div></div><a id="idm46420847315120" class="indexterm"></a><p>System permissions are defined by entries in the
+                        <code class="classname">guacamole_system_permission</code> table. Each entry grants
+                    permission for a specific user or user group to perform a specific system
+                    operation.</p><p>The <code class="classname">guacamole_system_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of six
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to administer the entire system (essentially a wildcard
+                                permission), <code class="constant">CREATE_CONNECTION</code>, which grants
+                                the ability to create connections,
+                                    <code class="constant">CREATE_CONNECTION_GROUP</code>, which grants the
+                                ability to create connections groups,
+                                    <code class="constant">CREATE_SHARING_PROFILE</code>, which grants the
+                                ability to create sharing profiles,
+                                <code class="constant">CREATE_USER</code>, which grants the ability to create
+                                users, or <code class="constant">CREATE_USER_GROUP</code>, which grants the
+                                ability to create user groups.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-user-permissions"></a>User permissions</h4></div></div></div><a id="idm46420847550192" class="indexterm"></a><p>User permissions are defined by entries in the
+                        <code class="classname">guacamole_user_permission</code> table. Each entry grants
+                    permission for a specific user or user group to perform a specific operation on
+                    an existing user.</p><p>The <code class="classname">guacamole_user_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">affected_user_id</span></span></dt><dd><p>The value of the <span class="property">user_id</span> column of the entry
+                                associated with the user <span class="emphasis"><em>affected</em></span> by this
+                                permission. This is the user that would be the object of the
+                                operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the user,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the user, <code class="constant">UPDATE</code>, which grants
+                                the ability to update data associated with the user, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the user.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-group-permissions"></a>User group permissions</h4></div></div></div><a id="idm46420847535344" class="indexterm"></a><p>User group permissions are defined by entries in the
+                        <code class="classname">guacamole_user_group_permission</code> table. Each entry
+                    grants permission for a specific user or user group to perform a specific
+                    operation on an existing user group.</p><p>The <code class="classname">guacamole_user_group_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">affected_user_group_id</span></span></dt><dd><p>The value of the <span class="property">user_group_id</span> column of the
+                                entry associated with the user group <span class="emphasis"><em>affected</em></span>
+                                by this permission. This is the user group that would be the object
+                                of the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the user group,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the user group, <code class="constant">UPDATE</code>, which
+                                grants the ability to update data associated with the user group, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the user group.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-permissions"></a>Connection permissions</h4></div></div></div><a id="idm46420847923264" class="indexterm"></a><p>Connection permissions are defined by entries in the
+                        <code class="classname">guacamole_connection_permission</code> table. Each entry
+                    grants permission for a specific user or user group to perform a specific
+                    operation on an existing connection.</p><p>The <code class="classname">guacamole_connection_permission</code> table contains the
+                    following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">connection_id</span></span></dt><dd><p>The value of the <span class="property">connection_id</span> column of the
+                                entry associated with the connection affected by this permission.
+                                This is the connection that would be the object of the operation
+                                represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the connection,
+                                    <code class="constant">READ</code>, which grants the ability to read data
+                                associated with the connection (a prerequisite for connecting),
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the connection, or <code class="constant">DELETE</code>,
+                                which grants the ability to delete the connection.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-sharing-profile-permissions"></a>Sharing profile permissions</h4></div></div></div><a id="idm46420847908848" class="indexterm"></a><p>Sharing profile permissions are defined by entries in the
+                        <code class="classname">guacamole_sharing_profile_permission</code> table. Each
+                    entry grants permission for a specific user or user group to perform a specific
+                    operation on an existing sharing profile.</p><p>The <code class="classname">guacamole_sharing_profile_permission</code> table contains
+                    the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">sharing_profile_id</span></span></dt><dd><p>The value of the <span class="property">sharing_profile_id</span> column of
+                                the entry associated with the sharing profile affected by this
+                                permission. This is the sharing profile that would be the object of
+                                the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the sharing
+                                profile, <code class="constant">READ</code>, which grants the ability to read
+                                data associated with the sharing profile (a prerequisite for using
+                                the sharing profile to share an active connection),
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the sharing profile, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the sharing profile.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="jdbc-auth-schema-connection-group-permissions"></a>Connection group permissions</h4></div></div></div><a id="idm46420847894128" class="indexterm"></a><p>Connection group permissions are defined by entries in the
+                        <code class="classname">guacamole_connection_group_permission</code> table. Each
+                    entry grants permission for a specific user or user group to perform a specific
+                    operation on an existing connection group.</p><p>The <code class="classname">guacamole_connection_group_permission</code> table
+                    contains the following columns:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">entity_id</span></span></dt><dd><p>The value of the <span class="property">entity_id</span> column of the
+                                entry associated with the user or user group owning this
+                                permission.</p></dd><dt><span class="term"><span class="property">connection_group_id</span></span></dt><dd><p>The value of the <span class="property">connection_group_id</span> column
+                                of the entry associated with the connection group affected by this
+                                permission. This is the connection group that would be the object of
+                                the operation represented by this permission.</p></dd><dt><span class="term"><span class="property">permission</span></span></dt><dd><p>The permission being granted. This column can have one of four
+                                possible values: <code class="constant">ADMINISTER</code>, which grants the
+                                ability to add or remove permissions which affect the connection
+                                group, <code class="constant">READ</code>, which grants the ability to read
+                                data associated with the connection group,
+                                    <code class="constant">UPDATE</code>, which grants the ability to update
+                                data associated with the connection group, or
+                                    <code class="constant">DELETE</code>, which grants the ability to delete
+                                the connection group (and implicitly its contents).</p></dd></dl></div></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="configuring-guacamole.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ldap-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 5. Configuring Guacamole </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 7. LDAP authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/ldap-auth.html b/doc/1.1.0/gug/ldap-auth.html
new file mode 100644
index 0000000..392564d
--- /dev/null
+++ b/doc/1.1.0/gug/ldap-auth.html
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 7. LDAP authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="jdbc-auth.html" title="Chapter 6. Database authentication" /><link rel="next" href="duo-auth.html" title="Chapter 8. Duo two-factor authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 7. LDAP authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="jdbc-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="duo-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="ldap-auth"></a>Chapter 7. LDAP authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="ldap-auth.html#ldap-architecture">How Guacamole uses LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-downloading">Downloading the LDAP extension</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-schema-changes">Preparing your LDAP directory (optional)</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#idm46420849398608">Applying the schema changes to OpenLDAP</a></span></dt></dl></dd><dt><span class="section"><a href="ldap-auth.html#ldap-and-database">Associating LDAP with a database</a></span></dt><dt><span class="section"><a href="ldap-auth.html#installing-ldap-auth">Installing LDAP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#guac-ldap-config">Configuring Guacamole for LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#idm46420847197056">Completing the installation</a></span></dt></dl></dd><dt><span class="section"><a href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#idm46420848077040">Users</a></span></dt><dt><span class="section"><a href="ldap-auth.html#idm46420848075728">Connections and parameters</a></span></dt></dl></dd></dl></div><a id="idm46420848526848" class="indexterm"></a><p>Guacamole supports LDAP authentication via an extension available from the main project
+        website. This extension allows users and connections to be stored directly within an LDAP
+        directory. If you have a centralized authentication system that uses LDAP, Guacamole's LDAP
+        support can be a good way to allow your users to use their existing usernames and passwords
+        to log into Guacamole.</p><p>To use the LDAP authentication extension, you will need:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>An LDAP directory as storage for all authentication data, such as OpenLDAP.</p></li><li class="listitem"><p>The ability to modify the schema of your LDAP directory.</p></li></ol></div><p>The instructions here assume you already have an LDAP directory installed and working, and
+        do not cover the initial setup of such a directory.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-architecture"></a>How Guacamole uses LDAP</h2></div></div></div><p>If the LDAP extension is installed, Guacamole will authenticate users against your
+            LDAP server by attempting a bind as that user. The given username and password will be
+            submitted to the LDAP server during the bind attempt.</p><p>If the bind attempt is successful, the set of available Guacamole connections is
+            queried from the LDAP directory by executing an LDAP query as the bound user. Each
+            Guacamole connection is represented within the directory as a special type of group:
+                <code class="classname">guacConfigGroup</code>. Attributes associated with the group define
+            the protocol and parameters of the connection, and users are allowed access to the
+            connection only if they are associated with that group.</p><p>This architecture has a number of benefits:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Your users can use their existing usernames and passwords to log into
+                    Guacamole.</p></li><li class="listitem"><p>You can manage Guacamole connections using the same tool that you already use
+                    to manage your LDAP directory, such as <a class="link" href="https://directory.apache.org/studio/" target="_top">Apache Directory
+                        Studio</a>.</p></li><li class="listitem"><p>Existing security restrictions can limit visibility/accessibility of Guacamole
+                    connections.</p></li><li class="listitem"><p>Access to connections can easily be granted and revoked, as each connection is
+                    represented by a group.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>Though Guacamole connections can be stored within the LDAP directory, this is not
+                required. Connection data can alternatively be stored within a database like MySQL
+                or PostgreSQL as long as the LDAP username matches the username of the database
+                user. Configuring Guacamole to use a database for authentication or connection
+                storage is covered in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a> and later in this chapter in <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-downloading"></a>Downloading the LDAP extension</h2></div></div></div><p>The LDAP authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The LDAP authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacamole-auth-ldap-1.1.0.jar</code></span></dt><dd><p>The Guacamole LDAP support extension itself, which must be placed in
+                            <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></dd><dt><span class="term"><code class="filename">schema/</code></span></dt><dd><p>LDAP schema files. An <code class="filename">.ldif</code> file compatible with
+                        OpenLDAP is provided, as well as a <code class="filename">.schema</code> file
+                        compliant with RFC-2252. The <code class="filename">.schema</code> file can be
+                        transformed into the <code class="filename">.ldif</code> file automatically.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-schema-changes"></a>Preparing your LDAP directory (optional)</h2></div></div></div><p>Although your LDAP directory already provides a means of storing and authenticating
+            users, Guacamole also needs storage of connection configuration data, such as hostnames
+            and ports, and a means of associating users with connections that they should have
+            access to. You can do this either through modifying the LDAP directory schema, or
+            through using a database like MySQL or PostgreSQL. If you do not wish to use the LDAP
+            directory for connection storage, skip ahead to <a class="xref" href="ldap-auth.html#ldap-and-database" title="Associating LDAP with a database">the section called “Associating LDAP with a database”</a>.</p><p>If you wish to store connection data directly within the LDAP directory, the required
+            modifications to the LDAP schema are made through applying one of the provided schema
+            files. These schema files define an additional object class,
+                <code class="classname">guacConfigGroup</code>, which contains all configuration information
+            for a particular connection, and can be associated with arbitrarily-many users and
+            groups. Each connection defined by a <code class="classname">guacConfigGroup</code> will be
+            accessible only by users who are members of that group (specified with the
+                <span class="property">member</span> attribute), or who are members of associated groups
+            (specified with the <span class="property">seeAlso</span> attribute).</p><div class="important"><h3 class="title">Important</h3><p>The instructions given for applying the Guacamole LDAP schema changes are specific
+                to OpenLDAP, but other LDAP implementations, including Active Directory, will have
+                their own methods for updating the schema.</p><p>If you are not using OpenLDAP, a standards-compliant schema file is provided that
+                can be used to update the schema of any LDAP directory supporting RFC-2252. Please
+                consult the documentation of your LDAP directory to determine how such schema
+                changes can be applied.</p></div><p>The schema files are located within the <code class="filename">schema/</code> directory of the
+            archive containing the LDAP extension. You will only need one of these files:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="filename">guacConfigGroup.schema</code></span></dt><dd><p>A standards-compliant file describing the schema. This file can be used
+                        with any LDAP directory compliant with RFC-2252.</p></dd><dt><span class="term"><code class="filename">guacConfigGroup.ldif</code></span></dt><dd><p>An LDIF file compatible with OpenLDAP. This file was automatically built
+                        from the provided <code class="filename">.schema</code> file for convenience.</p></dd></dl></div><p>This chapter will cover applying <code class="filename">guacConfigGroup.ldif</code> to an
+            OpenLDAP server. If you are not using OpenLDAP, your LDAP server should provide
+            documentation for modifying its schema. If this is the case, please consult the
+            documentation of your LDAP server before proceeding.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420849398608"></a>Applying the schema changes to OpenLDAP</h3></div></div></div><p>Schema changes to OpenLDAP are applied using the <span class="command"><strong>ldapadd</strong></span>
+                utility with the provided <code class="filename">guacConfigGroup.ldif</code> file:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>ldapadd -Q -Y EXTERNAL -H ldapi:/// -f schema/guacConfigGroup.ldif</code></strong>
+<code class="computeroutput">adding new entry "cn=guacConfigGroup,cn=schema,cn=config"
+</code>
+<code class="prompt">#</code></pre></div><p>If the <code class="classname">guacConfigGroup</code> object was added successfully, you
+                should see output as above. You can confirm the presence of the new object class
+                using <span class="command"><strong>ldapsearch</strong></span>:</p><div class="informalexample"><pre class="screen"><code class="prompt">#</code> <strong class="userinput"><code>ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn</code></strong>
+<code class="computeroutput">dn: cn=schema,cn=config
+
+dn: cn={0}core,cn=schema,cn=config
+
+dn: cn={1}cosine,cn=schema,cn=config
+
+dn: cn={2}nis,cn=schema,cn=config
+
+dn: cn={3}inetorgperson,cn=schema,cn=config
+
+dn: cn={4}guacConfigGroup,cn=schema,cn=config
+</code>
+<code class="prompt">#</code></pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-and-database"></a>Associating LDAP with a database</h2></div></div></div><p>If you install both the LDAP authentication as well as support for a database
+            (following the instructions in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>), Guacamole will
+            automatically attempt to authenticate against both systems whenever a user attempts to
+            log in. In addition to any visible objects within the LDAP directory, that user will
+            have access to any data associated with their account in the database, as well as any
+            data associated with user groups that they belong to. LDAP user accounts and groups will
+            be considered equivalent to database users and groups if their unique names are
+            identical, as determined by the attributes given for <a class="link" href="ldap-auth.html#guac-ldap-config" title="Configuring Guacamole for LDAP">the <span class="property">ldap-username-attribute</span> and
+                    <span class="property">ldap-group-name-attribute</span> properties</a>.</p><p>Data can be manually associated with LDAP user accounts or groups by creating
+            corresponding users or groups within the database which each have the same names. As
+            long as the names are identical, a successful login attempt against LDAP will be trusted
+            by the database authentication, and that user's associated data will be visible.</p><p>If an administrator account (such as the default <code class="systemitem">guacadmin</code>
+            user provided with the database authentication) has a corresponding user in the LDAP
+            directory with permission to read other LDAP users and groups, the Guacamole
+            administrative interface will include them in the lists presented to the administrator,
+            and will allow connections from the database to be associated with those users or groups
+            directly.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-ldap-auth"></a>Installing LDAP authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the LDAP authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-ldap-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use LDAP authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the LDAP authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-ldap-config"></a>Configuring Guacamole for LDAP</h3></div></div></div><a id="idm46420847161760" class="indexterm"></a><a id="idm46420847160864" class="indexterm"></a><p>Additional properties may be added to <code class="filename">guacamole.properties</code> to
+                describe how your LDAP directory is organized and how Guacamole should connect (and
+                bind) to your LDAP server. Among these properties, only the
+                    <span class="property">ldap-user-base-dn</span> property is required:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">ldap-hostname</span></span></dt><dd><p>The hostname of your LDAP server. If omitted, "localhost" will be used
+                            by default. You will need to use a different value if your LDAP server
+                            is located elsewhere.</p></dd><dt><span class="term"><span class="property">ldap-port</span></span></dt><dd><p>The port your LDAP server listens on. If omitted, the standard LDAP or
+                            LDAPS port will be used, depending on the encryption method specified
+                            with <span class="property">ldap-encryption-method</span> (if any). Unencrypted
+                            LDAP uses the standard port of 389, while LDAPS uses port 636. Unless
+                            you manually configured your LDAP server to do otherwise, your LDAP
+                            server probably listens on port 389.</p></dd><dt><span class="term"><span class="property">ldap-encryption-method</span></span></dt><dd><p>The encryption mechanism that Guacamole should use when communicating
+                            with your LDAP server. Legal values are "none" for unencrypted LDAP,
+                            "ssl" for LDAP over SSL/TLS (commonly known as LDAPS), or "starttls" for
+                            STARTTLS. If omitted, encryption will not be used.</p><p>If you do use encryption when connecting to your LDAP server, you will
+                            need to ensure that its certificate chain can be verified using the
+                            certificates in Java's trust store, often referred to as
+                                <code class="filename">cacerts</code>. If this is not the case, you will need
+                            to use Java's <span class="command"><strong>keytool</strong></span> utility to either add the
+                            necessary certificates or to create a new trust store containing those
+                            certificates.</p><p>If you will be using your own trust store and not the default
+                                <code class="filename">cacerts</code>, you will need to specify the full path
+                            to that trust store using the system property
+                                <span class="property">javax.net.ssl.trustStore</span>. Note that this is a
+                            system property and <span class="emphasis"><em>not</em></span> a Guacamole property; it
+                            must be specified when starting the JVM using the <code class="option">-D</code>
+                            option. Your servlet container will provide some means of specifying
+                            startup options for the JVM.</p></dd><dt><span class="term"><span class="property">ldap-max-search-results</span></span></dt><dd><p>The maximum number of search results that can be returned by a single
+                            LDAP query. LDAP queries which exceed this maximum will fail.
+                                <span class="emphasis"><em>This property is optional.</em></span> If omitted, each
+                            LDAP query will be limited to a maximum of 1000 results.</p></dd><dt><span class="term"><span class="property">ldap-search-bind-dn</span></span></dt><dd><p>The DN (Distinguished Name) of the user to bind as when authenticating
+                            users that are attempting to log in. If specified, Guacamole will query
+                            the LDAP directory to determine the DN of each user that logs in. If
+                            omitted, each user's DN will be derived directly using the base DN
+                            specified with <span class="property">ldap-user-base-dn</span>.</p></dd><dt><span class="term"><span class="property">ldap-search-bind-password</span></span></dt><dd><p>The password to provide to the LDAP server when binding as
+                                <span class="property">ldap-search-bind-dn</span> to authenticate other
+                            users. This property is only used if
+                                <span class="property">ldap-search-bind-dn</span> is specified. If omitted,
+                            but <span class="property">ldap-search-bind-dn</span> is specified, Guacamole
+                            will attempt to bind with the LDAP server without a password.</p></dd><dt><span class="term"><span class="property">ldap-user-base-dn</span></span></dt><dd><p>The base of the DN for all Guacamole users. <span class="emphasis"><em>This property is
+                                absolutely required in all cases.</em></span> All Guacamole users
+                            must be descendents of this base DN.</p><p>If a search DN is provided (via
+                                <span class="property">ldap-search-bind-dn</span>), then Guacamole users need
+                            only be somewhere within the subtree of the specified user base
+                            DN.</p><p>If a search DN <span class="emphasis"><em>is not</em></span> provided, then all
+                            Guacamole users must be <span class="emphasis"><em>direct descendents</em></span> of this
+                            base DN, as the base DN will be appended to the username to derive the
+                            user's DN. For example, if <span class="property">ldap-user-base-dn</span> is
+                                "<code class="systemitem">ou=people,dc=example,dc=net</code>", and
+                                <span class="property">ldap-username-attribute</span> is
+                                "<span class="property">uid</span>", then a person attempting to login as
+                                "<code class="systemitem">user</code>" would be mapped to the following
+                            full DN:
+                            "<code class="systemitem">uid=user,ou=people,dc=example,dc=net</code>".</p></dd><dt><span class="term"><span class="property">ldap-username-attribute</span></span></dt><dd><p>The attribute or attributes which contain the username within all
+                            Guacamole user objects in the LDAP directory. Usually, and by default,
+                            this will simply be "<span class="property">uid</span>". If your LDAP directory
+                            contains users whose usernames are dictated by different attributes,
+                            multiple attributes can be specified here, separated by commas, but
+                            beware: <span class="emphasis"><em>doing so requires that a search DN be provided with
+                                    <span class="property">ldap-search-bind-dn</span></em></span>.</p><p>If a search DN <span class="emphasis"><em>is not</em></span> provided, then the single
+                            username attribute specified here will be used together with the user
+                            base DN to directly derive the full DN of each user. For example, if
+                                <span class="property">ldap-user-base-dn</span> is
+                                "<code class="systemitem">ou=people,dc=example,dc=net</code>", and
+                                <span class="property">ldap-username-attribute</span> is
+                                "<span class="property">uid</span>", then a person attempting to login as
+                                "<code class="systemitem">user</code>" would be mapped to the following
+                            full DN:
+                            "<code class="systemitem">uid=user,ou=people,dc=example,dc=net</code>".</p></dd><dt><span class="term"><span class="property">ldap-member-attribute</span></span></dt><dd><p>The attribute which contains the members within all group objects in the
+                          LDAP directory. Usually, and by default, this will simply be
+                          "<span class="property">member</span>". If your LDAP directory contains groups
+                          whose members are dictated by a different attribute, it can be specified
+                          here.</p></dd><dt><span class="term"><span class="property">ldap-user-attributes</span></span></dt><dd><p>The attribute or attributes to retrieve from the LDAP directory for
+                            the currently logged-in user, separated by commas. If specified, the
+                            attributes listed here are retrieved from each authenticated user and
+                            dynamically applied to the parameters of that user's connections as
+                                <a class="link" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">parameter tokens</a> with the
+                            prefix "<code class="varname">LDAP_</code>".</p><p>When a user authenticates with LDAP and accesses a particular
+                            Guacamole connection, the values of these tokens will be the values of
+                            their corresponding attributes at the time of authentication. If the
+                            attribute has no value for the current user, then the corresponding
+                            token is not applied. If the attribute has multiple values, then the
+                            first value of the attribute is used.</p><p>When converting an LDAP attribute name into a parameter token name,
+                            the name of the attribute is transformed into uppercase with each word
+                            separated by underscores, a naming convention referred to as "uppercase
+                            with underscores" or "<a class="link" href="https://en.wikipedia.org/wiki/Naming_convention_(programming)#Multiple-word_identifiers" target="_top">screaming snake case</a>". For example:</p><div class="table"><a id="idm46420849362480"></a><p class="title"><strong>Table 7.1. Example LDAP attribute / parameter token conversions</strong></p><div class="table-contents"><table class="table" summary="Example LDAP attribute / parameter token conversions" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>LDAP Attribute</th><th>Parameter Token</th></tr></thead><tbody><tr><td><code class="varname">lowercase-with-dashes</code></td><td><code class="varname">${LDAP_LOWERCASE_WITH_DASHES}</code></td></tr><tr><td><code class="varname">CamelCase</code></td><td><code class="varname">${LDAP_CAMEL_CASE}</code></td></tr><tr><td><code class="varname">headlessCamelCase</code></td><td><code class="varname">${LDAP_HEADLESS_CAMEL_CASE}</code></td></tr><tr><td><code class="varname">lettersAndNumbers1234</code></td><td><code class="varname">${LDAP_LETTERS_AND_NUMBERS_1234}</code></td></tr><tr><td><code class="varname">aRANDOM_mixOf-3NAMINGConventions</code></td><td><code class="varname">${LDAP_A_RANDOM_MIX_OF_3_NAMING_CONVENTIONS}</code></td></tr></tbody></table></div></div><br class="table-break" /><p>Usage of parameter tokens is discussed in more detail in <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> in <a class="xref" href="configuring-guacamole.html#parameter-tokens" title="Parameter tokens">the section called “Parameter tokens”</a>.</p></dd><dt><span class="term"><span class="property">ldap-user-search-filter</span></span></dt><dd><p>The search filter used to query the LDAP tree for users that can log
+                            into and be granted privileges in Guacamole. <span class="emphasis"><em>If this property
+                                is omitted the default of "(objectClass=*)" will be used.
+                            </em></span></p></dd><dt><span class="term"><span class="property">ldap-config-base-dn</span></span></dt><dd><p>The base of the DN for all Guacamole configurations. <span class="emphasis"><em>This
+                                property is optional.</em></span> If omitted, the configurations of
+                            Guacamole connections will simply not be queried from the LDAP
+                            directory. If specified, this base DN will be used when querying the
+                            configurations accessible by a user once they have successfully logged
+                            in.</p><p>Each configuration is analogous to a connection. Within Guacamole's
+                            LDAP support, each configuration functions as a group, having user
+                            members (via the <span class="property">member</span> attribute) and optionally
+                            group members (via the <span class="property">seeAlso</span> attribute), where
+                            each member of a particular configuration group will have access to the
+                            connection defined by that configuration.</p></dd><dt><span class="term"><span class="property">ldap-group-base-dn</span></span></dt><dd><p>The base of the DN for all user groups that may be used by other
+                            extensions to define permissions or that may referenced within Guacamole
+                            configurations using the standard <span class="property">seeAlso</span>
+                            attribute. All groups which will be used to control access to Guacamole
+                            configurations must be descendents of this base DN. <span class="emphasis"><em>If this
+                                property is omitted, the <span class="property">seeAlso</span> attribute will
+                                have no effect on Guacamole configurations.</em></span></p></dd><dt><span class="term"><span class="property">ldap-group-name-attribute</span></span></dt><dd><p>The attribute or attributes which define the unique name of user
+                            groups in the LDAP directory. Usually, and by default, this will simply
+                            be "<span class="property">cn</span>". If your LDAP directory contains groups
+                            whose names are dictated by different attributes, multiple attributes
+                            can be specified here, separated by commas.</p></dd><dt><span class="term"><span class="property">ldap-dereference-aliases</span></span></dt><dd><p>Controls whether or not the LDAP connection follows (dereferences)
+                            aliases as it searches the tree. Possible values for this property are
+                            "never" (the default) so that aliases will never be followed,
+                            "searching" to dereference during search operations after the base
+                            object is located, "finding" to dereference in order to locate the
+                            search base, but not during the actual search, and "always" to always
+                            dereference aliases.</p></dd><dt><span class="term"><span class="property">ldap-follow-referrals</span></span></dt><dd><p>This option controls whether or not the LDAP module follow referrals
+                            when processing search results from a LDAP search. Referrals can be
+                            pointers to other parts of an LDAP tree, or to a different
+                            server/connection altogether. This is a boolean parameter, with valid
+                            options of "true" or "false." The default is false. When disabled, LDAP
+                            referrals will be ignored when encounterd by the Guacamole LDAP client
+                            and the client will move on to the next result. When enabled, the LDAP
+                            client will follow the referral and process results within the referral,
+                            subject to the maximum hops parameter below.</p></dd><dt><span class="term"><span class="property">ldap-max-referral-hops</span></span></dt><dd><p>This option controls the maximum number of referrals that will be
+                            processed before the LDAP client refuses to follow any more referrals.
+                            The default is 5. If the ldap-follow-referrals property is set to false
+                            (the default), this option has no effect. If the ldap-follow-referrals
+                            option is set to true, this will limit the depth of referrals followed
+                            to the number specified.</p></dd><dt><span class="term"><span class="property">ldap-operation-timeout</span></span></dt><dd><p>This option sets the timeout, in seconds, of any single LDAP
+                            operation. The default is 30 seconds. When this timeout is reached LDAP
+                            operations will be aborted.</p></dd></dl></div><p>Again, even if the defaults are sufficient for the other properties, <span class="emphasis"><em>you
+                    must still specify the <span class="property">ldap-user-base-dn</span>
+                    property</em></span>. An absolutely minimal configuration for LDAP authentication
+                will look like the following:</p><pre class="programlisting"># LDAP properties
+ldap-user-base-dn:       <em class="replaceable"><code>ou=people,dc=example,dc=net</code></em></pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420847197056"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before the LDAP authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the LDAP extension will prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container. If properly configured, you will be able to log in as any user
+                within the defined <span class="property">ldap-user-base-dn</span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="ldap-auth-schema"></a>The LDAP schema</h2></div></div></div><a id="idm46420847788464" class="indexterm"></a><p>Guacamole's LDAP support allows users and connections to be managed purely within an
+            LDAP directory defined in <code class="filename">guacamole.properties</code>. This is
+            accomplished with a minimum of changes to the standard LDAP schema - all Guacamole users
+            are traditional LDAP users and share the same mechanism of authentication. The only new
+            type of object required is a representation for Guacamole connections,
+                <code class="classname">guacConfigGroup</code>, which was added to your server's schema
+            during the install process above.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848077040"></a>Users</h3></div></div></div><p>All Guacamole users, as far as the LDAP support is concerned, are LDAP users with
+                standard LDAP credentials. When a user signs in to Guacamole, their username and
+                password will be used to bind to the LDAP server. If this bind operation is
+                successful, the available connections are queried from the directory and the user is
+                allowed in.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420848075728"></a>Connections and parameters</h3></div></div></div><p>Each connection is represented by an instance of the
+                    <code class="classname">guacConfigGroup</code> object class, an extended version of the
+                standard LDAP <code class="classname">groupOfNames</code>, which provides a protocol and set
+                of parameters. Only members of the <code class="classname">guacConfigGroup</code> will have
+                access to the corresponding connection.</p><p>The <code class="classname">guacConfigGroup</code> object class provides two new
+                attributes in addition to those provided by
+                <code class="classname">groupOfNames</code>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">guacConfigProtocol</span></span></dt><dd><p>The protocol associated with the connection, such as
+                                "<code class="constant">vnc</code>" or "<code class="constant">rdp</code>". This
+                            attribute is required for every <code class="classname">guacConfigGroup</code>
+                            and can be given only once.</p></dd><dt><span class="term"><span class="property">guacConfigParameter</span></span></dt><dd><p>The name and value of a parameter for the specified protocol. This is
+                            given as
+                                    <code class="code"><em class="replaceable"><code>name</code></em>=<em class="replaceable"><code>value</code></em></code>,
+                            where "name" is the name of the parameter, as defined by the
+                            documentation for the protocol specified, and "value" is any allowed
+                            value for that parameter.</p><p>This attribute can be given multiple times for the same
+                            connection.</p></dd></dl></div><p>For example, to create a new VNC connection which connects to "localhost" at port
+                5900, while granting access to <code class="systemitem">user1</code> and
+                    <code class="systemitem">user2</code>, you could create an <code class="filename">.ldif</code>
+                file like the following:</p><div class="informalexample"><pre class="programlisting">dn: cn=Example Connection,ou=groups,dc=example,dc=net
+objectClass: guacConfigGroup
+objectClass: groupOfNames
+cn: Example Connection
+guacConfigProtocol: vnc
+guacConfigParameter: hostname=localhost
+guacConfigParameter: port=5900
+guacConfigParameter: password=secret
+member: cn=user1,ou=people,dc=example,dc=net
+member: cn=user2,ou=people,dc=example,dc=net</pre></div><p>The new connection can then be created using the <span class="command"><strong>ldapadd</strong></span>
+                utility:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>ldapadd -x -D <em class="replaceable"><code>cn=admin,dc=example,dc=net</code></em> -W -f <em class="replaceable"><code>example-connection.ldif</code></em></code></strong>
+<code class="computeroutput">Enter LDAP Password:
+adding new entry "cn=Example Connection,ou=groups,dc=example,dc=net"
+</code>
+<code class="prompt">$</code></pre></div><p>Where <code class="systemitem">cn=admin,dc=example,dc=net</code> is an administrator
+                account with permission to create new entries, and
+                    <code class="filename">example-connection.ldif</code> is the name of the
+                    <code class="filename">.ldif</code> file you just created.</p><p>There is, of course, no need to use only the standard LDAP utilities to create
+                connections and users. There are useful graphical environments for manipulating LDAP
+                directories, such as <a class="link" href="https://directory.apache.org/studio/" target="_top">Apache
+                    Directory Studio</a>, which make many of the tasks given above much
+                easier.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="jdbc-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="duo-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 6. Database authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 8. Duo two-factor authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/libguac.html b/doc/1.1.0/gug/libguac.html
new file mode 100644
index 0000000..9aa892a
--- /dev/null
+++ b/doc/1.1.0/gug/libguac.html
@@ -0,0 +1,263 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 19. libguac</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="guacamole-protocol.html" title="Chapter 18. The Guacamole protocol" /><link rel="next" href="guacamole-common.html" title="Chapter 20. guacamole-common" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 19. libguac</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-protocol.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="guacamole-common.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="libguac"></a>Chapter 19. libguac</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="libguac.html#libguac-error-handling">Error handling</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-client-plugins">Client plugins</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-lifecycle-entry">Entry point</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-lifecycle-users">Joining/leaving a connection</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-lifecycle-termination">Termination</a></span></dt></dl></dd><dt><span class="section"><a href="libguac.html#libguac-layers">Layers and buffers</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-streams">Streams</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-sending-instructions">Sending instructions</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-event-handling">Event handling</a></span></dt><dd><dl><dt><span class="section"><a href="libguac.html#libguac-key-events">Key events</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-mouse-events">Mouse events</a></span></dt><dt><span class="section"><a href="libguac.html#libguac-clipboard-events">Clipboard, file, and other stream events</a></span></dt></dl></dd></dl></div><a id="idm46420845124768" class="indexterm"></a><a id="idm46420845123424" class="indexterm"></a><p>The C API for extending and developing with Guacamole is libguac. All
+        native components produced by the Guacamole project link with this
+        library, and this library provides the common basis for extending the
+        native functionality of those native components (by implementing client
+        plugins).</p><p>libguac is used mainly for developing client plugins like
+        libguac-client-vnc or libguac-client-rdp, or for developing a proxy
+        supporting the Guacamole protocol like guacd. This chapter is intended
+        to give an overview of how libguac is used, and how to use it for
+        general communication with the Guacamole protocol.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-error-handling"></a>Error handling</h2></div></div></div><p>Most functions within libguac handle errors by returning a zero or
+            non-zero value, whichever is appropriate for the function at hand.
+            If an error is encountered, the <code class="varname">guac_error</code>
+            variable is set appropriately, and
+                <code class="varname">guac_error_message</code> contains a
+            statically-allocated human-readable string describing the context of
+            the error. These variables intentionally mimic the functionality
+            provided by <code class="varname">errno</code> and
+                <code class="filename">errno.h</code>.</p><p>Both <code class="varname">guac_error</code> and
+                <code class="varname">guac_error_message</code> are defined within
+                <code class="filename">error.h</code>. A human-readable string describing
+            the error indicated by <code class="varname">guac_error</code> can be
+            retrieved using <code class="methodname">guac_status_string()</code>, which
+            is also statically allocated.</p><p>If functions defined within client plugins set
+                <code class="varname">guac_error</code> and
+                <code class="varname">guac_error_message</code> appropriately when errors
+            are encountered, the messages logged to syslog by guacd will be more
+            meaningful for both users and developers.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-client-plugins"></a>Client plugins</h2></div></div></div><p>Client plugins are libraries which follow specific conventions such that they can be
+            loaded dynamically by guacd. All client plugins <span class="emphasis"><em>must</em></span>:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>Follow a naming convention, where the name of the library is
+                            <span class="package">libguac-client-<em class="replaceable"><code>PROTOCOL</code></em></span>.
+                        <span class="emphasis"><em>This is necessary for guacd to locate the library for a requested
+                        protocol.</em></span></p></li><li class="listitem"><p>Be linked against libguac, the library used by guacd to handle the Guacamole
+                    protocol. The structures which are given to functions invoked by guacd are
+                    defined by libguac, and are expected to be manipulated via the functions
+                    provided by libguac or as otherwise documented within the structure itself.
+                        <span class="emphasis"><em>Communication between guacd and client plugins is only possible if
+                        they share the same core structural and functional definitions provided by
+                        libguac.</em></span></p></li><li class="listitem"><p>Implement the standard entry point for client plugins,
+                        <code class="methodname">guac_client_init()</code>, described in more detail below.
+                    It is this function which initializes the structures provided by guacd such that
+                    users can join and interact with the connection.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-entry"></a>Entry point</h3></div></div></div><p>All client plugins must provide a function named
+                    <code class="methodname">guac_client_init</code> which accepts, as its sole argument, a
+                pointer to a <code class="classname">guac_client</code> structure. This function is similar
+                in principle to the <code class="methodname">main()</code> function of a C program, and it
+                is the responsibility of this function to initialize the provided structure as
+                necessary to begin the actual remote desktop connection, allow users to join/leave,
+                etc.</p><p>The provided <code class="classname">guac_client</code> will already have been initialized
+                with handlers for logging, the broadcast socket, etc. The absolutely critical pieces
+                which must be provided by <code class="methodname">guac_client_init</code> are:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A handler for users which join the connection
+                            (<span class="property">join_handler</span>). The join handler is also usually
+                        the most appropriate place for the actual remote desktop connection to be
+                        established.</p></li><li class="listitem"><p>A <code class="constant">NULL</code>-terminated set of argument names which the
+                        client plugin accepts, assigned to the <span class="property">args</span> property of
+                        the given <code class="classname">guac_client</code>. As the handshake procedure is
+                        completed for each connecting user, these argument names will be presented
+                        as part of the handshake, and the values for those arguments will be passed
+                        to the join handler once the handshake completes.</p></li><li class="listitem"><p>A handler for users leaving the connection
+                            (<span class="property">leave_handler</span>), if any cleanup, updates, etc. are
+                        required.</p></li><li class="listitem"><p>A handler for freeing the data associated with the
+                            <code class="classname">guac_client</code> after the connection has terminated
+                            (<span class="property">free_handler</span>). If your plugin will allocate any
+                        data at all, implementing the free handler is necessary to avoid memory
+                        leaks.</p></li></ol></div><p>If <code class="methodname">guac_client_init</code> returns successfully, guacd will
+                proceed with allowing the first use to join the connection, and the rest of the
+                plugin lifecycle commences.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-users"></a>Joining/leaving a connection</h3></div></div></div><p>Whenever a user joins a connection, including the very first user of a connection
+                (the user which is establishing the remote desktop connection in the first place),
+                the join handler of the <span class="property">guac_client</span> will be invoked. This
+                handler is provided with the <code class="classname">guac_user</code> structure representing
+                the user that just joined, along with the arguments provided during the handshake
+                procedure:</p><div class="informalexample"><pre class="programlisting">int join_handler(guac_user* user, int argc, char** argv) {
+    /* Synchronize display state, init the user, etc. */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;join_handler = join_handler;</pre></div><p>As the parameters and user information provided during the Guacamole protocol
+                handshake are often required to be known before the remote desktop connection can be
+                established, the join handler is usually the best place to create a thread which
+                establishes the remote desktop connection and updates the display
+                accordingly.</p><p>If necessary, the user which first established the connection can be distinguished
+                from all other users by the <span class="property">owner</span> flag of
+                    <code class="classname">guac_user</code>, which will be set to a non-zero value.</p><p>Once a user has disconnected, the leave handler of
+                    <code class="classname">guac_client</code> will be invoked. Just as with the join
+                handler, this handler is provided the <code class="classname">guac_user</code> structure of
+                the user that disconnected. The <code class="classname">guac_user</code> structure will be
+                freed immediately after the handler completes:</p><div class="informalexample"><pre class="programlisting">int leave_handler(guac_user* user) {
+    /* Free user-specific data and clean up */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;leave_handler = leave_handler;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-lifecycle-termination"></a>Termination</h3></div></div></div><p>Once the last user of a connection has left, guacd will begin freeing resources
+                allocated to that connection, invoking the free handler of the
+                    <code class="classname">guac_client</code>. At this point, the "leave" handler has been
+                invoked for all previous users. All that remains is for the client plugin to free
+                any remaining data that it allocated, such that guacd can clean up the rest:</p><div class="informalexample"><pre class="programlisting">int free_handler(guac_client* client) {
+    /* Disconnect, free client-specific data, etc. */
+}
+
+...
+
+/* Within guac_client_init  */
+client-&gt;free_handler = free_handler;</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-layers"></a>Layers and buffers</h2></div></div></div><p>The main operand of all drawing instructions is the layer,
+            represented within libguac by the <code class="classname">guac_layer</code>
+            structure. Each <code class="classname">guac_layer</code> is normally
+            allocated using <code class="methodname">guac_client_alloc_layer()</code>
+            or <code class="methodname">guac_client_alloc_buffer()</code>, depending on
+            whether a layer or buffer is desired, and freed with
+                <code class="methodname">guac_client_free_layer()</code> or
+                <code class="methodname">guac_client_free_buffer()</code>.</p><div class="important"><h3 class="title">Important</h3><p>Care must be taken to invoke the allocate and free pairs of
+                each type of layer correctly.
+                    <code class="methodname">guac_client_free_layer()</code> should
+                only be used to free layers allocated with
+                    <code class="methodname">guac_client_alloc_layer()</code>, and
+                    <code class="methodname">guac_client_free_buffer()</code> should
+                only be used to free layers allocated with
+                    <code class="methodname">guac_client_alloc_buffer()</code>, all
+                called using the same instance of
+                    <code class="classname">guac_client</code>.</p><p>If these restrictions are not observed, the effect of invoking
+                these functions is undefined.</p></div><p>Using these layer management functions allows you to reuse
+            existing layers or buffers after their original purpose has expired,
+            thus conserving resources on the client side, as allocation of new
+            layers within the remote client is a relatively expensive
+            operation.</p><p>It is through layers and buffers that Guacamole provides support
+            for hardware-accelerated compositing and cached updates. Creative
+            use of layers and buffers leads to efficient updates on the client
+            side, which usually translates into speed and responsiveness.</p><p>Regardless of whether you allocate new layers or buffers, there is
+            always one layer guaranteed to be present: the default layer,
+            represented by libguac as <code class="varname">GUAC_DEFAULT_LAYER</code>. If
+            you only wish to affect to the main display of the connected client
+            somehow, this is the layer you want to use as the operand of your
+            drawing instruction.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-streams"></a>Streams</h2></div></div></div><p>In addition to drawing, the Guacamole protocol supports streaming of arbitrary data.
+            The main operand of all streaming instructions is the stream, represented within libguac
+            by the <code class="classname">guac_stream</code> structure. Each
+                <code class="classname">guac_stream</code> exists either at the user or client levels,
+            depending on whether the stream is intended to be broadcast to all users or just one,
+            and is thus allocated using either <code class="methodname">guac_client_alloc_stream()</code>
+            or <code class="methodname">guac_user_alloc_stream()</code>. Explicitly-allocated streams must
+            eventually be freed with <code class="methodname">guac_client_free_stream()</code> or
+                <code class="methodname">guac_user_free_stream()</code>.</p><div class="important"><h3 class="title">Important</h3><p>Just as with layers, care must be taken to invoke the allocate and free pairs
+                correctly for each explicitly-allocated stream.
+                    <code class="methodname">guac_client_free_stream()</code> should only be used to free
+                streams allocated with <code class="methodname">guac_client_alloc_stream()</code>, and
+                    <code class="methodname">guac_user_free_stream()</code> should only be used to free
+                streams allocated with <code class="methodname">guac_user_alloc_stream()</code>.</p><p>If these restrictions are not observed, the effect of invoking these functions is
+                undefined.</p></div><p>Streams are the means by which data is transmitted for clipboard (via the <a class="link" href="protocol-reference.html#clipboard-instruction" title="clipboard">"clipboard" instruction</a>), audio (via the <a class="link" href="protocol-reference.html#audio-stream-instruction" title="audio">"audio" instruction</a>), and even the images which make up typical drawing
+            operations (via the <a class="link" href="protocol-reference.html#img-instruction" title="img">"img" instruction</a>). They will either be allocated
+            for you, when an inbound stream is received from a user, or allocated manually, when an
+            outbound stream needs to be sent to a user. As with <code class="classname">guac_client</code>
+            and <code class="classname">guac_user</code>, each <code class="classname">guac_stream</code> has a set
+            of handlers which correspond to instructions received related to streams. These
+            instructions are documented in more detail in <a class="xref" href="guacamole-protocol.html#guacamole-protocol-streaming" title="Streams and objects">the section called “Streams and objects”</a>
+            and <a class="xref" href="protocol-reference.html" title="Appendix B. Guacamole protocol reference">Appendix B, <em>Guacamole protocol reference</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-sending-instructions"></a>Sending instructions</h2></div></div></div><p>All drawing in Guacamole is accomplished through the sending of instructions to the
+            connected client using the Guacamole protocol. The same goes for streaming audio, video,
+            or file content. All features and content supported by Guacamole ultimately reduce to
+            one or more instructions which are part of the documented protocol.</p><p>Most drawing using libguac is done using Cairo functions on a
+                <code class="classname">cairo_surface_t</code> (see the Cairo API documentation) which is
+            later streamed to the client using an <code class="methodname">img</code> instruction and
+            subsequent <code class="methodname">blob</code> instructions, sent via
+                <code class="methodname">guac_client_stream_png()</code>. Cairo was chosen as a dependency
+            of libguac to provide developers an existing and stable means of drawing to image
+            buffers which will ultimately be sent as easy-to-digest PNG images.</p><p>The Guacamole protocol also supports drawing primitives similar to
+            those present in the Cairo API and HTML5's canvas tag. These
+            instructions are documented individually in the Guacamole Protocol
+            Reference in a section dedicated to drawing instructions, and like
+            all Guacamole protocol instructions, each instruction has a
+            corresponding function in libguac following the naming convention
+                    <code class="methodname">guac_protocol_send_<em class="replaceable"><code>OPCODE</code></em>()</code>.</p><p>Each protocol function takes a <code class="classname">guac_socket</code> as an argument,
+            which is the buffered I/O object used by libguac. For each active connection, there are
+            two important types of <code class="classname">guac_socket</code> instance: the broadcast
+            socket, which exists at the client level within the <code class="classname">guac_client</code>,
+            and the per-user socket, which is accessible within each
+                <code class="classname">guac_user</code>. Data sent along the client-level broadcast socket
+            will be sent to all connected users beneath that <code class="classname">guac_client</code>,
+            while data sent along a user-level socket will be sent only to that user.</p><p>For example, to send a "size" instruction to all connected users via the client-level
+            broadcast socket, you could invoke:</p><div class="informalexample"><pre class="programlisting">guac_protocol_send_size(client-&gt;socket, GUAC_DEFAULT_LAYER, 1024, 768);</pre></div><p>Or, if the instruction is only relevant to a particular user, the socket associated
+            with that user can be used instead:</p><div class="informalexample"><pre class="programlisting">guac_protocol_send_size(<span class="emphasis"><em>user</em></span>-&gt;socket, GUAC_DEFAULT_LAYER, 1024, 768);</pre></div><p>The sockets provided by libguac are threadsafe at the protocol level. Instructions
+            written to a socket by multiple threads are guaranteed to be written atomically with
+            respect to that socket.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="libguac-event-handling"></a>Event handling</h2></div></div></div><p>Generally, as guacd receives instructions from the connected client, it invokes event
+            handlers if set within the associated <code class="classname">guac_user</code> or
+                <code class="classname">guac_client</code>, depending on the nature of the event. Most
+            events are user-specific, and thus the event handlers reside within the
+                <code class="classname">guac_user</code> structure, but there are client-specific events as
+            well, such as a user joining or leaving the current connection. Event handlers typically
+            correspond to Guacamole protocol instructions received over the socket by a connected
+            user, which in turn correspond to events which occur on the client side.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-key-events"></a>Key events</h3></div></div></div><p>When keys are pressed or released on the client side, the client sends key
+                instructions to the server. These instructions are parsed and handled by calling the
+                key event handler installed in the <span class="property">key_handler</span> member of the
+                    <code class="classname">guac_user</code>. This key handler is given the keysym of the
+                key that was changed, and a boolean value indicating whether the key was pressed or
+                released.</p><div class="informalexample"><pre class="programlisting">int key_handler(guac_user* user, int keysym, int pressed) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;key_handler = key_handler;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-mouse-events"></a>Mouse events</h3></div></div></div><p>When the mouse is moved, and buttons are pressed or released, the client sends
+                mouse instructions to the server. These instructions are parsed and handled by
+                calling the mouse event handler installed in the <span class="property">mouse_handler</span>
+                member of the <code class="classname">guac_user</code>. This mouse handler is given the
+                current X and Y coordinates of the mouse pointer, as well as a mask indicating which
+                buttons are pressed and which are released.</p><div class="informalexample"><pre class="programlisting">int mouse_handler(guac_user* user, int x, int y, int button_mask) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;mouse_handler = mouse_handler;</pre></div><p>The file <code class="filename">client.h</code> also defines the mask
+                of each button for convenience:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_LEFT</code></span></dt><dd><p>The left mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_MIDDLE</code></span></dt><dd><p>The middle mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_RIGHT</code></span></dt><dd><p>The right mouse button, set when pressed.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_UP</code></span></dt><dd><p>The button corresponding to one scroll in the
+                            upwards direction of the mouse scroll wheel, set
+                            when scrolled.</p></dd><dt><span class="term"><code class="constant">GUAC_CLIENT_MOUSE_DOWN</code></span></dt><dd><p>The button corresponding to one scroll in the
+                            downwards direction of the mouse scroll wheel, set
+                            when scrolled.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-clipboard-events"></a>Clipboard, file, and other stream events</h3></div></div></div><p>If a connected user sends data which should be sent to the clipboard of the remote
+                desktop, guacd will trigger the clipboard handler installed in the
+                    <span class="property">clipboard_handler</span> member of the
+                    <code class="classname">guac_user</code> associated with that user.</p><div class="informalexample"><pre class="programlisting">int clipboard_handler(guac_user* user, guac_stream* stream, char* mimetype) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;clipboard_handler = clipboard_handler;</pre></div><p>The handler is expected to assign further handlers to the provided
+                    <code class="classname">guac_stream</code> as necessary, such that the <a class="link" href="protocol-reference.html#blob-instruction" title="blob">"blob"</a> and <a class="link" href="protocol-reference.html#end-instruction" title="end">"end"</a> instructions received along the stream
+                can be handled. A similar handler is provided for received files:</p><div class="informalexample"><pre class="programlisting">int file_handler(guac_user* user, guac_stream* stream,
+        char* mimetype, char* filename) {
+    /* Do something */
+}
+
+...
+
+/* Within the "join" handler of guac_client */
+user-&gt;file_handler = file_handler;</pre></div><p>This pattern continues for all other types of streams which can be received from a
+                user. The instruction which begins the stream has a corresponding handler within
+                    <code class="classname">guac_user</code>, and the metadata describing that stream and
+                provided with the instruction is included within the parameters passed to that
+                handler.</p><p>These handlers are, of course, optional. If any type of stream lacks a
+                corresponding handler, guacd will automatically close the stream and respond with an
+                    <a class="link" href="protocol-reference.html#ack-instruction" title="ack">"ack"
+                    instruction</a> and appropriate error code, informing the user's Guacamole
+                client that the stream is unsupported.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-protocol.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="guacamole-common.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 18. The Guacamole protocol </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 20. <span class="package">guacamole-common</span></td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/openid-auth.html b/doc/1.1.0/gug/openid-auth.html
new file mode 100644
index 0000000..305aa5b
--- /dev/null
+++ b/doc/1.1.0/gug/openid-auth.html
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 12. OpenID Connect Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="cas-auth.html" title="Chapter 11. CAS Authentication" /><link rel="next" href="radius-auth.html" title="Chapter 13. RADIUS Authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 12. OpenID Connect Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cas-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="radius-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="openid-auth"></a>Chapter 12. OpenID Connect Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="openid-auth.html#openid-downloading">Downloading the OpenID Connect authentication extension</a></span></dt><dt><span class="section"><a href="openid-auth.html#installing-openid-auth">Installing support for OpenID Connect</a></span></dt><dd><dl><dt><span class="section"><a href="openid-auth.html#guac-openid-config">Configuring Guacamole for single sign-on with OpenID Connect</a></span></dt><dt><span class="section"><a href="openid-auth.html#completing-openid-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420848363456" class="indexterm"></a><p><a class="link" href="http://openid.net/connect/" target="_top">OpenID Connect</a> is a widely-adopted
+        open standard for implementing single sign-on (SSO). <a class="link" href="https://oauth.net/articles/authentication/" target="_top">Not to be confused with
+            OAuth</a>, which is <span class="emphasis"><em>not</em></span> an authentication protocol, OpenID
+        Connect defines an authentication protocol in the form of a simple identity layer on top of
+        OAuth 2.0.</p><p>Guacamole's OpenID Connect support implements the "<a class="link" href="https://openid.net/specs/openid-connect-core-1_0.html#ImplicitFlowAuth" target="_top">implicit flow</a>" of the OpenID Connect standard, and allows authentication of
+        Guacamole users to be delegated to an identity provider which implements OpenID Connect,
+        removing the need for users to log into Guacamole directly. This module must be layered on
+        top of other authentication extensions that provide connection information, such as the
+            <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication extension</a>, as it only provides
+        user authentication.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="openid-downloading"></a>Downloading the OpenID Connect authentication extension</h2></div></div></div><p>The OpenID Connect authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The OpenID Connect authentication extension is packaged as a
+                <code class="filename">.tar.gz</code> file containing only the extension itself,
+                <code class="filename">guacamole-auth-openid-1.1.0.jar</code>, which must ultimately be
+            placed in <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-openid-auth"></a>Installing support for OpenID Connect</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+                <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+                your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+                proceeding.</em></span></p><p>To install the OpenID Connect authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-openid-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use OpenID Connect authentication, as described
+                    below.</p></li></ol></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-openid-config"></a>Configuring Guacamole for single sign-on with OpenID Connect</h3></div></div></div><a id="idm46420848220640" class="indexterm"></a><a id="idm46420848219712" class="indexterm"></a><p>Guacamole's OpenID connect support requires several properties which describe both
+                the identity provider and the Guacamole deployment. These properties are
+                    <span class="emphasis"><em>absolutely required in all cases</em></span>, as they dictate how
+                Guacamole should connect to the identity provider, how it should verify the identity
+                provider's response, and how the identity provider should redirect users back to
+                Guacamole once their identity has been confirmed:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">openid-authorization-endpoint</span></span></dt><dd><p>The authorization endpoint (URI) of the OpenID service.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">authorization_endpoint</span>" property of the JSON
+                            file hosted at
+                                <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-jwks-endpoint</span></span></dt><dd><p>The endpoint (URI) of the JWKS service which defines how received ID
+                            tokens (<a class="link" href="https://jwt.io/" target="_top">JSON Web Tokens</a> or
+                            JWTs) shall be validated.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">jwks_uri</span>" property of the JSON file hosted at
+                                    <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-issuer</span></span></dt><dd><p>The issuer to expect for all received ID tokens.</p><p>This value should be provided to you by the identity provider. For
+                            identity providers that implement <a class="link" href="https://openid.net/specs/openid-connect-discovery-1_0.html" target="_top">OpenID Connect Discovery</a>, this value can be retrieved from
+                            the "<span class="property">issuer</span>" property of the JSON file hosted at
+                                    <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em>/.well-known/openid-configuration</code>,
+                            where <code class="uri"><em class="replaceable"><code>https://identity-provider</code></em></code> is
+                            the base URL of the identity provider.</p></dd><dt><span class="term"><span class="property">openid-client-id</span></span></dt><dd><p>The OpenID client ID which should be submitted to the OpenID service
+                            when necessary. This value is typically provided to you by the OpenID
+                            service when OpenID credentials are generated for your
+                            application.</p></dd><dt><span class="term"><span class="property">openid-redirect-uri</span></span></dt><dd><p>The URI that should be submitted to the OpenID service such that they
+                            can redirect the authenticated user back to Guacamole after the
+                            authentication process is complete. This must be the full URL that a
+                            user would enter into their browser to access Guacamole.</p></dd></dl></div><p>Additional optional properties are available to control how claims within received
+                ID tokens are used to derive the user's Guacamole username, the OpenID scopes
+                requested when user identities are confirmed, and to control the maximum amount of
+                time allowed for various aspects of the conversation with the identity
+                provider:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">openid-username-claim-type</span></span></dt><dd><p>The claim type which contains the authenticated user's username within
+                            any valid JWT. By default, the "<code class="constant">email</code>" is
+                            used.</p></dd><dt><span class="term"><span class="property">openid-scope</span></span></dt><dd><p>The space-separated list of OpenID scopes to request.  OpenID scopes
+                            determine the information returned within the OpenID token, and thus
+                            affect what values can be used as an authenticated user's username. To
+                            be compliant with OpenID, at least "<code class="constant">openid profile</code>"
+                            must be requested. By default, "<code class="constant">openid email
+                                profile</code>" is used.</p></dd><dt><span class="term"><span class="property">openid-allowed-clock-skew</span></span></dt><dd><p>The amount of clock skew tolerated for timestamp comparisons between
+                            the Guacamole server and OpenID service clocks, in seconds. By default,
+                            clock skew of up to 30 seconds is tolerated.</p></dd><dt><span class="term"><span class="property">openid-max-token-validity</span></span></dt><dd><p>The maximum amount of time that an OpenID token should remain valid,
+                            in minutes. By default, each OpenID token remains valid for 300 minutes
+                            (5 hours).</p></dd><dt><span class="term"><span class="property">openid-max-nonce-validity</span></span></dt><dd><p>The maximum amount of time that a nonce generated by the Guacamole
+                            server should remain valid, in minutes. As each OpenID request has a
+                            unique nonce value, this imposes an upper limit on the amount of time
+                            any particular OpenID request can result in successful authentication
+                            within Guacamole. By default, each generated nonce expires after 10
+                            minutes.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-openid-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before OpenID Connect authentication can be used. <span class="emphasis"><em>Doing this
+                    will disconnect all active users, so be sure that it is safe to do so prior to
+                    attempting installation.</em></span> When ready, restart your servlet container
+                and give the new authentication a try.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cas-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="radius-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 11. CAS Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 13. RADIUS Authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/preface.html b/doc/1.1.0/gug/preface.html
new file mode 100644
index 0000000..6c2bf77
--- /dev/null
+++ b/doc/1.1.0/gug/preface.html
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Introduction</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="index.html" title="Guacamole Manual" /><link rel="next" href="users-guide.html" title="Part I. User's Guide" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Introduction</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="users-guide.html">Next</a></td></tr></table><hr /></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="preface"></a>Introduction</h1></div></div></div><p>This book is the official Apache Guacamole manual, written by the upstream developers
+            of the Guacamole project. It is also the official general documentation, and an online
+            version at <a class="link" href="http://guacamole.apache.org/" target="_top">http://guacamole.apache.org/</a>. It is a work in progress which will
+            be continuously updated as Guacamole changes with each release.</p><p>We decided to maintain the documentation for Guacamole as a book, as there is an awful
+            lot that can be done with the Guacamole web application, and even more that can be done
+            with the API. This book is intended to explore the possibilities of Guacamole as an
+            application, and to provide documentation necessary to install, maintain, and use
+            Guacamole.</p><p>For the sake of users and administrators, we have provided a high-level overview of
+            Guacamole's architecture and technical design, as well as basic usage instructions and
+            installation instructions for common platforms.</p><p>For the sake of developers, we have provided a protocol reference and tutorials for
+            common tasks (implementing protocol support, integrating Guacamole into your own
+            application, etc.) to give a good starting point beyond simply looking at the Guacamole
+            codebase.</p><p>This particular edition of the <em class="citetitle">Guacamole Manual</em> covers
+            Guacamole version 1.1.0. New releases which create new features or break
+            compatibility will result in new editions of the user's guide, as will any necessary
+            corrections. As the official documentation for the project, this book will always be
+            freely available in its entirety online.</p><a id="idm46420849661696" class="indexterm"></a><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="what-is-guac"></a>What is Guacamole?</h2></div></div></div><a id="idm46420849659600" class="indexterm"></a><p>Guacamole is an HTML5 web application that provides access to desktop environments
+                using remote desktop protocols (such as VNC or RDP). Guacamole is also the project
+                that produces this web application, and provides an API that drives it. This API can
+                be used to power other similar applications or services.</p><p>"Guacamole" is most commonly used to refer to the web application produced by the
+                Guacamole project using their API. This web application is part of a stack that
+                provides a protocol-agnostic remote desktop gateway. Written in JavaScript and using
+                only HTML5 and other standards, the client part of Guacamole requires nothing more
+                than a modern web browser or web-enabled device when accessing any of the desktops
+                served.</p><a id="idm46420849657312" class="indexterm"></a><p>Historically, Guacamole was an HTML5 VNC client, and before that, a JavaScript
+                Telnet client called <span class="application"><a class="application" href="http://sourceforge.net/projects/realmint" target="_top">RealMint</a></span>
+                ("RealMint" is an anagram for "terminal"), but this is no longer the case.
+                Guacamole's architecture has grown to encompass remote desktop in general, and can
+                be used as a gateway for any number of computers. Originally a proof-of-concept,
+                Guacamole is now performant enough for daily use, and all Guacamole development is
+                done over Guacamole.</p><p>As an API, Guacamole provides a common and efficient means of streaming text data
+                over a JavaScript-based tunnel using either HTTP or WebSocket, and a client
+                implementation which supports the Guacamole protocol and renders the remote display
+                when combined with a Guacamole protocol stream from the tunnel.</p><p>It provides cross-browser mouse and keyboard events, an XML-driven on-screen
+                keyboard, and synchronized nestable layers with hardware-accelerated compositing.
+                Projects that wish to provide remote desktop support over HTML5 can leverage the
+                years of research and development that went into Guacamole by incorporating the API
+                into their application or service.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="access-from-anywhere"></a>Why use Guacamole?</h2></div></div></div><p>The principle reason to use Guacamole is constant, world-wide, unfettered access
+                to your computers.</p><p>Guacamole allows access one or more desktops from anywhere remotely, without
+                having to install a client, particularly when installing a client is not possible.
+                By setting up a Guacamole server, you can provide access to any other computer on
+                the network from virtually any other computer on the internet, anywhere in the
+                world. Even mobile phones or tablets can be used, without having to install
+                anything.</p><p>As a true web application whose communication is over HTTP or HTTPS only,
+                Guacamole allows you to access your machines from anywhere without violating the
+                policy of your workplace, and without requiring the installation of special clients.
+                The presence of a proxy or corporate firewall does not prevent Guacamole use.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="access-from-anything"></a>Access your computers from any device</h2></div></div></div><p>As Guacamole requires only a reasonably-fast, standards-compliant browser,
+                Guacamole will run on many devices, including mobile phones and tablets.</p><p>Guacamole is specifically designed to not care whether you have a mouse, keyboard,
+                touchscreen, or any combination of those.</p><p>One of the major design philosophies behind Guacamole is that it should never
+                assume you have a particular device (ie: a mobile phone) just because your browser
+                has or is missing a specific feature (ie: touch events or a smallish screen).
+                Guacamole's codebase provides support for both mouse and touch events
+                simultaneously, without choosing one over the other, while the interface is intended
+                to be usable regardless of screen size.</p><p>Barring bugs, you should be able to use Guacamole on just about any modern device
+                with a web browser.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="non-physical-computer"></a>Keep a computer in the "cloud"</h2></div></div></div><p>Ignoring the buzzword, it's often useful to have a computer that has no dedicated
+                physical hardware, where its processing and storage power are handled transparently
+                by redundant systems in some remote datacenter.</p><p>Computers hosted on virtualized hardware are more resilient to failures, and with
+                so many companies now offering on-demand computing resources, Guacamole is a perfect
+                way to access several machines that are only accessible over the internet.</p><p>In fact, all Guacamole development is done on computers like this. This is partly
+                because we like the mobility, and partly because we want to ensure Guacamole is
+                always performant enough for daily use.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="group-access"></a>Provide easy access to a group</h2></div></div></div><p>Guacamole allows you to centralize access to a large group of machines, and
+                specify on a per-user basis which machines are accessible. Rather than remember a
+                list of machines and credentials, users need only log into a central server and
+                click on one of the connections listed.</p><p>If you have multiple computers which you would like to access remotely, or you are
+                part of a group where each person has a set of machines that they need remote access
+                to, Guacamole is a good way to provide that access while also ensuring that access
+                is available from anywhere.</p></div><div class="simplesect"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="adding-remote-access"></a>Adding HTML5 remote access to your existing infrastructure</h2></div></div></div><p>As Guacamole is an API, not just a web application, the core components and
+                libraries provided by the Guacamole project can be used to add HTML5 remote access
+                features to an existing application. You need not use the main Guacamole web
+                application; you can write (or integrate with) your own rather easily.</p><p>If you host an on-demand computing service, adding HTML5-based remote access
+                allows users of your service more broad access; users need nothing more than a web
+                browser to see their computers' screens.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="index.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="users-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Guacamole Manual </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part I. User's Guide</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/protocol-reference.html b/doc/1.1.0/gug/protocol-reference.html
new file mode 100644
index 0000000..f427222
--- /dev/null
+++ b/doc/1.1.0/gug/protocol-reference.html
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Appendix B. Guacamole protocol reference</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="appendices.html" title="Part III. Appendices" /><link rel="prev" href="faq.html" title="Appendix A. FAQ" /><link rel="next" href="book-index.html" title="Index" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Appendix B. Guacamole protocol reference</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="faq.html">Prev</a> </td><th width="60%" align="center">Part III. Appendices</th><td width="20%" align="right"> <a accesskey="n" href="book-index.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="protocol-reference"></a>Appendix B. Guacamole protocol reference</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="protocol-reference.html#drawing-instructions">Drawing instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#arc-instruction">arc</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cfill-instruction">cfill</a></span></dt><dt><span class="section"><a href="protocol-reference.html#clip-instruction">clip</a></span></dt><dt><span class="section"><a href="protocol-reference.html#close-instruction">close</a></span></dt><dt><span class="section"><a href="protocol-reference.html#copy-instruction">copy</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cstroke-instruction">cstroke</a></span></dt><dt><span class="section"><a href="protocol-reference.html#cursor-instruction">cursor</a></span></dt><dt><span class="section"><a href="protocol-reference.html#curve-instruction">curve</a></span></dt><dt><span class="section"><a href="protocol-reference.html#dispose-instruction">dispose</a></span></dt><dt><span class="section"><a href="protocol-reference.html#distort-instruction">distort</a></span></dt><dt><span class="section"><a href="protocol-reference.html#identity-instruction">identity</a></span></dt><dt><span class="section"><a href="protocol-reference.html#lfill-instruction">lfill</a></span></dt><dt><span class="section"><a href="protocol-reference.html#line-instruction">line</a></span></dt><dt><span class="section"><a href="protocol-reference.html#lstroke-instruction">lstroke</a></span></dt><dt><span class="section"><a href="protocol-reference.html#move-instruction">move</a></span></dt><dt><span class="section"><a href="protocol-reference.html#pop-instruction">pop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#push-instruction">push</a></span></dt><dt><span class="section"><a href="protocol-reference.html#rect-instruction">rect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#reset-instruction">reset</a></span></dt><dt><span class="section"><a href="protocol-reference.html#set-instruction">set</a></span></dt><dt><span class="section"><a href="protocol-reference.html#shade-instruction">shade</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-instruction">size</a></span></dt><dt><span class="section"><a href="protocol-reference.html#start-instruction">start</a></span></dt><dt><span class="section"><a href="protocol-reference.html#transfer-instruction">transfer</a></span></dt><dt><span class="section"><a href="protocol-reference.html#transform-instruction">transform</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#streaming-instructions">Streaming instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#ack-instruction">ack</a></span></dt><dt><span class="section"><a href="protocol-reference.html#argv-instruction">argv</a></span></dt><dt><span class="section"><a href="protocol-reference.html#audio-stream-instruction">audio</a></span></dt><dt><span class="section"><a href="protocol-reference.html#blob-instruction">blob</a></span></dt><dt><span class="section"><a href="protocol-reference.html#clipboard-instruction">clipboard</a></span></dt><dt><span class="section"><a href="protocol-reference.html#end-instruction">end</a></span></dt><dt><span class="section"><a href="protocol-reference.html#file-stream-instruction">file</a></span></dt><dt><span class="section"><a href="protocol-reference.html#img-instruction">img</a></span></dt><dt><span class="section"><a href="protocol-reference.html#nest-stream-instruction">nest</a></span></dt><dt><span class="section"><a href="protocol-reference.html#pipe-instruction">pipe</a></span></dt><dt><span class="section"><a href="protocol-reference.html#video-stream-instruction">video</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#object-instructions">Object instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#body-object-instruction">body</a></span></dt><dt><span class="section"><a href="protocol-reference.html#filesystem-object-instruction">filesystem</a></span></dt><dt><span class="section"><a href="protocol-reference.html#get-object-instruction">get</a></span></dt><dt><span class="section"><a href="protocol-reference.html#put-object-instruction">put</a></span></dt><dt><span class="section"><a href="protocol-reference.html#undefine-object-instruction">undefine</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-handshake-instructions">Client handshake instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#audio-handshake-instruction">audio</a></span></dt><dt><span class="section"><a href="protocol-reference.html#connect-instruction">connect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#image-handshake-instruction">image</a></span></dt><dt><span class="section"><a href="protocol-reference.html#select-instruction">select</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-handshake-instruction">size</a></span></dt><dt><span class="section"><a href="protocol-reference.html#timezone-handshake-instruction">timezone</a></span></dt><dt><span class="section"><a href="protocol-reference.html#video-handshake-instruction">video</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#server-handshake-instructions">Server handshake instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#args-instruction">args</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-control-instructions">Client control instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#client-disconnect-instruction">disconnect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-nop-instruction">nop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-sync-instruction">sync</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#server-control-instructions">Server control instructions</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#server-disconnect-instruction">disconnect</a></span></dt><dt><span class="section"><a href="protocol-reference.html#error-instruction">error</a></span></dt><dt><span class="section"><a href="protocol-reference.html#log-instruction">log</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-mouse-instruction">mouse</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-nop-instruction">nop</a></span></dt><dt><span class="section"><a href="protocol-reference.html#ready-instruction">ready</a></span></dt><dt><span class="section"><a href="protocol-reference.html#server-sync-instruction">sync</a></span></dt></dl></dd><dt><span class="section"><a href="protocol-reference.html#client-events">Client events</a></span></dt><dd><dl><dt><span class="section"><a href="protocol-reference.html#key-instruction">key</a></span></dt><dt><span class="section"><a href="protocol-reference.html#client-mouse-instruction">mouse</a></span></dt><dt><span class="section"><a href="protocol-reference.html#size-event-instruction">size</a></span></dt></dl></dd></dl></div><a id="idm46420843554608" class="indexterm"></a><a id="idm46420843553840" class="indexterm"></a><a id="idm46420843553072" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="drawing-instructions"></a>Drawing instructions</h2></div></div></div><a id="idm46420843551136" class="indexterm"></a><a id="idm46420843550240" class="indexterm"></a><a id="idm46420843548896" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="arc-instruction"></a>arc</h3></div></div></div><a id="idm46420843545568" class="indexterm"></a><p>The arc instruction adds the specified arc subpath to the existing
+        path, creating a new path if no path exists. The path created can be
+        modified further by other path-type instructions, and finally stroked,
+        filled, and/or closed.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified arc subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the center of the circle containing
+                    the arc to be drawn.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the center of the circle containing
+                    the arc to be drawn.</p></dd><dt><span class="term"><em class="parameter"><code>radius</code></em></span></dt><dd><p>The radius of the circle containing the arc to be drawn,
+                    in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>start</code></em></span></dt><dd><p>The starting angle of the arc to be drawn, in
+                    radians.</p></dd><dt><span class="term"><em class="parameter"><code>end</code></em></span></dt><dd><p>The ending angle of the arc to be drawn, in
+                    radians.</p></dd><dt><span class="term"><em class="parameter"><code>negative</code></em></span></dt><dd><p>Non-zero if the arc should be drawn from START to END in
+                    order of decreasing angle, zero otherwise.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cfill-instruction"></a>cfill</h3></div></div></div><a id="idm46420843391888" class="indexterm"></a><p>Fills the current path with the specified color. This instruction
+        completes the current path. Future path instructions will begin a new
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>r</code></em></span></dt><dd><p>The red component of the color to use to fill the current
+                    path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>g</code></em></span></dt><dd><p>The green component of the color to use to fill the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The blue component of the color to use to fill the current
+                    path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The alpha component of the color to use to fill the
+                    current path in the specified layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="clip-instruction"></a>clip</h3></div></div></div><a id="idm46420843375712" class="indexterm"></a><p>Applies the current path as the clipping path. Future operations will
+        only draw within the current path. Note that future clip instructions
+        will also be limited by this path. To set a completely new clipping path,
+        you must first reset the layer with a reset instruction. If you wish to
+        only reset the clipping path, but preserve the current transform matrix,
+        push the layer state before setting the clipping path, and pop the layer
+        state to reset.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose clipping path should be set.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="close-instruction"></a>close</h3></div></div></div><a id="idm46420843369648" class="indexterm"></a><p>Closes the current path by connecting the start and end points with a
+        straight line.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be closed.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="copy-instruction"></a>copy</h3></div></div></div><a id="idm46420843363424" class="indexterm"></a><p>Copies image data from the specified rectangle of the specified layer
+        or buffer to a different location of another specified layer or
+        buffer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to copy image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image data on
+                    the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dstlayer</code></em></span></dt><dd><p>The index of the layer to draw the image data to.</p></dd><dt><span class="term"><em class="parameter"><code>dstx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dsty</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cstroke-instruction"></a>cstroke</h3></div></div></div><a id="idm46420843341456" class="indexterm"></a><p>Strokes the current path with the specified color. This instruction
+        completes the current path. Future path instructions will begin a new
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when stroking the current path
+                    in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be stroked.</p></dd><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>The index of the line cap style to use. This can be either
+                    butt (0), round (1), or square (2).</p></dd><dt><span class="term"><em class="parameter"><code>join</code></em></span></dt><dd><p>The index of the line join style to use. This can be
+                    either bevel (0), miter (1), or round (2).</p></dd><dt><span class="term"><em class="parameter"><code>thickness</code></em></span></dt><dd><p>The thickness of the stroke to draw, in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>r</code></em></span></dt><dd><p>The red component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>g</code></em></span></dt><dd><p>The green component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The blue component of the color to use to stroke the
+                    current path in the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The alpha component of the color to use to stroke the
+                    current path in the specified layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="cursor-instruction"></a>cursor</h3></div></div></div><p>Sets the client's cursor to the image data from the specified
+        rectangle of a layer, with the specified hotspot.</p><a id="idm46420843318640" class="indexterm"></a><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the cursor's hotspot.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the cursor's hotspot.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to copy image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="curve-instruction"></a>curve</h3></div></div></div><a id="idm46420843301312" class="indexterm"></a><p>Adds the specified cubic bezier curve subpath.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified curve subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>cp1x</code></em></span></dt><dd><p>The X coordinate of the first control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp1y</code></em></span></dt><dd><p>The Y coordinate of the first control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp2x</code></em></span></dt><dd><p>The X coordinate of the second control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>cp2y</code></em></span></dt><dd><p>The Y coordinate of the second control point of the
+                    curve.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the endpoint of the curve.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the endpoint of the curve.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="dispose-instruction"></a>dispose</h3></div></div></div><a id="idm46420843283440" class="indexterm"></a><p>Removes the specified layer. The specified layer will be recreated as a
+        new layer if it is referenced again.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to remove.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="distort-instruction"></a>distort</h3></div></div></div><a id="idm46420844230576" class="indexterm"></a><p>Sets the given affine transformation matrix to the layer. Unlike
+        transform, this operation is independent of any previously sent
+        transformation matrix. This operation can be undone by setting the
+        layer's transformation matrix to the identity matrix using
+        distort</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to distort.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The matrix value in row 1, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The matrix value in row 2, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>c</code></em></span></dt><dd><p>The matrix value in row 1, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>d</code></em></span></dt><dd><p>The matrix value in row 2, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>e</code></em></span></dt><dd><p>The matrix value in row 1, column 3.</p></dd><dt><span class="term"><em class="parameter"><code>f</code></em></span></dt><dd><p>The matrix value in row 2, column 3.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="identity-instruction"></a>identity</h3></div></div></div><a id="idm46420843264784" class="indexterm"></a><p>Resets the transform matrix of the specified layer to the identity
+        matrix.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose transform matrix should be reset.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="lfill-instruction"></a>lfill</h3></div></div></div><a id="idm46420843258304" class="indexterm"></a><p>Fills the current path with a tiled pattern of the image data from the
+        specified layer. This instruction completes the current path. Future
+        path instructions will begin a new path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The layer to use as the pattern.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="line-instruction"></a>line</h3></div></div></div><a id="idm46420843248000" class="indexterm"></a><p>Adds the specified line subpath.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should have the specified line subpath
+                    added.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the endpoint of the line.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the endpoint of the line.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="lstroke-instruction"></a>lstroke</h3></div></div></div><a id="idm46420843237632" class="indexterm"></a><p>Strokes the current path with a tiled pattern of the image data from
+        the specified layer. This instruction completes the current path. Future
+        path instructions will begin a new path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when filling the current path in
+                    the specified layer.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose path should be filled.</p></dd><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>The index of the line cap style to use. This can be either
+                    butt (0), round (1), or square (2).</p></dd><dt><span class="term"><em class="parameter"><code>join</code></em></span></dt><dd><p>The index of the line join style to use. This can be
+                    either bevel (0), miter (1), or round (2).</p></dd><dt><span class="term"><em class="parameter"><code>thickness</code></em></span></dt><dd><p>The thickness of the stroke to draw, in pixels.</p></dd><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The layer to use as the pattern.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="move-instruction"></a>move</h3></div></div></div><a id="idm46420843221344" class="indexterm"></a><p>Moves the given layer to the given location within the specified parent
+        layer. This operation is applicable only to layers, and cannot be
+        applied to buffers (layers with negative indices). Applying this
+        operation to the default layer (layer 0) also has no effect.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to move.</p></dd><dt><span class="term"><em class="parameter"><code>parent</code></em></span></dt><dd><p>The layer that should be the parent of the given
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate to move the layer to.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate to move the layer to.</p></dd><dt><span class="term"><em class="parameter"><code>z</code></em></span></dt><dd><p>The relative Z-ordering of this layer. Layers with larger
+                    values will appear above layers with smaller values.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pop-instruction"></a>pop</h3></div></div></div><a id="idm46420843206944" class="indexterm"></a><p>Restores the previous state of the specified layer from the stack. The
+        state restored includes the transformation matrix and clipping
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be restored.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="push-instruction"></a>push</h3></div></div></div><a id="idm46420843200384" class="indexterm"></a><p>Saves the current state of the specified layer to the stack. The state
+        saved includes the current transformation matrix and clipping
+        path.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be saved.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="rect-instruction"></a>rect</h3></div></div></div><a id="idm46420843193840" class="indexterm"></a><p>Adds a rectangular path to the specified layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image
+                    data.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the rectangle
+                    to draw.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the rectangle
+                    to draw.</p></dd><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The width of the rectangle to draw.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The width of the rectangle to draw.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="reset-instruction"></a>reset</h3></div></div></div><a id="idm46420843177600" class="indexterm"></a><p>Resets the transformation and clip state of the layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose state should be reset.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="set-instruction"></a>set</h3></div></div></div><a id="idm46420843171168" class="indexterm"></a><p>Sets the given client-side property to the specified value. Currently
+        there is only one property: miter-limit, the maximum distance between
+        the inner and outer points of a miter joint, proportional to stroke
+        width (if miter-limit is set to 10.0, the default, then the maximum
+        distance between the points of the joint is 10 times the stroke
+        width).</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose property should be set.</p></dd><dt><span class="term"><em class="parameter"><code>property</code></em></span></dt><dd><p>The name of the property to set.</p></dd><dt><span class="term"><em class="parameter"><code>value</code></em></span></dt><dd><p>The value to set the given property to.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="shade-instruction"></a>shade</h3></div></div></div><a id="idm46420843160928" class="indexterm"></a><p>Sets the opacity of the given layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer whose opacity should be set.</p></dd><dt><span class="term"><em class="parameter"><code>opacity</code></em></span></dt><dd><p>The opacity of the layer, where 0 is completely
+                    transparent, and 255 is completely opaque.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-instruction"></a>size</h3></div></div></div><a id="idm46420843152560" class="indexterm"></a><p>Sets the size of the specified layer.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to resize.</p></dd><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The new width of the layer</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The new height of the layer</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="start-instruction"></a>start</h3></div></div></div><a id="idm46420843142288" class="indexterm"></a><p>Starts a new subpath at the specified point.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer which should start a new subpath.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the first point of the new
+                    subpath.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the first point of the new
+                    subpath.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="transfer-instruction"></a>transfer</h3></div></div></div><a id="idm46420843131856" class="indexterm"></a><p>Transfers image data from the specified rectangle of the specified layer or buffer to a
+        different location of another specified layer or buffer, using the specified transfer
+        function. </p><p>For a list of available functions, see the definition of
+            <code class="classname">guac_transfer_function</code> within the <a class="link" href="https://github.com/apache/guacamole-server/blob/master/src/libguac/guacamole/protocol-types.h" target="_top"><code class="filename">guacamole/protocol-types.h</code></a> header included with
+        libguac.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>srclayer</code></em></span></dt><dd><p>The index of the layer to transfer image data from.</p></dd><dt><span class="term"><em class="parameter"><code>srcx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcy</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the source
+                    rectangle within the source layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcwidth</code></em></span></dt><dd><p>The width of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>srcheight</code></em></span></dt><dd><p>The height of the source rectangle within the source
+                    layer.</p></dd><dt><span class="term"><em class="parameter"><code>function</code></em></span></dt><dd><p>The index of the transfer function to use.</p><p>For a list of available functions, see the definition of
+                        <code class="classname">guac_transfer_function</code> within the <a class="link" href="https://github.com/apache/guacamole-server/blob/master/src/libguac/guacamole/protocol-types.h" target="_top"><code class="filename">guacamole/protocol-types.h</code></a> header included
+                    with libguac.</p></dd><dt><span class="term"><em class="parameter"><code>dstlayer</code></em></span></dt><dd><p>The index of the layer to draw the image data to.</p></dd><dt><span class="term"><em class="parameter"><code>dstx</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>dsty</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the
+                    destination within the destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="transform-instruction"></a>transform</h3></div></div></div><a id="idm46420843105472" class="indexterm"></a><p>Applies the specified transformation matrix to future operations.
+        Unlike distort, this operation is dependent on any previously sent
+        transformation matrices, and only affects future operations. This
+        operation can be undone by setting the layer's transformation matrix to
+        the identity matrix using identity, but image data already drawn will
+        not be affected.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The layer to apply the given transformation matrix
+                    to.</p></dd><dt><span class="term"><em class="parameter"><code>a</code></em></span></dt><dd><p>The matrix value in row 1, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>b</code></em></span></dt><dd><p>The matrix value in row 2, column 1.</p></dd><dt><span class="term"><em class="parameter"><code>c</code></em></span></dt><dd><p>The matrix value in row 1, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>d</code></em></span></dt><dd><p>The matrix value in row 2, column 2.</p></dd><dt><span class="term"><em class="parameter"><code>e</code></em></span></dt><dd><p>The matrix value in row 1, column 3.</p></dd><dt><span class="term"><em class="parameter"><code>f</code></em></span></dt><dd><p>The matrix value in row 2, column 3.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="streaming-instructions"></a>Streaming instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="ack-instruction"></a>ack</h3></div></div></div><a id="idm46420843086176" class="indexterm"></a><p>The ack instruction acknowledges a received data blob, providing a status code and message
+        indicating whether the operation associated with the blob succeeded or failed. A status code
+        other than <code class="constant">SUCCESS</code> implicitly ends the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream the corresponding blob was received on.</p></dd><dt><span class="term"><em class="parameter"><code>message</code></em></span></dt><dd><p>A human-readable error message. This typically is not exposed within any user
+                    interface, and mainly helps with debugging.</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>The Guacamole status code denoting success or failure.</p></dd></dl></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="status-codes"></a>Status codes</h4></div></div></div><p>Several Guacamole instructions, and various other internals of the Guacamole core, use
+            a common set of numeric status codes. These codes denote success or failure of
+            operations, and can be rendered by user interfaces in a human-readable
+                way.</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /><col class="c3" /></colgroup><thead><tr><th>Code</th><th>Name</th><th>Description</th></tr></thead><tbody><tr><td>0</td><td><code class="constant">SUCCESS</code></td><td>
+                                <p>The operation succeeded. No error.</p>
+                            </td></tr><tr><td>256</td><td><code class="constant">UNSUPPORTED</code></td><td>
+                                <p>The requested operation is unsupported.</p>
+                            </td></tr><tr><td>512</td><td><code class="constant">SERVER_ERROR</code></td><td>
+                                <p>An internal error occurred, and the operation could not be
+                                    performed.</p>
+                            </td></tr><tr><td>513</td><td><code class="constant">SERVER_BUSY</code></td><td>
+                                <p>The operation could not be performed because the server is
+                                    busy.</p>
+                            </td></tr><tr><td>514</td><td><code class="constant">UPSTREAM_TIMEOUT</code></td><td>
+                                <p>The upstream server is not responding. In most cases, the
+                                    upstream server is the remote desktop server.</p>
+                            </td></tr><tr><td>515</td><td><code class="constant">UPSTREAM_ERROR</code></td><td>
+                                <p>The upstream server encountered an error. In most cases, the
+                                    upstream server is the remote desktop server.</p>
+                            </td></tr><tr><td>516</td><td><code class="constant">RESOURCE_NOT_FOUND</code></td><td>
+                                <p>An associated resource, such as a file or stream, could not be
+                                    found, and thus the operation failed.</p>
+                            </td></tr><tr><td>517</td><td><code class="constant">RESOURCE_CONFLICT</code></td><td>
+                                <p>A resource is already in use or locked, preventing the
+                                    requested operation.</p>
+                            </td></tr><tr><td>518</td><td><code class="constant">RESOURCE_CLOSED</code></td><td>
+                                <p>The requested operation cannot continue because the associated
+                                    resource has been closed.</p>
+                            </td></tr><tr><td>519</td><td><code class="constant">UPSTREAM_NOT_FOUND</code></td><td>
+                                <p>The upstream server does not appear to exist, or cannot be
+                                    reached over the network. In most cases, the upstream server is
+                                    the remote desktop server.</p>
+                            </td></tr><tr><td>520</td><td><code class="constant">UPSTREAM_UNAVAILABLE</code></td><td>
+                                <p>The upstream server is refusing to service connections. In
+                                    most cases, the upstream server is the remote desktop
+                                    server.</p>
+                            </td></tr><tr><td>521</td><td><code class="constant">SESSION_CONFLICT</code></td><td>
+                                <p>The session within the upstream server has ended because it
+                                    conflicts with another session. In most cases, the upstream
+                                    server is the remote desktop server.</p>
+                            </td></tr><tr><td>522</td><td><code class="constant">SESSION_TIMEOUT</code></td><td>
+                                <p>The session within the upstream server has ended because it
+                                    appeared to be inactive. In most cases, the upstream server is
+                                    the remote desktop server.</p>
+                            </td></tr><tr><td>523</td><td><code class="constant">SESSION_CLOSED</code></td><td>
+                                <p>The session within the upstream server has been forcibly
+                                    closed. In most cases, the upstream server is the remote desktop
+                                    server.</p>
+                            </td></tr><tr><td>768</td><td><code class="constant">CLIENT_BAD_REQUEST</code></td><td>
+                                <p>The parameters of the request are illegal or otherwise
+                                    invalid.</p>
+                            </td></tr><tr><td>769</td><td><code class="constant">CLIENT_UNAUTHORIZED</code></td><td>
+                                <p>Permission was denied, because the user is not logged in. Note
+                                    that the user may be logged into Guacamole, but still not logged
+                                    in with respect to the remote desktop server.</p>
+                            </td></tr><tr><td>771</td><td><code class="constant">CLIENT_FORBIDDEN</code></td><td>
+                                <p>Permission was denied, and logging in will not solve the
+                                    problem.</p>
+                            </td></tr><tr><td>776</td><td><code class="constant">CLIENT_TIMEOUT</code></td><td>
+                                <p>The client (usually the user of Guacamole or their browser) is
+                                    taking too long to respond.</p>
+                            </td></tr><tr><td>781</td><td><code class="constant">CLIENT_OVERRUN</code></td><td>
+                                <p>The client has sent more data than the protocol allows.</p>
+                            </td></tr><tr><td>783</td><td><code class="constant">CLIENT_BAD_TYPE</code></td><td>
+                                <p>The client has sent data of an unexpected or illegal
+                                    type.</p>
+                            </td></tr><tr><td>797</td><td><code class="constant">CLIENT_TOO_MANY</code></td><td>
+                                <p>The client is already using too many resources. Existing
+                                    resources must be freed before further requests are
+                                    allowed.</p>
+                            </td></tr></tbody></table></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="argv-instruction"></a>argv</h3></div></div></div><a id="idm46420843012912" class="indexterm"></a><p>Allocates a new stream, associating it with the given argument (connection parameter)
+        metadata. The relevant connection parameter data will later be sent along the stream with
+        blob instructions. If sent by the client, this data will be the desired new value of the
+        connection parameter being changed, and will be applied if the server supports changing that
+        connection parameter while the connection is active. If sent by the server, this data will
+        be the current value of a connection parameter being exposed to the client.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the connection parameter being sent. In most cases, this will
+                    be "text/plain".</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the connection parameter whose value is being sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="audio-stream-instruction"></a>audio</h3></div></div></div><a id="idm46420843002672" class="indexterm"></a><p>Allocates a new stream, associating it with the given audio metadata. Audio data will
+        later be sent along the stream with blob instructions. The mimetype given must be a mimetype
+        previously specified by the client during the handshake procedure. Playback will begin
+        immediately and will continue as long as blobs are received along the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the audio data being sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="blob-instruction"></a>blob</h3></div></div></div><a id="idm46420842994352" class="indexterm"></a><p>Sends a blob of data along the given stream. This blob of data is arbitrary,
+        base64-encoded data, and only has meaning to the Guacamole client or server through the
+        metadata assigned to the stream when the stream was allocated.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream along which the given data should be sent.</p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>The base64-encoded data to send.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="clipboard-instruction"></a>clipboard</h3></div></div></div><a id="idm46420842985824" class="indexterm"></a><p>Allocates a new stream, associating it with the given clipboard metadata. The clipboard
+        data will later be sent along the stream with blob instructions. If sent by the client, this
+        data will be the contents of the client-side clipboard. If sent by the server, this data
+        will be the contents of the clipboard within the remote desktop.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the clipboard data being sent. In most cases, this will be
+                    "text/plain".</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="end-instruction"></a>end</h3></div></div></div><a id="idm46420842977440" class="indexterm"></a><p>The end instruction terminates an open stream, freeing any client-side or server-side
+        resources. Data sent to a terminated stream will be ignored. Terminating a stream with the
+        end instruction only denotes the end of the stream and does not imply an error.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream the corresponding blob was received on.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="file-stream-instruction"></a>file</h3></div></div></div><a id="idm46420842971120" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary file metadata. The
+        contents of the file will later be sent along the stream with blob instructions. The full
+        size of the file need not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the file being sent.</p></dd><dt><span class="term"><em class="parameter"><code>filename</code></em></span></dt><dd><p>The name of the file, as it would be saved on a filesystem.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="img-instruction"></a>img</h3></div></div></div><a id="idm46420842960672" class="indexterm"></a><p>Allocates a new stream, associating it with the metadata of an image update, including the
+        image type, the destination layer, and destination coordinates. The contents of the image
+        will later be sent along the stream with blob instructions. The full size of the image need
+        not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the image being sent.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The channel mask to apply when drawing the image data.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The X coordinate of the upper-left corner of the destination within the
+                    destination layer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The Y coordinate of the upper-left corner of the destination within the
+                    destination layer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="nest-stream-instruction"></a>nest</h3></div></div></div><a id="idm46420842944464" class="indexterm"></a><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>The <code class="function">nest</code> instruction has been
+            deprecated.</em></span></p><p>The <code class="function">nest</code> instruction is no longer necessary, having been replaced
+            by other streaming instructions (such as <a class="link" href="protocol-reference.html#blob-instruction" title="blob"><code class="function">blob</code></a>, <a class="link" href="protocol-reference.html#ack-instruction" title="ack"><code class="function">ack</code></a>, and <a class="link" href="protocol-reference.html#end-instruction" title="end"><code class="function">end</code></a>). Code using the <code class="function">nest</code>
+            instruction should instead write instructions directly without wrapping those
+            instructions within <code class="function">nest</code>.</p></div><p>Encodes part of one or more instructions within a single instruction,
+        associating that packet of data with a stream index. Future nest
+        instructions with the same stream index will append their data to the
+        same logical stream on the client side. Once nested data is received on
+        the client side, the client immediately executes any completed
+        instructions within the associated stream, in order.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>The index of the stream this data should be appended to.
+                    This index is completely arbitrary, and denotes only how
+                    nested data should be reassembled.</p></dd><dt><span class="term"><em class="parameter"><code>data</code></em></span></dt><dd><p>The protocol data, containing part of one or more
+                    instructions.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="pipe-instruction"></a>pipe</h3></div></div></div><a id="idm46420842929616" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary named pipe metadata. The
+        contents of the pipe will later be sent along the stream with blob instructions. Pipes in
+        the Guacamole protocol are unidirectional, named pipes, very similar to a UNIX FIFO or pipe.
+        It is up to client-side code to handle pipe data appropriately, likely based upon the name
+        of the pipe, which is arbitrary. Pipes may be opened by either the client or the
+        server.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent along the pipe.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The arbitrary name of the pipe, which may have special meaning to client-side
+                    code.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="video-stream-instruction"></a>video</h3></div></div></div><a id="idm46420842919264" class="indexterm"></a><p>Allocates a new stream, associating it with the given video metadata. Video data will
+        later be sent along the stream with blob instructions. The mimetype given must be a mimetype
+        previously specified by the client during the handshake procedure. Playback will begin
+        immediately and will continue as long as blobs are received along the stream.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>layer</code></em></span></dt><dd><p>The index of the layer to stream the video data into. The effect of other
+                    drawing operations on this layer during playback is undefined, as the client
+                    codec implementation may leverage any rendering mechanism it sees fit, including
+                    hardware decoding.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the video data being sent.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="object-instructions"></a>Object instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="body-object-instruction"></a>body</h3></div></div></div><a id="idm46420842907408" class="indexterm"></a><p>Allocates a new stream, associating it with the name of a stream previously requested by a
+        get instruction. The contents of the stream will be sent later with blob instructions. The
+        full size of the stream need not be known ahead of time.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object associated with this stream.</p></dd><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream associated with the object.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="filesystem-object-instruction"></a>filesystem</h3></div></div></div><a id="idm46420842894832" class="indexterm"></a><p>Allocates a new object, associating it with the given arbitrary filesystem metadata. The
+        contents of files and directories within the filesystem will later be sent along streams
+        requested with get instructions or created with put instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the filesystem.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="get-object-instruction"></a>get</h3></div></div></div><a id="idm46420842886304" class="indexterm"></a><p>Requests that a new stream be created, providing read access to the object stream having
+        the given name. The requested stream will be created, in response, with a body
+        instruction.</p><p>Stream names are arbitrary and dictated by the object from which they are requested, with
+        the exception of the root stream of the object itself, which has the reserved name
+            "<code class="constant">/</code>". The root stream of the object has the mimetype
+            "<code class="constant">application/vnd.glyptodon.guacamole.stream-index+json</code>", and
+        provides a simple JSON map of available stream names to their corresponding mimetypes. If
+        the object contains a hierarchy of streams, some of these streams may also be
+            "<code class="constant">application/vnd.glyptodon.guacamole.stream-index+json</code>".</p><p>For example, the ultimate content of the body stream provided in response to a get request
+        for the root stream of an object containing two text streams, "A" and "B", would be the
+        following:</p><div class="informalexample"><pre class="programlisting">{
+    "A" : "text/plain",
+    "B" : "text/plain"
+}</pre></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to request a stream from.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream being requested from the given object.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="put-object-instruction"></a>put</h3></div></div></div><a id="idm46420842873984" class="indexterm"></a><p>Allocates a new stream, associating it with the given arbitrary object and stream name.
+        The contents of the stream will later be sent with blob instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object associated with this stream.</p></dd><dt><span class="term"><em class="parameter"><code>stream</code></em></span></dt><dd><p>The index of the stream to allocate.</p></dd><dt><span class="term"><em class="parameter"><code>mimetype</code></em></span></dt><dd><p>The mimetype of the data being sent.</p></dd><dt><span class="term"><em class="parameter"><code>name</code></em></span></dt><dd><p>The name of the stream within the given object to which data is being
+                    sent.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="undefine-object-instruction"></a>undefine</h3></div></div></div><a id="idm46420842861520" class="indexterm"></a><p>Undefines an existing object, allowing its index to be reused by another future object.
+        The resource associated with the original object may or may not continue to exist - it
+        simply no longer has an associated object.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>object</code></em></span></dt><dd><p>The index of the object to undefine.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-handshake-instructions"></a>Client handshake instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="audio-handshake-instruction"></a>audio</h3></div></div></div><a id="idm46420842853488" class="indexterm"></a><p>Specifies which audio mimetypes are supported by the client. Each
+        parameter must be a single mimetype, listed in order of client
+        preference, with the optimal mimetype being the first parameter.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="connect-instruction"></a>connect</h3></div></div></div><a id="idm46420842849264" class="indexterm"></a><p>Begins the connection using the previously specified protocol with the
+        given arguments.  This is the last instruction sent during the handshake
+        phase.</p><p>The parameters of this instruction correspond exactly to the
+        parameters of the received args instruction. If the received args
+        instruction has, for example, three parameters, the responding connect
+        instruction must also have three parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="image-handshake-instruction"></a>image</h3></div></div></div><a id="idm46420842844368" class="indexterm"></a><p>Specifies which image mimetypes are supported by the client. Each parameter must be a
+        single mimetype, listed in order of client preference, with the optimal mimetype being the
+        first parameter.</p><p>It is expected that the supported mimetypes will include at least "image/png" and
+        "image/jpeg", and the server <span class="emphasis"><em>may</em></span> safely assume that these mimetypes are
+        supported, even if they are absent from the handshake.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="select-instruction"></a>select</h3></div></div></div><a id="idm46420842839072" class="indexterm"></a><p>Requests that the connection be made using the specified protocol, or to the specified
+        existing connection. Whether a new connection is established or an existing connection is
+        joined depends on whether the ID of an active connection is provided. The Guacamole protocol
+        dictates that the IDs generated for active connections (provided during the handshake of
+        those connections via the <a class="link" href="protocol-reference.html#ready-instruction" title="ready">ready instruction</a>) must not collide with any
+        supported protocols.</p><p>This is the first instruction sent during the handshake phase.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ID</code></em></span></dt><dd><p>The name of the protocol to use, such as "vnc" or "rdp", or the ID of the
+                    active connection to be joined, as returned via the <a class="link" href="protocol-reference.html#ready-instruction" title="ready">ready
+                        instruction</a>.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-handshake-instruction"></a>size</h3></div></div></div><a id="idm46420842830256" class="indexterm"></a><p>Specifies the client's optimal screen size and resolution.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The optimal screen width.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The optimal screen height.</p></dd><dt><span class="term"><em class="parameter"><code>dpi</code></em></span></dt><dd><p>The optimal screen resolution, in approximate DPI.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="timezone-handshake-instruction"></a>timezone</h3></div></div></div><a id="idm46420842819888" class="indexterm"></a><p>Specifies the timezone of the client system, in IANA zone key format.
+        This is a single-value parameter, and may be used by protocols to
+        set the timezone on the remote computer, if the remote system allows
+        the timezone to be configured.  This instruction is optional.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timezone</code></em></span></dt><dd></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="video-handshake-instruction"></a>video</h3></div></div></div><a id="idm46420842813152" class="indexterm"></a><p>Specifies which video mimetypes are supported by the client. Each
+        parameter must be a single mimetype, listed in order of client
+        preference, with the optimal mimetype being the first parameter.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="server-handshake-instructions"></a>Server handshake instructions</h2></div></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="args-instruction"></a>args</h3></div></div></div><p>Reports the expected format of the argument list for the protocol
+        requested by the client. This message can be sent by the server during
+        the handshake phase only.</p><p>The first parameter of this instruction will be the protocol version
+        supported by the server.  This is used to negotiate protocol
+        compatibility between the client and the server, with the highest
+        supported protocol by both sides being chosen.  Versions of Guacamole
+        prior to 1.1.0 do not support protocol version negotiation, and will
+        silently ignore this instruction.</p><p>The remaining parameters of the args instruction are the names of all
+        connection parameters accepted by the server for the protocol selected
+        by the client, in order. The client's responding connect instruction
+        must contain the values of each of these parameters in the same order.
+    </p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-control-instructions"></a>Client control instructions</h2></div></div></div><a id="idm46420842804032" class="indexterm"></a><a id="idm46420842803136" class="indexterm"></a><a id="idm46420842801792" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-disconnect-instruction"></a>disconnect</h3></div></div></div><a id="idm46420842797968" class="indexterm"></a><p>Notifies the server that the connection is about to be closed by the
+        client. This message can be sent by the client during any phase, and
+        takes no parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-nop-instruction"></a>nop</h3></div></div></div><a id="idm46420842794032" class="indexterm"></a><p>The client "nop" instruction does absolutely nothing, has no parameters, and is
+        universally ignored by the Guacamole server. Its main use is as a keep-alive signal, and may
+        be sent by Guacamole clients when there is no activity to ensure the socket is not closed
+        due to timeout.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-sync-instruction"></a>sync</h3></div></div></div><a id="idm46420842789728" class="indexterm"></a><p>Reports that all operations as of the given server-relative timestamp
+        have been completed. If a sync is received from the server, the client
+        must respond with a corresponding sync once all previous operations have
+        been completed, or the server may stop sending updates until the client
+        catches up. For the client, sending a sync with a timestamp newer than
+        any timestamp received from the server is an error.</p><p>Both client and server are expected to occasionally send sync to
+        report on current operation execution state.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>A valid server-relative timestamp.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="server-control-instructions"></a>Server control instructions</h2></div></div></div><a id="idm46420842783888" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-disconnect-instruction"></a>disconnect</h3></div></div></div><a id="idm46420842780064" class="indexterm"></a><p>Notifies the client that the connection is about to be closed by the server. This message
+        can be sent by the server during any phase, and takes no parameters.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="error-instruction"></a>error</h3></div></div></div><a id="idm46420842776016" class="indexterm"></a><p>Notifies the client that the connection is about to be closed due to
+        the specified error. This message can be sent by the server during any
+        phase.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>text</code></em></span></dt><dd><p>An arbitrary message describing the error</p></dd><dt><span class="term"><em class="parameter"><code>status</code></em></span></dt><dd><p>The Guacamole status code describing the error. For a list of status codes,
+                    see the table in <a class="xref" href="protocol-reference.html#status-codes" title="Status codes">the section called “Status codes”</a>.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="log-instruction"></a>log</h3></div></div></div><a id="idm46420842766736" class="indexterm"></a><p>The log instruction sends an arbitrary string for debugging purposes. This instruction
+        will be ignored by Guacamole clients, but can be seen in protocol dumps if such dumps become
+        necessary. Sending a log instruction can help add context when searching for the cause of a
+        fault in protocol support.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>message</code></em></span></dt><dd><p>An arbitrary, human-readable message.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-mouse-instruction"></a>mouse</h3></div></div></div><a id="idm46420842760000" class="indexterm"></a><p>Reports that a user on the current connection has moved the mouse to the given
+        coordinates.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The current X coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The current Y coordinate of the mouse pointer.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-nop-instruction"></a>nop</h3></div></div></div><a id="idm46420842751552" class="indexterm"></a><p>The server "nop" instruction does absolutely nothing, has no parameters, and is
+        universally ignored by Guacamole clients. Its main use is as a keep-alive signal, and may be
+        sent by guacd or client plugins when there is no activity to ensure the socket is not closed
+        due to timeout.</p></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="ready-instruction"></a>ready</h3></div></div></div><a id="idm46420842747248" class="indexterm"></a><p>The ready instruction sends the ID of a new connection and marks the beginning of the
+        interactive phase of a new, successful connection. The ID sent is a completely arbitrary
+        string, and has no standard format. It must be unique from all existing and future
+        connections and may not match the name of any installed protocol support.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>ID</code></em></span></dt><dd><p>An arbitrary, unique identifier for the current connection. This identifier
+                    must be unique from all existing and future connections, and may not match the
+                    name of any installed protocol support (such as "vnc" or "rdp").</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="server-sync-instruction"></a>sync</h3></div></div></div><a id="idm46420842740288" class="indexterm"></a><p>Indicates that the given timestamp is the current timestamp as of all
+        previous operations. The client must respond to every sync instruction
+        received.</p><p>Both client and server are expected to occasionally send sync to
+        report on current operation execution state.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>timestamp</code></em></span></dt><dd><p>A valid server-relative timestamp.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-events"></a>Client events</h2></div></div></div><a id="idm46420842734320" class="indexterm"></a><a id="idm46420842733424" class="indexterm"></a><a id="idm46420842732080" class="indexterm"></a><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="key-instruction"></a>key</h3></div></div></div><a id="idm46420842728352" class="indexterm"></a><p>Sends the specified key press or release event.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>keysym</code></em></span></dt><dd><p>The <a class="link" href="http://www.x.org/wiki/KeySyms" target="_top">X11
+                        keysym</a> of the key being pressed or
+                    released.</p></dd><dt><span class="term"><em class="parameter"><code>pressed</code></em></span></dt><dd><p>0 if the key is not pressed, 1 if the key is
+                    pressed.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="client-mouse-instruction"></a>mouse</h3></div></div></div><a id="idm46420842718976" class="indexterm"></a><p>Sends the specified mouse movement or button press or release event (or
+        combination thereof).</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>x</code></em></span></dt><dd><p>The current X coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>y</code></em></span></dt><dd><p>The current Y coordinate of the mouse pointer.</p></dd><dt><span class="term"><em class="parameter"><code>mask</code></em></span></dt><dd><p>The button mask, representing the pressed or released
+                    status of each mouse button.</p></dd></dl></div></div><div xml:lang="en" class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a id="size-event-instruction"></a>size</h3></div></div></div><a id="idm46420842708528" class="indexterm"></a><p>Specifies that the client's optimal screen size has changed from what was specified during
+        the handshake, or from previously-sent "size" instructions.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>width</code></em></span></dt><dd><p>The new, optimal screen width.</p></dd><dt><span class="term"><em class="parameter"><code>height</code></em></span></dt><dd><p>The new, optimal screen height.</p></dd></dl></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="faq.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="appendices.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="book-index.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Appendix A. FAQ </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Index</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/proxying-guacamole.html b/doc/1.1.0/gug/proxying-guacamole.html
new file mode 100644
index 0000000..38f340f
--- /dev/null
+++ b/doc/1.1.0/gug/proxying-guacamole.html
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 4. Proxying Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="guacamole-docker.html" title="Chapter 3. Installing Guacamole with Docker" /><link rel="next" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 4. Proxying Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="guacamole-docker.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="configuring-guacamole.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="proxying-guacamole"></a>Chapter 4. Proxying Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="proxying-guacamole.html#preparing-servlet-container">Preparing your servlet container</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#tomcat-remote-ip">Setting up the Remote IP Valve</a></span></dt></dl></dd><dt><span class="section"><a href="proxying-guacamole.html#nginx">Nginx</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#proxying-with-nginx">Proxying Guacamole</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#changing-path-with-nginx">Changing the path</a></span></dt></dl></dd><dt><span class="section"><a href="proxying-guacamole.html#apache">Apache and <span class="package">mod_proxy</span></a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#proxying-with-apache">Proxying Guacamole</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#websocket-and-apache">Proxying the WebSocket tunnel</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#changing-path-with-apache">Changing the path</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#disable-tunnel-logging">Disabling logging of tunnel requests</a></span></dt></dl></dd></dl></div><p>Like most web applications, Guacamole can be placed behind a reverse proxy. For production
+        deployments of Guacamole, this is <span class="emphasis"><em>highly recommended</em></span>. It provides
+        flexibility and, if your proxy is properly configured for SSL, encryption.</p><p>Proxying isolates privileged operations within native applications that can safely drop
+        those privileges when no longer needed, using Java only for unprivileged tasks. On Linux and
+        UNIX systems, a process must be running with root privileges to listen on any port under
+        1024, including the standard HTTP and HTTPS ports (80 and 443 respectively). If the servlet
+        container instead listens on a higher port, such as the default port 8080, it can run as a
+        reduced-privilege user, allowing the reverse proxy to bear the burden of root privileges. As
+        a native application, the reverse proxy can make system calls to safely drop root privileges
+        once the port is open; a Java application like Tomcat cannot do this.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="preparing-servlet-container"></a>Preparing your servlet container</h2></div></div></div><p>Your servlet container is most likely already configured to listen for HTTP
+            connections on port 8080 as this is the default. If this is the case, and you can
+            already access Guacamole over port 8080 from a web browser, you need not make any
+            further changes to its configuration.</p><p>If you <span class="emphasis"><em>have</em></span> changed this, perhaps with the intent of proxying
+            Guacamole over AJP, <span class="emphasis"><em>change it back</em></span>. Using Guacamole over AJP is
+            unsupported as it is known to cause problems, namely:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>WebSocket will not work over AJP, forcing Guacamole to fallback to HTTP,
+                    possibly resulting in reduced performance.</p></li><li class="listitem"><p>Apache 2.4.3 and older does not support the HTTP PATCH method over AJP,
+                    preventing the Guacamole management interface from functioning properly.</p></li></ol></div><p>The connector entry within <code class="filename">conf/server.xml</code> should look like
+            this:</p><div class="informalexample"><pre class="programlisting">&lt;Connector port="8080" protocol="HTTP/1.1" 
+           connectionTimeout="20000"
+           URIEncoding="UTF-8"
+           redirectPort="8443" /&gt;</pre></div><p>Be sure to specify the <code class="code">URIEncoding="UTF-8"</code> attribute as above to ensure
+            that connection names, user names, etc. are properly received by the web application. If
+            you will be creating connections that have Cyrillic, Chinese, Japanese, or other
+            non-Latin characters in their names or parameter values, this attribute is
+            required.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="tomcat-remote-ip"></a>Setting up the Remote IP Valve</h3></div></div></div><p>By default, when Tomcat is behind a reverse proxy, the remote IP address of the
+                client that it sees is that of the proxy rather than the original client.  In order
+                to allow applications hosted within Tomcat, like Guacamole, to see the actual IP
+                address of the client, you have to configure both the reverse proxy and Tomcat.</p><p>Because the remote IP address in Guacamole is used for auditing of user logins and
+                connections and could potentially be used for authentication, it is important that you
+                are either in direct control of the proxy server or you explicitly trust it.  Passing
+                the remote IP address is done using the <code class="code">X-Forwarded-For</code> header, and,
+                as with most HTTP headers, attackers can attempt to spoof this header in order to
+                manipulate the behavior of the web server, gain unauthorized access to the system,
+                or attempt to disguise the host or IP address they are coming from.</p><p>One final caveat: This may not work as expected if there are other upstream proxy
+                servers between your reverse proxy and the clients access Guacamole.  Other proxies
+                or firewalls can mask the IP address of the client, and if the configuration of
+                those is not within your control you may end up with multiple clients appearing to
+                come from the same IP address or host.  Make sure you take this into account when
+                configuring the system and looking at the data provided.</p><p>Configuring Tomcat to pass through the remote IP address provided by the reverse
+                proxy in the <code class="code">X-Forwarded-For</code> header requires the configuration of what
+                Tomcat calls a Valve.  In this case, it is the <a class="link" href="https://tomcat.apache.org/tomcat-8.5-doc/config/valve.html#Remote_IP_Valve" target="_top">
+                    <code class="code">RemoteIpValve</code></a> and is configured in the
+                <code class="filename">conf/server.xml</code> file, in the <code class="code">&lt;Host&gt;</code> section:
+            </p><div class="informalexample"><pre class="programlisting">&lt;Valve className="org.apache.catalina.valves.RemoteIpValve"
+               internalProxies="127.0.0.1"
+               remoteIpHeader="x-forwarded-for"
+               remoteIpProxiesHeader="x-forwarded-by"
+               protocolHeader="x-forwarded-proto" /&gt;</pre></div><p>The <em class="parameter"><code>internalProxies</code></em> value should be set to the IP address
+                or addresses of any and all reverse proxy servers that will be accessing this Tomcat
+                instance directly.  Often it is run on the same system that runs Tomcat, but in other
+                cases (for example, when running Docker), it may be on a different system/container and
+                may need to be set to the actual IP address of the reverse proxy system.  Only proxy
+                servers listed in the <em class="parameter"><code>internalProxies</code></em> or
+                <em class="parameter"><code>trustedProxies</code></em> parameters will be allowed to manipulate the
+                remote IP address information.  The other parameters in this configuration line allow
+                you to control which headers coming from the proxy server(s) are used for various
+                remote host information.  They are as follows:
+            </p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1" /><col class="c2" /></colgroup><thead><tr><th>Parameter name</th><th>Description</th></tr></thead><tbody><tr><td><em class="parameter"><code>remoteIpHeader</code></em></td><td>
+                                <p>The header that is queried to learn the client IP address
+                                    of the client that originated the request.  The standard
+                                    value is <code class="code">X-Forwarded-For</code>, but can
+                                    be configured to any header you like.  The IP address in this
+                                    header will be available to Java applications in the
+                                    <code class="code">request.getRemoteAddr()</code> method.</p>
+                            </td></tr><tr><td><em class="parameter"><code>remoteIpProxiesHeader</code></em></td><td>
+                                <p>The header that is queried to learn the IP address of the
+                                    proxy server that forwarded the request.  The default value
+                                    is <code class="code">X-Forwarded-By</code>, but can be configured to
+                                    any header that fits your environment.  This value will only
+                                    be allowed by the valve if the proxy used is listed in the
+                                    <em class="parameter"><code>trustedProxies</code></em> parameter.  Otherwise
+                                    this header will not be available.</p>
+                            </td></tr><tr><td><em class="parameter"><code>protocolHeader</code></em></td><td>
+                                <p>The header that is queried to determine the protocol
+                                    that the client used to connect to the service.  The default
+                                    value is <code class="code">X-Forwarded-Proto</code>, but can be
+                                    configured to fit your environment.</p>
+                            </td></tr></tbody></table></div><p>In addition to configuring Tomcat to properly handle these headers, you also may
+                need to configure your reverse proxy appropriately to send the headers.  You can
+                find instructions for this in <a class="xref" href="proxying-guacamole.html#nginx" title="Nginx">the section called “Nginx”</a> - the Apache web server
+                passes it through by default.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="nginx"></a>Nginx</h2></div></div></div><p>Nginx can be used as a reverse proxy, and supports WebSocket out-of-the-box <a class="link" href="http://nginx.com/blog/websocket-nginx/" target="_top">since version 1.3</a>. Both
+            Apache and Nginx require some additional configuration for proxying of WebSocket to work
+            properly.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="proxying-with-nginx"></a>Proxying Guacamole</h3></div></div></div><p>Nginx does support WebSocket for proxying, but requires that the "Connection" and
+                "Upgrade" HTTP headers are set explicitly due to the nature of the WebSocket
+                protocol. From the Nginx documentation:</p><div class="blockquote"><blockquote class="blockquote"><p>NGINX supports WebSocket by allowing a tunnel to be set up between a client
+                    and a back-end server. For NGINX to send the Upgrade request from the client to
+                    the back-end server, Upgrade and Connection headers must be set explicitly.
+                    ...</p></blockquote></div><p>The proxy configuration belongs within a dedicated <a class="link" href="http://nginx.org/en/docs/http/ngx_http_core_module.html#location" target="_top"><code class="code">location</code></a> block, declaring the backend hosting Guacamole
+                and explicitly specifying the "Connection" and "Upgrade" headers mentioned
+                earlier:</p><div class="informalexample"><pre class="programlisting">location /guacamole/ {
+    proxy_pass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/;
+    proxy_buffering off;
+    proxy_http_version 1.1;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection $http_connection;
+    access_log off;
+}</pre></div><p>Here, <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or IP address of the
+                machine hosting your servlet container, and <em class="replaceable"><code>8080</code></em> is the
+                port that servlet container is configured to use. You will need to replace these
+                values with the correct values for your server.</p><p>Related to the RemoteIpValve configuration for tomcat, documented in
+                <a class="xref" href="proxying-guacamole.html#tomcat-remote-ip" title="Setting up the Remote IP Valve">the section called “Setting up the Remote IP Valve”</a>, the
+                <code class="code">proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</code> line is
+                important if you want the <code class="code">X-Forwarded-For</code> header to be passed through
+                to the web application server and available to applications running inside it.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Do not forget to specify "<code class="code">proxy_buffering
+                        off</code>".</em></span></p><p>Most proxies, including Nginx, will buffer all data sent over the connection,
+                    waiting until the connection is closed before sending that data to the client.
+                    As Guacamole's HTTP tunnel relies on streaming data to the client over an open
+                    connection, excessive buffering will effectively block Guacamole connections,
+                    rendering Guacamole useless.</p><p><span class="emphasis"><em>If the option "<code class="code">proxy_buffering off</code>" is not specified,
+                        Guacamole may not work</em></span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-path-with-nginx"></a>Changing the path</h3></div></div></div><p>If you wish to serve Guacamole through Nginx under a path other than
+                    <code class="uri">/guacamole/</code>, the configuration will need to be altered slightly to
+                take cookies into account. Although Guacamole does not rely on receipt of cookies in
+                general, cookies are required for the proper operation of the HTTP tunnel. If the
+                HTTP tunnel is used, and cookies cannot be set, users may be unexpectedly denied
+                access to their connections.</p><p>Regardless of the location specified for the proxy, cookies set by Guacamole will
+                be set using its own absolute path within the backend (<code class="uri">/guacamole/</code>). If
+                this path differs from that used by Nginx, the path in the cookie needs to be
+                modified using <code class="code">proxy_cookie_path</code>:</p><div class="informalexample"><pre class="programlisting">location /<em class="replaceable"><code>new-path/</code></em> {
+    proxy_pass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/;
+    proxy_buffering off;
+    proxy_http_version 1.1;
+    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+    proxy_set_header Upgrade $http_upgrade;
+    proxy_set_header Connection $http_connection;
+    <span class="emphasis"><em>proxy_cookie_path /guacamole/ /<em class="replaceable"><code>new-path/</code></em>;</em></span>
+    access_log off;
+}</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="apache"></a>Apache and <span class="package">mod_proxy</span></h2></div></div></div><p>Apache supports reverse proxy configurations through <a class="link" href="http://httpd.apache.org/docs/2.4/mod/mod_proxy.html" target="_top"><span class="package">mod_proxy</span></a>. Apache 2.4.5 and later also support
+            proxying of WebSocket through a sub-module called <a class="link" href="http://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html" target="_top"><span class="package">mod_proxy_wstunnel</span></a>. Both of these modules will need
+            to be enabled for proxying of Guacamole to work properly.</p><p>Lacking <span class="package">mod_proxy_wstunnel</span>, it is still possible to proxy
+            Guacamole, but Guacamole will be unable to use WebSocket. It will instead fallback to
+            using the HTTP tunnel, resulting in reduced performance.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="proxying-with-apache"></a>Proxying Guacamole</h3></div></div></div><p>Configuring Apache to proxy HTTP requests requires using the
+                    <em class="parameter"><code>ProxyPass</code></em> and <em class="parameter"><code>ProxyPassReverse</code></em>
+                directives, which are provided by the <span class="package">mod_proxy</span> module. These
+                directives describe how HTTP traffic should be routed to the web server behind the
+                proxy:</p><div class="informalexample"><pre class="programlisting">&lt;Location /guacamole/&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/ flushpackets=on
+    ProxyPassReverse http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/
+&lt;/Location&gt;</pre></div><p>Here, <em class="replaceable"><code>HOSTNAME</code></em> is the hostname or IP address of the
+                machine hosting your servlet container, and <em class="replaceable"><code>8080</code></em> is the
+                port that servlet container is configured to use. You will need to replace these
+                values with the correct values for your server.</p><div class="important"><h3 class="title">Important</h3><p><span class="emphasis"><em>Do not forget the <code class="option">flushpackets=on</code>
+                        option.</em></span></p><p>Most proxies, including <span class="package">mod_proxy</span>, will buffer all data
+                    sent over the connection, waiting until the connection is closed before sending
+                    that data to the client. As Guacamole's HTTP tunnel relies on streaming data to
+                    the client over an open connection, excessive buffering will effectively block
+                    Guacamole connections, rendering Guacamole useless.</p><p><span class="emphasis"><em>If the option <code class="option">flushpackets=on</code> is not specified,
+                        Guacamole may not work</em></span>.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="websocket-and-apache"></a>Proxying the WebSocket tunnel</h3></div></div></div><p>Apache will not automatically proxy WebSocket connections, but you can proxy them
+                separately with Apache 2.4.5 and later using <span class="package">mod_proxy_wstunnel</span>.
+                After enabling <span class="package">mod_proxy_wstunnel</span> a secondary
+                    <code class="code">Location</code> section can be added which explicitly proxies the
+                Guacamole WebSocket tunnel, located at
+                <code class="uri">/guacamole/websocket-tunnel</code>:</p><div class="informalexample"><pre class="programlisting">&lt;Location /guacamole/websocket-tunnel&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+    ProxyPassReverse ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+&lt;/Location&gt;</pre></div><p>Lacking this, Guacamole will still work by using normal HTTP, but network latency
+                will be more pronounced with respect to user input, and performance may be
+                lower.</p><div class="important"><h3 class="title">Important</h3><p>The <code class="code">Location</code> section for <code class="uri">/guacamole/websocket-tunnel</code>
+                    must be placed after the <code class="code">Location</code> section for the rest of
+                    Guacamole.</p><p>Apache evaluates all Location sections, giving priority to the last section
+                    that matches. If the <code class="uri">/guacamole/websocket-tunnel</code> section comes first,
+                    the section for <code class="uri">/guacamole/</code> will match instead, and WebSocket will
+                    not be proxied correctly.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-path-with-apache"></a>Changing the path</h3></div></div></div><p>If you wish to serve Guacamole through Apache under a path other than
+                    <code class="uri">/guacamole/</code>, the configuration required for Apache will be slightly
+                different than the examples above due to cookies.</p><p>Guacamole does not rely on receipt of cookies for tracking whether a user is
+                logged in, but cookies are required for the proper operation of the HTTP tunnel. If
+                the HTTP tunnel is used, and cookies cannot be set, users will be unexpectedly
+                denied access to connections they legitimately should have access to.</p><p>Cookies are set using the absolute path of the web application
+                    (<code class="uri">/guacamole/</code>). If this path differs from that used by Apache, the
+                path in the cookie needs to be modified using the
+                    <em class="parameter"><code>ProxyPassReverseCookiePath</code></em> directive:</p><div class="informalexample"><pre class="programlisting">&lt;Location /<em class="replaceable"><code>new-path/</code></em>&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/ flushpackets=on
+    ProxyPassReverse http://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/
+    <span class="emphasis"><em>ProxyPassReverseCookiePath /guacamole/ /<em class="replaceable"><code>new-path/</code></em></em></span>
+&lt;/Location&gt;
+
+&lt;Location /<em class="replaceable"><code>new-path</code></em>/websocket-tunnel&gt;
+    Order allow,deny
+    Allow from all
+    ProxyPass ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+    ProxyPassReverse ws://<em class="replaceable"><code>HOSTNAME</code></em>:<em class="replaceable"><code>8080</code></em>/guacamole/websocket-tunnel
+&lt;/Location&gt;</pre></div><p>This directive is not needed for the WebSocket section, as it is not applicable.
+                Cookies are only used by Guacamole within the HTTP tunnel.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="disable-tunnel-logging"></a>Disabling logging of tunnel requests</h3></div></div></div><p>If WebSocket is unavailable, Guacamole will fallback to using an HTTP-based
+                tunnel. The Guacamole HTTP tunnel works by transferring a continuous stream of data
+                over multiple short-lived streams, each associated with a separate HTTP request. By
+                default, Apache will log each of these requests, resulting in a rather bloated
+                access log.</p><p>There is little value in a log file filled with identical tunnel requests, so it
+                is recommended to explicitly disable logging of those requests. Apache does provide
+                a means of matching URL patterns and setting environment variables based on whether
+                the URL matches. Logging can then be restricted to requests which lack this
+                environment variable:</p><div class="informalexample"><pre class="programlisting">SetEnvIf Request_URI "^<em class="replaceable"><code>/guacamole</code></em>/tunnel" dontlog
+CustomLog  <em class="replaceable"><code>/var/log/apache2/guac.log</code></em> common env=!dontlog</pre></div><p>Note that if you are serving Guacamole under a path different from
+                    <code class="uri">/guacamole/</code>, you will need to change the value of
+                    <em class="parameter"><code>Request_URI</code></em> above accordingly.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="guacamole-docker.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="configuring-guacamole.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 3. Installing Guacamole with Docker </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 5. Configuring Guacamole</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/radius-auth.html b/doc/1.1.0/gug/radius-auth.html
new file mode 100644
index 0000000..c3f97d0
--- /dev/null
+++ b/doc/1.1.0/gug/radius-auth.html
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 13. RADIUS Authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="openid-auth.html" title="Chapter 12. OpenID Connect Authentication" /><link rel="next" href="adhoc-connections.html" title="Chapter 14. Ad-hoc Connections" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. RADIUS Authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="openid-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="adhoc-connections.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="radius-auth"></a>Chapter 13. RADIUS Authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="radius-auth.html#radius-downloading">Downloading the RADIUS authentication extension</a></span></dt><dt><span class="section"><a href="radius-auth.html#installing-radius-auth">Installing RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#completing-radius-install">Completing the installation</a></span></dt></dl></div><a id="idm46420847467376" class="indexterm"></a><p>Guacamole supports delegating authentication to a RADIUS service, such as FreeRADIUS, to
+        validate username and password combinations, and to support multi-factor authentication.  This
+        authentication method must be layered on top of some other authentication extension, such as
+        those available from the main project website, in order to provide access to actual
+        connections.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="radius-downloading"></a>Downloading the RADIUS authentication extension</h2></div></div></div><p>The RADIUS extension depends on software that is covered by a LGPL license, which is
+            incompatible with the Apache 2.0 license under which Guacamole is licensed.  Due to this
+            dependency, the Guacamole project cannot distribute binary versions of the RADIUS extension.
+            If you want to use this extension you will need to build the code - or at least the RADIUS
+            extension yourself.  Build instructions can be found in the section
+            <a class="xref" href="installing-guacamole.html" title="Chapter 2. Installing Guacamole natively">Chapter 2, <em>Installing Guacamole natively</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-radius-auth"></a>Installing RADIUS authentication</h2></div></div></div><p>The RADIUS extension must be explicitly enabled during build time in order to generate
+            the binaries and resulting JAR file.  This is done by adding the flag <code class="option">-Plgpl-extensions</code>
+            to the Maven command line during the build, and should result in the output below:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>mvn clean package -Plgpl-extensions</code></strong>
+<code class="computeroutput">[INFO] --- maven-assembly-plugin:2.5.3:single (make-source-archive) @ guacamole-client ---
+[INFO] Reading assembly descriptor: project-assembly.xml
+[INFO] Building tar: /home/guac/guacamole-client/target/guacamole-client-1.1.0.tar.gz
+[INFO] ------------------------------------------------------------------------
+[INFO] Reactor Summary:
+[INFO] 
+[INFO] guacamole-common .................................. SUCCESS [6.037s]
+[INFO] guacamole-ext ..................................... SUCCESS [5.382s]
+[INFO] guacamole-common-js ............................... SUCCESS [0.751s]
+[INFO] guacamole ......................................... SUCCESS [9.767s]
+[INFO] guacamole-auth-cas ................................ SUCCESS [2.811s]
+[INFO] guacamole-auth-duo ................................ SUCCESS [2.441s]
+[INFO] guacamole-auth-header ............................. SUCCESS [1.875s]
+[INFO] guacamole-auth-jdbc ............................... SUCCESS [0.277s]
+[INFO] guacamole-auth-jdbc-base .......................... SUCCESS [2.144s]
+[INFO] guacamole-auth-jdbc-mysql ......................... SUCCESS [5.637s]
+[INFO] guacamole-auth-jdbc-postgresql .................... SUCCESS [5.465s]
+[INFO] guacamole-auth-jdbc-sqlserver ..................... SUCCESS [5.398s]
+[INFO] guacamole-auth-jdbc-dist .......................... SUCCESS [0.824s]
+[INFO] guacamole-auth-ldap ............................... SUCCESS [2.743s]
+[INFO] guacamole-auth-noauth ............................. SUCCESS [0.964s]
+[INFO] guacamole-auth-openid ............................. SUCCESS [2.533s]
+[INFO] guacamole-example ................................. SUCCESS [0.888s]
+[INFO] guacamole-playback-example ........................ SUCCESS [0.628s]
+[INFO] guacamole-auth-radius ............................. SUCCESS [17.729s]
+[INFO] guacamole-client .................................. SUCCESS [5.645s]
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESS
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 1:20.134s
+[INFO] Finished at: Wed Jan 31 09:45:41 EST 2018
+[INFO] Final Memory: 47M/749M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>After the build completes successfully, the extension will be in the
+            <code class="filename">extensions/guacamole-auth-radius/target/</code> directory, and will be
+            called guacamole-auth-radius-1.1.0.jar.  This extension file can be copied to
+            the <code class="filename">GUACAMOLE_HOME/extensions</code> directory.
+            <span class="emphasis"><em>If you are unsure where <code class="varname">GUACAMOLE_HOME</code> is located on
+            your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before
+            proceeding.</em></span></p><p>Extensions are loaded in alphabetical order, and authentication is performed
+            in the order in which the extensions were loaded.  If you are stacking the
+            RADIUS extension with another extension, like the JDBC extension, in order to
+            store connection information, you may need to change the name of the RADIUS
+            extension such that it is evaluated prior to the JDBC extension - otherwise
+            an authentication failure in one of the previous modules may block the RADIUS
+            module from ever being evaluated.</p><p>To install the RADIUS authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-radius-1.1.0.jar</code> into
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use RADIUS authentication, as described
+                    below.</p></li></ol></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guac-radius-config"></a>Configuring Guacamole for RADIUS authentication</h2></div></div></div><a id="idm46420848490096" class="indexterm"></a><a id="idm46420848489184" class="indexterm"></a><p>This extension provides several configuration properties in order 
+            to communicate properly with the RADIUS server to which it needs to authenticate.  It is 
+            important that you know several key pieces of information about the RADIUS server - 
+            at a minimum, the server name or IP, the authentication port, the authentication 
+            protocol in use by the server, and the shared secret for the RADIUS client.  If you 
+            are responsible for the RADIUS server, you'll need to properly configure these items 
+            to get Guacamole to authenticate properly.  If you're not responsible for the RADIUS 
+            server you will need to work with the administrator to get all of the necessary 
+            configuration items for the server.  These items will need to be configured in the 
+            <a class="link" href="configuring-guacamole.html#initial-setup" title="guacamole.properties"><code class="filename">guacamole.properties</code></a> 
+            file.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">radius-hostname</span></span></dt><dd><p>The RADIUS server to authenticate against.  If not specified, 
+                        localhost will be used.</p></dd><dt><span class="term"><span class="property">radius-auth-port</span></span></dt><dd><p>The RADIUS authentication port on which the RADIUS service is
+                        is listening.  If not specified, the default of 1812 will be
+                        used.</p></dd><dt><span class="term"><span class="property">radius-shared-secret</span></span></dt><dd><p>The shared secret to use when talking to the RADIUS server.  This
+                        parameter is required and the extension will not load if this is not
+                        specified.
+                        </p></dd><dt><span class="term"><span class="property">radius-auth-protocol</span></span></dt><dd><p>The authentication protocol to use when talking to the RADIUS server.
+                        This parameter is required for the extension to operate.  Supported
+                        values are: pap, chap, mschapv1, mschapv2, eap-md5, eap-tls, and eap-ttls.
+                        Support for PEAP is implemented inside the extension, but, due to a regression
+                        in the JRadius implementation, it is currently broken.  Also, if you specify
+                        eap-ttls you will also need to specify the
+                        <span class="property">radius-eap-ttls-inner-protocol</span> parameter in order to
+                        properly configure the protocol used inside the EAP TTLS tunnel.</p></dd><dt><span class="term"><span class="property">radius-key-file</span></span></dt><dd><p>The combination certificate and private key pair to use for TLS-based
+                        RADIUS protocols that require a client-side certificate.  This parameter
+                        should specify the absolute path to the file.  By default the extension
+                        will look for a file called radius.key in the GUACAMOLE_HOME directory.
+                        </p></dd><dt><span class="term"><span class="property">radius-key-type</span></span></dt><dd><p>The file type of the keystore specified by the <span class="property">radius-key-file</span> 
+                        parameter.  Valid keystore types are pem, jceks, jks, and pkcs12.
+                        If not specified, this defaults to pkcs12, the default used by 
+                        the JRadius library.</p></dd><dt><span class="term"><span class="property">radius-key-password</span></span></dt><dd><p>The password of the private key specified in the 
+                        <span class="property">radius-key-file</span> parameter.  By default the extension   
+                        will not use any password when trying to open the key file.</p></dd><dt><span class="term"><span class="property">radius-ca-file</span></span></dt><dd><p>The absolute path to the file that stores the certificate authority
+                        certificates for encrypted connections to the RADIUS server.  By default
+                        a file with the name ca.crt in the GUACAMOLE_HOME directory will be used.
+                        </p></dd><dt><span class="term"><span class="property">radius-ca-type</span></span></dt><dd><p>The file type of keystore used for the certificate authority.  Valid formats are
+                        pem, jceks, jks, and pkcs12.  If not specified this defaults to pem.</p></dd><dt><span class="term"><span class="property">radius-ca-password</span></span></dt><dd><p>The password used to protect the certificate authority store, if
+                        any.  If unspecified the extension will attempt to read the CA
+                        store without any password.</p></dd><dt><span class="term"><span class="property">radius-trust-all</span></span></dt><dd><p>This parameter controls whether or not the RADIUS extension
+                    should trust all certificates or verify them against known good
+                    certificate authorities.  Set to true to allow the RADIUS server
+                    to connect without validating certificates.  The default is false,
+                    which causes certificates to be validated.</p></dd><dt><span class="term"><span class="property">radius-retries</span></span></dt><dd><p>The number of times the client will retry the connection to the 
+                        RADIUS server and not receive a response before giving up.  By default
+                        the client will try the connection at most 5 times.</p></dd><dt><span class="term"><span class="property">radius-timeout</span></span></dt><dd><p>The timeout for a RADIUS connection in seconds.  By default the client
+                        will wait for a response from the server for at most 60 seconds.</p></dd><dt><span class="term"><span class="property">radius-eap-ttls-inner-protocol</span></span></dt><dd><p>When EAP-TTLS is used, this parameter specifies the inner (tunneled)
+                        protocol to use talking to the RADIUS server.  It is required when the
+                        <span class="property">radius-auth-protocol</span> parameter is set to eap-ttls.
+                        If the <span class="property">radius-auth-protocol</span> value is set to something
+                        other than eap-ttls, this parameter has no effect and will be ignored. Valid
+                        options for this are any of the values for
+                        <span class="property">radius-auth-protocol</span>, except for eap-ttls.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="completing-radius-install"></a>Completing the installation</h2></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+            newly-installed extensions during startup, so your servlet container will need to be
+            restarted before HTTP header authentication can be used. <span class="emphasis"><em>Doing this will
+            disconnect all active users, so be sure that it is safe to do so prior to
+            attempting installation.</em></span> When ready, restart your servlet container
+            and give the new authentication a try.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="openid-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="adhoc-connections.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 12. OpenID Connect Authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 14. Ad-hoc Connections</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/totp-auth.html b/doc/1.1.0/gug/totp-auth.html
new file mode 100644
index 0000000..d30c0bd
--- /dev/null
+++ b/doc/1.1.0/gug/totp-auth.html
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 9. TOTP two-factor authentication</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="duo-auth.html" title="Chapter 8. Duo two-factor authentication" /><link rel="next" href="header-auth.html" title="Chapter 10. HTTP header authentication" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 9. TOTP two-factor authentication</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="duo-auth.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="header-auth.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="totp-auth"></a>Chapter 9. TOTP two-factor authentication</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="totp-auth.html#totp-prerequisites">Prerequisites</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-architecture">How TOTP works with Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#totp-enrollment">Enrollment</a></span></dt></dl></dd><dt><span class="section"><a href="totp-auth.html#totp-downloading">Downloading the TOTP extension</a></span></dt><dt><span class="section"><a href="totp-auth.html#installing-totp-auth">Installing TOTP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#guac-totp-config">Configuring Guacamole for TOTP</a></span></dt><dt><span class="section"><a href="totp-auth.html#completing-totp-install">Completing the installation</a></span></dt></dl></dd></dl></div><a id="idm46420857820416" class="indexterm"></a><p>Guacamole supports TOTP as a second authentication factor, layered on top of any other
+        authentication extension, including those available from the main project website, providing
+            <a class="link" href="totp-auth.html#totp-prerequisites" title="Prerequisites">base requirements for key storage and
+            enrollment</a> are met. The TOTP authentication extension allows users to be
+        additionally verified against a user-specific and secret key generated during <a class="link" href="totp-auth.html#totp-enrollment" title="Enrollment">enrollment of their authentication device</a>.</p><div class="important"><h3 class="title">Important</h3><p>This chapter involves modifying the contents of <code class="varname">GUACAMOLE_HOME</code> -
+            the Guacamole configuration directory. If you are unsure where
+                <code class="varname">GUACAMOLE_HOME</code> is located on your system, please consult <a class="xref" href="configuring-guacamole.html" title="Chapter 5. Configuring Guacamole">Chapter 5, <em>Configuring Guacamole</em></a> before proceeding.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-prerequisites"></a>Prerequisites</h2></div></div></div><p>The enrollment process used by Guacamole's TOTP support needs to be able to store an
+            automatically-generated key within the user's account, and will be operating with the
+            privileges of that user when it does so. With this in mind, there are requirements which
+            must be satisfied for TOTP to work as expected:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Another extension must be installed which supports storage of arbitrary data
+                    from other extensions. <span class="emphasis"><em>Currently the only extensions provided with
+                        Guacamole which support this kind of storage are the <a class="link" href="jdbc-auth.html" title="Chapter 6. Database authentication">database authentication
+                        extensions</a>.</em></span></p></li><li class="listitem"><p>Within whichever extension provides the storage described above, users
+                    requiring TOTP must be granted permission to update their own accounts (to
+                    update their passwords, etc.). This privilege is managed within the <a class="link" href="administration.html#user-management" title="User management">administrative web interface</a> with a
+                    checkbox labeled "change own password". <span class="emphasis"><em>If a user lacks this
+                        permission, the TOTP extension will not be able to generate and store the
+                        user's TOTP key during enrollment, and TOTP will be disabled for that
+                        user.</em></span></p></li></ul></div><p>It is thus recommended that authentication against a database be fully configured
+            prior to setting up TOTP. Instructions walking through the setup of database
+            authentication for Guacamole are provided in <a class="xref" href="jdbc-auth.html" title="Chapter 6. Database authentication">Chapter 6, <em>Database authentication</em></a>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-architecture"></a>How TOTP works with Guacamole</h2></div></div></div><p>Guacamole provides support for TOTP as a second authentication factor. To make use of
+            the TOTP authentication extension, some other authentication mechanism will need be
+            configured, as well. When a user attempts to log into Guacamole, other installed
+            authentication methods will be queried first:</p><div class="informalfigure"><div class="mediaobject"><img src="images/totp-auth-factor-1.png" width="180" /></div></div><p>Only after authentication has succeeded with one of those methods will Guacamole
+            prompt the user to further verify their identity with an authentication code:</p><div class="informalfigure"><div class="mediaobject"><img src="images/totp-auth-factor-2.png" width="360" /></div></div><p>If both the initial authentication attempt and verification using TOTP succeed, the
+            user will be allowed in. If either mechanism fails, access to Guacamole is
+            denied.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="totp-enrollment"></a>Enrollment</h3></div></div></div><p>If the user does not yet have a TOTP key associated with their account (they have
+                not yet completed enrollment), they will be required to enroll an authentication
+                device after passing the first authentication factor. A QR code containing an
+                automatically-generated key will be presented to the user to be scanned by their
+                authentication app or device:</p><div class="mediaobject"><img src="images/totp-enroll.png" width="360" /></div><p>If the authentication device does not support scanning QR codes for enrollment,
+                the details within the QR code can be revealed by clicking the "Show" link next to
+                the "Details" header. These values can then be entered manually:</p><div class="mediaobject"><img src="images/totp-enroll-detail.png" width="360" /></div><p>Enrollment is completed once the user enters a valid authentication code generated
+                by their device using the provided key.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="totp-downloading"></a>Downloading the TOTP extension</h2></div></div></div><p>The TOTP authentication extension is available separately from the main
+                <code class="filename">guacamole.war</code>. The link for this and all other
+            officially-supported and compatible extensions for a particular version of Guacamole are
+            provided on the release notes for that version. You can find the release notes for
+            current versions of Guacamole here: <a class="link" href="http://guacamole.apache.org/releases/" target="_top">http://guacamole.apache.org/releases/</a>.</p><p>The TOTP authentication extension is packaged as a <code class="filename">.tar.gz</code> file
+            containing only the extension itself,
+            <code class="filename">guacamole-auth-totp-1.1.0.jar</code>, which must ultimately be placed in
+                <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="installing-totp-auth"></a>Installing TOTP authentication</h2></div></div></div><p>Guacamole extensions are self-contained <code class="filename">.jar</code> files which are
+            located within the <code class="filename">GUACAMOLE_HOME/extensions</code> directory. To install
+            the TOTP authentication extension, you must:</p><div class="procedure"><ol class="procedure" type="1"><li class="step"><p>Create the <code class="filename">GUACAMOLE_HOME/extensions</code> directory, if it
+                    does not already exist.</p></li><li class="step"><p>Copy <code class="filename">guacamole-auth-totp-1.1.0.jar</code> within
+                        <code class="filename">GUACAMOLE_HOME/extensions</code>.</p></li><li class="step"><p>Configure Guacamole to use TOTP authentication, as described below.</p></li></ol></div><div class="important"><h3 class="title">Important</h3><p>You will need to restart Guacamole by restarting your servlet container in order
+                to complete the installation. Doing this will disconnect all active users, so be
+                sure that it is safe to do so prior to attempting installation. If you do not
+                configure the TOTP authentication properly, Guacamole will not start up again until
+                the configuration is fixed.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guac-totp-config"></a>Configuring Guacamole for TOTP</h3></div></div></div><a id="idm46420848413344" class="indexterm"></a><a id="idm46420848412448" class="indexterm"></a><p>With the exception of <a class="link" href="totp-auth.html#totp-prerequisites" title="Prerequisites">the storage and
+                    permission requirements described above</a>, the TOTP extension should work
+                out-of-the-box without any additional configuration. Defaults have been chosen for
+                all configuration parameters such that the TOTP extension will be compatible with
+                Google Authenticator and similar, popular TOTP implementations.</p><p>If your intended authentication application or device has different requirements,
+                or you wish to override the defaults, additional properties may be specified within
+                    <code class="filename">guacamole.properties</code>:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"><span class="property">totp-issuer</span></span></dt><dd><p>The human-readable name of the entity issuing user accounts. If not
+                            specified, "Apache Guacamole" will be used by default.</p></dd><dt><span class="term"><span class="property">totp-digits</span></span></dt><dd><p>The number of digits which should be included in each generated TOTP
+                            code. Legal values are 6, 7, or 8. By default, 6-digit codes are
+                            generated.</p></dd><dt><span class="term"><span class="property">totp-period</span></span></dt><dd><p>The duration that each generated code should remain valid, in seconds.
+                            By default, each code remains valid for 30 seconds.</p></dd><dt><span class="term"><span class="property">totp-mode</span></span></dt><dd><p>The hash algorithm that should be used to generate TOTP codes. Legal
+                            values are "sha1", "sha256", and "sha512". By default, "sha1" is
+                            used.</p></dd></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="completing-totp-install"></a>Completing the installation</h3></div></div></div><p>Guacamole will only reread <code class="filename">guacamole.properties</code> and load
+                newly-installed extensions during startup, so your servlet container will need to be
+                restarted before TOTP authentication will take effect. Restart your servlet
+                container and give the new authentication a try.</p><p>
+                </p><div class="important"><h3 class="title">Important</h3><p>You only need to restart your servlet container. <span class="emphasis"><em>You do not need
+                            to restart <span class="package">guacd</span></em></span>.</p><p><span class="package">guacd</span> is completely independent of the web application
+                        and does not deal with <code class="filename">guacamole.properties</code> or the
+                        authentication system in any way. Since you are already restarting the
+                        servlet container, restarting <span class="package">guacd</span> as well technically
+                        won't hurt anything, but doing so is completely pointless.</p></div><p>
+            </p><p>If Guacamole does not come back online after restarting your servlet container,
+                check the logs. Problems in the configuration of the TOTP extension may prevent
+                Guacamole from starting up, and any such errors will be recorded in the logs of your
+                servlet container.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="duo-auth.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="header-auth.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 8. Duo two-factor authentication </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 10. HTTP header authentication</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/troubleshooting.html b/doc/1.1.0/gug/troubleshooting.html
new file mode 100644
index 0000000..490c6eb
--- /dev/null
+++ b/doc/1.1.0/gug/troubleshooting.html
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 17. Troubleshooting</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="administration.html" title="Chapter 16. Administration" /><link rel="next" href="developers-guide.html" title="Part II. Developer's Guide" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 17. Troubleshooting</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="administration.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="developers-guide.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="troubleshooting"></a>Chapter 17. Troubleshooting</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="troubleshooting.html#not-working">It isn't working</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#idm46420845291632">No graphics appear</a></span></dt><dt><span class="section"><a href="troubleshooting.html#idm46420845285632">Connections involving Unicode don't work</a></span></dt></dl></dd><dt><span class="section"><a href="troubleshooting.html#syslog">syslog</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#guacd-errors">guacd errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#libguac-client-vnc-errors">libguac-client-vnc errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#libguac-client-rdp-errors">libguac-client-rdp errors</a></span></dt></dl></dd><dt><span class="section"><a href="troubleshooting.html#servlet-container-logs">Servlet container logs</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#user-mapping-xml-errors"><code class="filename">user-mapping.xml</code> errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-properties-errors"><code class="filename">guacamole.properties</code> errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-auth-errors">Authentication errors</a></span></dt><dt><span class="section"><a href="troubleshooting.html#guacamole-tunnel-errors">Tunnel errors</a></span></dt></dl></dd></dl></div><a id="idm46420845296272" class="indexterm"></a><a id="idm46420845295376" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="not-working"></a>It isn't working</h2></div></div></div><p>If Guacamole isn't working, chances are something isn't configured
+            properly, or something is wrong with the network. Thankfully,
+            Guacamole and all its components log errors thoroughly, so the
+            problem can usually be traced down fairly easily if you know where
+            to look. Troubleshooting Guacamole usually boils down to checking
+            either syslog or your servlet container's logs (likely
+            Tomcat).</p><p>Failing all that, you can always post a question in the forums, or
+            if you truly feel you've discovered a bug, you can create a new
+            ticket in Trac. Beware that if something isn't working, and there
+            are errors in the logs describing the problem, it is usually not a
+            bug, and the best place to handle such things is through consulting
+            this guide or the forums.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845291632"></a>No graphics appear</h3></div></div></div><a id="idm46420845290896" class="indexterm"></a><a id="idm46420845290032" class="indexterm"></a><p>If you <span class="emphasis"><em>never</em></span> see any graphics appear, or you see "Connecting,
+                waiting for first update..." for a while and then are disconnected, the most likely
+                cause is a proxy.</p><p>Guacamole relies on streaming data to you over a persistent connection. If
+                software between Guacamole and your browser is buffering all incoming data, such as
+                a proxy, this data never makes it to your browser, and you will just see it wait
+                indefinitely. Eventually, thinking the client has disconnected, Guacamole closes the
+                connection, at which point the proxy finally flushes its buffer and you see
+                graphics! ... just in time to see it disconnect.</p><p>The solution here is to either modify your proxy settings to flush packets
+                immediately as they are received, or to use HTTPS. Proxies are required to pass
+                HTTPS through untouched, and this usually solves the problem.</p><p>Even if you aren't aware of any proxy, there may be one in place. Corporate
+                firewalls very often incorporate proxies. Antivirus software may buffer incoming
+                data until the connection is closed and the data is scanned for viruses.
+                Virtualization software may detect HTTP data and buffer the connection just like a
+                proxy. If all else fails, try HTTPS - it's the only secure way to do this
+                anyway.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420845285632"></a>Connections involving Unicode don't work</h3></div></div></div><a id="idm46420845284864" class="indexterm"></a><a id="idm46420845283968" class="indexterm"></a><a id="idm46420845283072" class="indexterm"></a><p>If you are using Tomcat, beware that you <span class="emphasis"><em>must</em></span> set the
+                    <code class="code">URIEncoding="UTF-8"</code> attribute on all connectors in your
+                    <code class="filename">server.xml</code>. If you are using a different servlet container,
+                you need to find out whether it requires special options to support UTF-8 in URIs,
+                and change the required settings to enable such support.</p><p>Without UTF-8 support enabled for URIs, Unicode characters in connection names
+                will not be received properly when connecting, and Guacamole will thing the
+                connection you requested does not exist. Similarly, if you are using the built-in
+                administration interface, parameters involving Unicode characters will not save
+                properly without these options enabled.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="syslog"></a>syslog</h2></div></div></div><a id="idm46420845338224" class="indexterm"></a><p>guacd and libguac-based programs (such as all client plugins) log
+            informational messages and errors to syslog. Specifically, guacd
+            uses syslog, and it exposes this logging facility to everything it
+            loads (client plugins), thus if the VNC or RDP support plugins
+            encounter errors, they log those errors over the logging facilities
+            exposed by guacd, in this case syslog.</p><p>Once you guacd is started, you'll see entries like the following
+            in syslog:</p><div class="informalexample"><pre class="screen">guacd[19663]: Guacamole proxy daemon (guacd) version 0.7.0
+guacd[19663]: Unable to bind socket to host ::1, port 4823: Address family
+              not supported by protocol
+guacd[19663]: Successfully bound socket to host 127.0.0.1, port 4823
+guacd[19663]: Exiting and passing control to PID 19665
+guacd[19665]: Exiting and passing control to PID 19666
+guacd[19666]: Listening on host 127.0.0.1, port 4823</pre></div><p>Each entry relevant to Guacamole has the prefix "guacd", denoting
+            the program that produced the entry, followed by the process ID,
+            followed by the message. The entries above show guacamole starting
+            successfully and listening on a non-default port 4823.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacd-errors"></a>guacd errors</h3></div></div></div><a id="idm46420845333392" class="indexterm"></a><a id="idm46420845332048" class="indexterm"></a><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845330704"></a>Unable to bind socket to any addresses.</h4></div></div></div><p>This means that guacd failed to start up at all because
+                    the port it wants to listen on is already taken at all
+                    addresses attempted. The details of what guacd tried will be
+                    listed in the log entries above this. To solve the problem,
+                    find what port guacd was trying to listen on (the default is
+                    4822) and check if any other service is listening on that
+                    port.</p><p>If another service is listening on the default port, you
+                    can always specify a non-standard port for guacd by using
+                    the <code class="option">-l<em class="replaceable"><code> PORT</code></em></code>
+                    option (that's a lowercase "L", not a number "1"), where
+                        <em class="replaceable"><code>PORT</code></em> is the number of the
+                    port to listen on. Beware that you will likely have to
+                    modify <code class="filename">guacamole.properties</code> so that
+                    Guacamole knows how to connect to guacd.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845326640"></a>Unable to start <em class="replaceable"><code>input</code></em>
+                    thread</h4></div></div></div><p>guacd creates two threads for each connection: one that
+                    receives input from the connected client, and the other that
+                    produces output for the client. If either of these fails to
+                    start, the above error will be logged along with the
+                    cause.</p><p>If it is the output thread that fails to start, the
+                    message will instead read: "Unable to start output
+                    thread".</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845323952"></a>Client finished abnormally</h4></div></div></div><p>If the client plugin ever returns an error code, this will
+                    cause the connection to immediately terminate, with the
+                    cause of the error specific to the plugin in use. The cause
+                    should be detailed in the log messages above the error. If
+                    those log messages don't make sense, you may have found a
+                    bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845322208"></a>Could not fork()
+                    <em class="replaceable"><code>parent</code></em></h4></div></div></div><p>When guacd starts up, it immediately attempts to "fork"
+                    into the background (unless instructed otherwise). The word
+                    "fork()" above is a reference to the C function call that
+                    does this. There are several calls to this function, each of
+                    which might fail if system resources are lacking or
+                    something went wrong at a low level. If you see this
+                    message, it is probably not a bug in Guacamole, but rather a
+                    problem with the load level of your system.</p><p>This message may also appear as "Could not fork() group
+                    leader".</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845319568"></a>Unable to change working directory to /</h4></div></div></div><p>One of the duties of guacd as it starts up is to change
+                    its working directory to the root directory. This is to
+                    prevent locking the current directory in case it needs to be
+                    unmounted, etc. If guacd cannot do this, this error will be
+                    logged, along with the cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845317888"></a>Unable to redirect standard file descriptors to
+                    /dev/null</h4></div></div></div><p>As guacd starts, it also has to redirect STDOUT, STDERR,
+                    and STDIN to <code class="filename">/dev/null</code> such that
+                    attempts to use these output mechanisms do not pollute the
+                    active console. Though guacd and client plugins will use the
+                    exposed logging facilities (and thus syslog) rather than
+                    STDOUT or STDERR, libraries used by client plugins are often
+                    written only from the mindset of a typical client, and use
+                    standard output mechanisms for debug logging. Not
+                    redirecting these would result in undesired output to the
+                    console.</p><p>If guacd cannot redirect these file descriptors for any
+                    reason, this error will be logged, along with the
+                    cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845314880"></a>Error parsing given address or port:
+                        <em class="replaceable"><code>HOSTNAME</code></em></h4></div></div></div><p>If you specified a host or port to listen on via
+                    commandline options, and that host or port is actually
+                    invalid, you will see this error. Fix the corresponding
+                    option and try again.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845313056"></a>Error opening socket</h4></div></div></div><p>When guacd starts up, it needs to open a socket and then
+                    listen on that socket. If it can't even open the socket,
+                    this error will be logged, and guacd will exit. The cause is
+                    most likely related to permissions, and is logged along with
+                    the error.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845311408"></a>Unable to resolve host</h4></div></div></div><p>If the hostname you specified on the commandline cannot be
+                    found, you will see this error. Note that this error is from
+                    guacd, and does not relate to whatever remote desktop
+                    servers you may be trying to use; it relates only to the
+                    host guacd is trying to listen on. Check the hostname or IP
+                    address specified on the commandline. If that checks out,
+                    there may be a problem with your DNS or your network.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845262736"></a>Could not become a daemon</h4></div></div></div><p>In order to become a "daemon" (that is, in order to run in
+                    the background as a system process), guacd must create and
+                    exit from several processes, redirect file descriptors, etc.
+                    If any of these steps fails, guacd will not become a daemon,
+                    and it will log this message and exit. The reason guacd
+                    could not become a daemon will be in the previous error
+                    message in the logs.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845260896"></a>Could not write PID file</h4></div></div></div><p>guacd offers a commandline option that lets you specify a
+                    file that it should write its process ID into, which is
+                    useful for init scripts. If you see this error, it likely
+                    means the user guacd is running as does not have permission
+                    to write this file. The true cause of the error will be
+                    logged in the same entry. Check which user guacd is running
+                    as, and then check that it has write permission to the file
+                    in question.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845258992"></a>Could not listen on socket</h4></div></div></div><p>When guacd starts up, it needs to listen on the socket it
+                    just opened in order to accept connections. If it cannot
+                    listen on the socket, clients will be unable to connect. If,
+                    for any reason, guacd is unable to listen on the socket,
+                    guacd will exit and log this message along with the cause,
+                    which is most likely a low-level system resource
+                    problem.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845257184"></a>Could not accept client connection</h4></div></div></div><p>When a client connects to guacd, it must accept the
+                    connection in order for communication to ensue. If it cannot
+                    even accept the connection, no communication between server
+                    and client will happen, and this error will be logged. The
+                    cause of the error will be logged in the same entry.
+                    Possible causes include permissions problems, or lack of
+                    server resources.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845255360"></a>Error forking child process</h4></div></div></div><p>When a client connects to guacd, it must create a new
+                    process to handle the connection while the old guacd process
+                    continues to listen for new connections. If, for any reason,
+                    guacd cannot create this process, the connection from that
+                    client will be denied, and the cause of the error will be
+                    logged. Possible causes include permissions problems, or
+                    lack of server resources.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845253520"></a>Error closing daemon reference to child
+                    descriptor</h4></div></div></div><p>When guacd receives a connection, and it creates a new
+                    process to handle that connection, it gains a copy of the
+                    file descriptor that the client will use for communication.
+                    As this connection can never be closed unless all references
+                    to the descriptor are closed, the server must close its copy
+                    such that the client is the only remaining holder of the
+                    file descriptor. If the server cannot close the descriptor,
+                    it will log this error message along with the cause.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845251536"></a>Error sending "sync" instruction</h4></div></div></div><p>During the course of a Guacamole session, guacd must
+                    occasionally "ping" the client to make sure it is still
+                    alive. This ping takes the form of a "sync" instruction,
+                    which the client is obligated to respond to as soon as it is
+                    received. If guacd cannot send this instruction, this error
+                    will be logged, along with the cause. Chances are the
+                    connection has simply been closed, and this error can be
+                    ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845249648"></a>Error flushing output</h4></div></div></div><p>After the client plugin is finished (for the time being)
+                    with handling server messages, the socket is automatically
+                    flushed. If the server cannot flush this socket for some
+                    reason, such as the connection already being closed, you
+                    will see this error. Normally, this error does not indicate
+                    a problem, but rather that the client has simply closed the
+                    connection.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845247840"></a>Error handling server messages</h4></div></div></div><p>While the client plugin is running, guacd will
+                    occasionally ask the plugin to check and handle any messages
+                    that it may have received from the server it connected to.
+                    If the client plugin fails for some reason while doing this,
+                    this error will be logged, and the cause of the error will
+                    likely be logged in previous log entries by the client
+                    plugin.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845246032"></a>Error reading instruction</h4></div></div></div><p>During the course of a Guacamole session, instructions are
+                    sent from client to server which are to be handled by the
+                    client plugin. If an instruction cannot be read, this error
+                    will be logged. Usually this means simply that the
+                    connection was closed, but it could also indicate that the
+                    version of the client in use is so old that it doesn't
+                    support the current Guacamole protocol at all. If the cause
+                    looks like the connection was closed (end of stream reached,
+                    etc.), this log entry can be ignored. Otherwise, if the
+                    first two numbers of the version numbers of all Guacamole
+                    components match, you have probably found a bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845244704"></a>Client instruction handler error</h4></div></div></div><p>This error indicates that a client plugin failed inside
+                    the handler for a specific instruction. When the server
+                    receives instructions from the client, it then invokes
+                    specific instruction handles within the client plugin. In
+                    general, this error is not useful to a user or system
+                    administrator. If the cause looks benign, such as reaching
+                    the end of a stream (the connection closed), it can be
+                    ignored as normal. Otherwise, this error can indicate a bug
+                    either in the client plugin or in a library used by the
+                    client plugin.</p><p>It can also indicate a problem in the remote desktop
+                    server which is causing the client plugin to fail while
+                    communicating with it.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845242768"></a>Error reading "<em class="replaceable"><code>OPCODE</code></em>"</h4></div></div></div><p>During the handshake of the Guacamole protocol, the server
+                    expects a very specific sequence of instructions to be
+                    received. If the wrong instructions are received, or the
+                    connection is abruptly closed during the handshake, the
+                    above error will occur.</p><p>In the case that the cause is the connection closing, this
+                    is normal, and probably just means that the client
+                    disconnected before the initial handshake completed.</p><p>If the connection was not closed abruptly, but instead the
+                    wrong instruction was received, this could mean either that
+                    the connecting client is from an incompatible version of
+                    Guacamole (and thus does not know the proper handshake
+                    procedure) or you have found a bug. Check whether all
+                    installed components came from the same upstream release
+                    bundle.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845239120"></a>Error sending "args"</h4></div></div></div><p>During the handshake of the Guacamole protocol, the server
+                    must expose all parameters used by the client plugin via the
+                    args instruction. If this cannot be sent, you will see this
+                    error in the logs. The cause will be included in the error
+                    message, and usually just indicates that the connection was
+                    closed during the handshake, and thus the handshake cannot
+                    continue.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845237312"></a>Error loading client plugin</h4></div></div></div><p>When the client connects, it sends an instruction to guacd
+                    informing it what protocol it wishes to use. If the
+                    corresponding client plugin cannot be found or used for any
+                    reason, this message will appear in the logs. Normally this
+                    indicates that the corresponding client plugin is not
+                    actually installed. The cause listed after the error message
+                    will indicate whether this is the case.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845235984"></a>Error instantiating client</h4></div></div></div><p>After the client plugin is loaded, an initialization
+                    function provided by the client plugin is invoked. If this
+                    function fails, then the client itself cannot be created,
+                    and this error will be logged. Usually this indicates that
+                    one or more of the parameters given to the client plugin are
+                    incorrect or malformed. Check the configuration of the
+                    connection in use at the time.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-client-vnc-errors"></a>libguac-client-vnc errors</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845232768"></a>Error waiting for VNC message</h4></div></div></div><p>The VNC client plugin must wait for messages sent by the
+                    VNC server, and handle them when they arrive. If there was
+                    an error while waiting for a message from the VNC server,
+                    this error message will be displayed. Usually this means
+                    that the VNC server closed the connection, or there is a
+                    problem with the VNC server itself, but the true cause of
+                    the error will be logged.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845230928"></a>Error handling VNC server message</h4></div></div></div><p>When messages are received from the VNC server,
+                    libvncclient must handle them and then invoke the functions
+                    of libguac-client-vnc as necessary. If libvncclient fails
+                    during the handling of a received message, this error will
+                    be logged, along with (hopefully) the cause. This may
+                    indicate a problem with the VNC server, or a lack of support
+                    within libvncclient.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845229104"></a>Wrong argument count received</h4></div></div></div><p>The connecting client is required to send exactly the same
+                    number of arguments as requested by the client plugin. If
+                    you see this message, it means there is a bug in the client
+                    connecting to guacd, most likely the web application.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="libguac-client-rdp-errors"></a>libguac-client-rdp errors</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845226096"></a>Invalid <em class="replaceable"><code>parameter</code></em></h4></div></div></div><p>If one of the parameters given, such as "width", "height",
+                    or "color-depth", is invalid (not an integer, for example),
+                    you will receive this error. Check the parameters of the
+                    connection in use and try again.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845224208"></a>Support for the CLIPRDR channel (clipboard redirection) could not be
+                    loaded</h4></div></div></div><p>FreeRDP provides a plugin which provides clipboard support for RDP. This
+                    plugin is typically built into FreeRDP, but some distributions may bundle this
+                    separately. libguac-client-rdp loads this plugin in order to support clipboard,
+                    as well. If this plugin could not be loaded, then clipboard support will not be
+                    available, and the reason will be logged.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845222816"></a>Cannot create static channel "<em class="replaceable"><code>name</code></em>": failed to
+                    load "guac-common-svc" plugin for FreeRDP</h4></div></div></div><p>RDP provides support for much of its feature set through static virtual
+                    channels. Sound support, for example is provided through the "RDPSND" channel.
+                    Device redirection for printers and drives is provided through "RDPDR". To
+                    support these and other static virtual channels, libguac-client-rdp builds a
+                    plugin for FreeRDP called "guac-common-svc" which allows Guacamole to hook into
+                    the parts of FreeRDP that support virtual channels.</p><p>If libguac-client-rdp cannot load this plugin, support for any features which
+                    leverage static virtual channels will not work, and the reason will be logged. A
+                    likely explanation is that libguac-client-rdp was built from source, and the
+                    directory specified for FreeRDP's installation location was incorrect. For
+                    FreeRDP to be able to find plugins, those plugins must be placed in the
+                        <code class="filename">freerdp2/</code> subdirectory of whichever directory contains
+                    the <code class="filename">libfreerdp2.so</code> library.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845218672"></a>Server requested unsupported clipboard data type</h4></div></div></div><p>When clipboard support is loaded, libguac-client-rdp
+                    informs the RDP server of all supported clipboard data
+                    types. The RDP server is required to send only those types
+                    supported by the client. If the server decides to send an
+                    unsupported type anyway, libguac-client-rdp ignores the data
+                    sent, and logs this message.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845216896"></a>Clipboard data missing null terminator</h4></div></div></div><p>When text is sent via a clipboard message, it is required
+                    to have a terminating null byte. If this is not the case,
+                    the clipboard data is invalid, and libguac-client-rdp
+                    ignores it, logging this error message.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="servlet-container-logs"></a>Servlet container logs</h2></div></div></div><p>Your servlet container will have logs which the web application
+            side of Guacamole will log errors to. In the case of Tomcat, this is
+            usually <code class="filename">catalina.out</code> or
+                    <code class="filename"><em class="replaceable"><code>HOSTNAME</code></em>.log</code>
+            (for example, <code class="filename">localhost.log</code>).</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-mapping-xml-errors"></a><code class="filename">user-mapping.xml</code> errors</h3></div></div></div><p>Errors in the relating to the
+                    <code class="filename">user-mapping.xml</code> file usually indicate
+                that either the XML is malformed, or the file itself cannot be
+                found.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845209248"></a>Attribute "name" required for connection tag</h4></div></div></div><p>If you specify a connection with a
+                        <code class="code">&lt;connection&gt;</code> tag, it must have a
+                    corresponding name set via the <code class="code">name</code> attribute.
+                    If it does not, then the XML is malformed, and this error
+                    will be logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845206816"></a>Attribute "name" required for param tag</h4></div></div></div><p>Each parameter specified with a <code class="code">&lt;param&gt;</code>
+                    tag must have a corresponding name set via the
+                        <code class="code">name</code> attribute. If it does not, then the
+                    XML is malformed, and this error will be logged. No users
+                    will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845204320"></a>Unexpected character data</h4></div></div></div><p>Character data (text not within angle brackets) can only
+                    exist within the <code class="code">&lt;param&gt;</code> tag. If it exists
+                    elsewhere, then the XML is malformed, and this error will be
+                    logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845202288"></a>Invalid encoding type</h4></div></div></div><p>There are only two legal values for the
+                        <code class="code">encoding</code> attribute of the
+                        <code class="code">&lt;authorize&gt;</code> tag: <code class="code">plain</code>
+                    (indicating plain text) and <code class="code">md5</code> (indicating a
+                    value hashed with the MD5 digest). If any other value is
+                    used, then the XML is malformed, and this error will be
+                    logged. No users will be able to login.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845198832"></a>User mapping could not be read</h4></div></div></div><p>If for any reason the user mapping file cannot be read
+                    (the servlet container lacks read permission for the file,
+                    the file does not exist, etc.), this error will be logged.
+                    Check <code class="filename">guacamole.properties</code> to see where
+                    the user mapping file is specified to exist, and then check
+                    that is both exists and is readable by your servlet
+                    container.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-properties-errors"></a><code class="filename">guacamole.properties</code> errors</h3></div></div></div><p>If a property is malformed or a required property is missing,
+                an error describing the problem will be logged.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845194576"></a>Property <em class="replaceable"><code>PROPERTY</code></em> is
+                    required</h4></div></div></div><p>If Guacamole or an extension of Guacamole requires a
+                    specific property in
+                        <code class="filename">guacamole.properties</code>, but this
+                    property is not defined, this error will be logged. Check
+                    which properties are required by the authentication provider
+                    (or other extensions) in use, and then compare that against
+                    the properties within
+                        <code class="filename">guacamole.properties</code>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845191520"></a>Specified authentication provider class is not a
+                    AuthenticationProvider</h4></div></div></div><p>The <code class="code">auth-provider</code> property allows you to
+                    specify a custom authentication provider class which will
+                    handle all authentication, but these classes must implement
+                    the <code class="classname">AuthenticationProvider</code> interface.
+                    If the class specified does not, this error will be logged.
+                    Check that your authentication provider class implements
+                        <code class="classname">AuthenticationProvider</code> (if you
+                    implemented it yourself), and verify that you are specifying
+                    the correct class.</p><p>If you are certain that the class specified is correct,
+                    you may have placed the .jar file for your authentication
+                    provider in the wrong directory. Make sure the .jar file is
+                    in the directory specified by the <code class="code">lib-directory</code>
+                    parameter in guacamole.properties.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845187088"></a>Resource /guacamole.properties not found</h4></div></div></div><p>Guacamole requires that the
+                        <code class="filename">guacamole.properties</code> file is in the
+                    classpath of your servlet container. If it is not, this
+                    error will be logged. Check that
+                        <code class="filename">guacamole.properties</code> is in the
+                    proper location, and then restart your servlet
+                    container.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845184528"></a>Missing "basic-user-mapping" parameter required for basic
+                    login</h4></div></div></div><p>If you are using the authentication provider included with
+                    Guacamole, it requires the <code class="code">basic-user-mapping</code>
+                    property to be set. If this property is missing, you will
+                    see this error. Add the missing property to
+                        <code class="filename">guacamole.properties</code>, restart your
+                    servlet container, and try again.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-auth-errors"></a>Authentication errors</h3></div></div></div><p>If someone attempts to login with invalid credentials, or
+                someone attempts to access a resource or connection that does
+                not exist or they do not have access to, errors regarding the
+                invalid attempt will be logged.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845179984"></a>Cannot connect - user not logged in</h4></div></div></div><p>A user attempted to connect using the HTTP tunnel, and
+                    while the tunnel does exist and is attached to their
+                    session, they are not actually logged in. Normally, this
+                    isn't strictly possible, as a user has to have logged in for
+                    a tunnel to be attached to their session, but as it isn't an
+                    impossibility, this error does exist. If you see this error,
+                    it could mean that the user logged out at the same time that
+                    they made a connection attempt.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845178064"></a>Requested configuration is not authorized</h4></div></div></div><p>A user attempted to connect to a configuration with a
+                    given ID, and while that configuration does exist, they are
+                    not authorized to use it. This could mean that the user is
+                    trying to access things they have no privileges for, or that
+                    they are trying to access configurations they legitimately
+                    should, but are actually logged out.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845176272"></a>User has no session</h4></div></div></div><p>A user attempted to access a page that needs data from
+                    their session, but their session does not actually exist.
+                    This usually means the user has not logged in, as sessions
+                    are created through the login process.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-tunnel-errors"></a>Tunnel errors</h3></div></div></div><p>The tunnel frequently returns errors if guacd is killed, the
+                connection is closed, or the client abruptly closes the
+                connection.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845172816"></a>No such tunnel</h4></div></div></div><p>An attempt was made to use a tunnel which does not
+                    actually exist. This is usually just the JavaScript client
+                    sending a leftover message or two while it hasn't realized
+                    that the server has disconnected. If this error happens
+                    consistently and is associated with Guacamole generally not
+                    working, it could be a bug.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845171072"></a>No tunnel created</h4></div></div></div><p>A connection attempt for a specific configuration was
+                    made, but the connection failed, and no tunnel was created.
+                    This is usually because the user was not authorized to use
+                    that connection, and thus no tunnel was created for access
+                    to that connection.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845169408"></a>No query string provided</h4></div></div></div><p>When the JavaScript client is communicating with the HTTP
+                    tunnel, it <span class="emphasis"><em>must</em></span> provide data in the
+                    query string describing whether it wants to connect, read,
+                    or write. If this data is missing as the error indicates,
+                    there is a bug in the HTTP tunnel.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845167296"></a>Tunnel reached end of stream</h4></div></div></div><p>An attempt to read from the tunnel was made, but the
+                    tunnel in question has already reached the end of stream
+                    (the connection is closed). This is mostly an informative
+                    error, and can be ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845165696"></a>Tunnel is closed</h4></div></div></div><p>An attempt to read from the tunnel was made, but the
+                    tunnel in question is already closed. This can happen if the
+                    client or guacd have closed the connection, but the client
+                    has not yet settled down and is still making read attempts.
+                    As there can be lags between when connections close and when
+                    the client realizes it, this can be safely ignored.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845164384"></a>End of stream during initial handshake</h4></div></div></div><p>If guacd closes the connection suddenly without allowing
+                    the client to complete the initial handshake required by the
+                    Guacamole protocol, this error will appear in the logs. If
+                    you see this error, you should check syslog for any errors
+                    logged by guacd to determine why it closed the connection so
+                    early.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845162640"></a>Element terminator of instruction was not ';' nor
+                    ','</h4></div></div></div><p>The Guacamole protocol imposes a strict format which
+                    requires individual parts of instructions (called
+                    "elements") to end with either a ";" or "," character. If
+                    they do not, then something has gone wrong during
+                    transmission. This usually indicates a bug in the client
+                    plugin in use, guacd, or libguac.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="idm46420845160848"></a>Non-numeric character in element length</h4></div></div></div><p>The Guacamole protocol imposes a strict format which
+                    requires each element of an instruction to have a length
+                    prefix, which must be composed entirely of numeric
+                    characters (digits 0 through 9). If a non-numeric character
+                    is read, then something has gone wrong during transmission.
+                    This usually indicates a bug in the client plugin in use,
+                    guacd, or libguac.</p></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="administration.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="developers-guide.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 16. Administration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part II. Developer's Guide</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/users-guide.html b/doc/1.1.0/gug/users-guide.html
new file mode 100644
index 0000000..8d64619
--- /dev/null
+++ b/doc/1.1.0/gug/users-guide.html
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Part I. User's Guide</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="index.html" title="Guacamole Manual" /><link rel="prev" href="preface.html" title="Introduction" /><link rel="next" href="guacamole-architecture.html" title="Chapter 1. Implementation and architecture" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Part I. User's Guide</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="preface.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="guacamole-architecture.html">Next</a></td></tr></table><hr /></div><div class="part"><div class="titlepage"><div><div><h1 class="title"><a id="users-guide"></a>Part I. User's Guide</h1></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="chapter"><a href="guacamole-architecture.html">1. Implementation and architecture</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-architecture.html#guacamole-protocol-architecture">The Guacamole protocol </a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#guacd">guacd</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#web-application">The web application</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#realmint">RealMint</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#vnc-client">VNC Client</a></span></dt><dt><span class="section"><a href="guacamole-architecture.html#gateway">Remote Desktop Gateway</a></span></dt></dl></dd><dt><span class="chapter"><a href="installing-guacamole.html">2. Installing Guacamole natively</a></span></dt><dd><dl><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-server">Building <span class="package">guacamole-server</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#building-guacamole-client"><span class="package">guacamole-client</span></a></span></dt><dt><span class="section"><a href="installing-guacamole.html#deploying-guacamole">Deploying Guacamole</a></span></dt></dl></dd><dt><span class="chapter"><a href="guacamole-docker.html">3. Installing Guacamole with Docker</a></span></dt><dd><dl><dt><span class="section"><a href="guacamole-docker.html#guacd-docker-image">Running the <span class="package">guacd</span> Docker image</a></span></dt><dt><span class="section"><a href="guacamole-docker.html#guacamole-docker-image">The Guacamole Docker image</a></span></dt></dl></dd><dt><span class="chapter"><a href="proxying-guacamole.html">4. Proxying Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="proxying-guacamole.html#preparing-servlet-container">Preparing your servlet container</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#nginx">Nginx</a></span></dt><dt><span class="section"><a href="proxying-guacamole.html#apache">Apache and <span class="package">mod_proxy</span></a></span></dt></dl></dd><dt><span class="chapter"><a href="configuring-guacamole.html">5. Configuring Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="configuring-guacamole.html#guacamole-home"><code class="varname">GUACAMOLE_HOME</code> (<code class="filename">/etc/guacamole</code>)</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#initial-setup"><code class="filename">guacamole.properties</code></a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#webapp-logging">Logging within the web application</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#basic-auth">Using the default authentication</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#connection-configuration">Configuring connections</a></span></dt><dt><span class="section"><a href="configuring-guacamole.html#guacd.conf">Configuring guacd</a></span></dt></dl></dd><dt><span class="chapter"><a href="jdbc-auth.html">6. Database authentication</a></span></dt><dd><dl><dt><span class="section"><a href="jdbc-auth.html#idm46420848531088">Downloading the database authentication extension</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-database-creation">Creating the Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420849413472">Upgrading an existing Guacamole database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#idm46420847663760">Granting Guacamole access to the database</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-installation">Installing database authentication</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-default-user">Logging in</a></span></dt><dt><span class="section"><a href="jdbc-auth.html#jdbc-auth-schema">Modifying data manually</a></span></dt></dl></dd><dt><span class="chapter"><a href="ldap-auth.html">7. LDAP authentication</a></span></dt><dd><dl><dt><span class="section"><a href="ldap-auth.html#ldap-architecture">How Guacamole uses LDAP</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-downloading">Downloading the LDAP extension</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-schema-changes">Preparing your LDAP directory (optional)</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-and-database">Associating LDAP with a database</a></span></dt><dt><span class="section"><a href="ldap-auth.html#installing-ldap-auth">Installing LDAP authentication</a></span></dt><dt><span class="section"><a href="ldap-auth.html#ldap-auth-schema">The LDAP schema</a></span></dt></dl></dd><dt><span class="chapter"><a href="duo-auth.html">8. Duo two-factor authentication</a></span></dt><dd><dl><dt><span class="section"><a href="duo-auth.html#duo-architecture">How Duo works with Guacamole</a></span></dt><dt><span class="section"><a href="duo-auth.html#duo-downloading">Downloading the Duo extension</a></span></dt><dt><span class="section"><a href="duo-auth.html#installing-duo-auth">Installing Duo authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="totp-auth.html">9. TOTP two-factor authentication</a></span></dt><dd><dl><dt><span class="section"><a href="totp-auth.html#totp-prerequisites">Prerequisites</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-architecture">How TOTP works with Guacamole</a></span></dt><dt><span class="section"><a href="totp-auth.html#totp-downloading">Downloading the TOTP extension</a></span></dt><dt><span class="section"><a href="totp-auth.html#installing-totp-auth">Installing TOTP authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="header-auth.html">10. HTTP header authentication</a></span></dt><dd><dl><dt><span class="section"><a href="header-auth.html#header-downloading">Downloading the HTTP header authentication extension</a></span></dt><dt><span class="section"><a href="header-auth.html#installing-header-auth">Installing HTTP header authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="cas-auth.html">11. CAS Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="cas-auth.html#cas-downloading">Downloading the CAS authentication extension</a></span></dt><dt><span class="section"><a href="cas-auth.html#installing-cas-auth">Installing CAS authentication</a></span></dt></dl></dd><dt><span class="chapter"><a href="openid-auth.html">12. OpenID Connect Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="openid-auth.html#openid-downloading">Downloading the OpenID Connect authentication extension</a></span></dt><dt><span class="section"><a href="openid-auth.html#installing-openid-auth">Installing support for OpenID Connect</a></span></dt></dl></dd><dt><span class="chapter"><a href="radius-auth.html">13. RADIUS Authentication</a></span></dt><dd><dl><dt><span class="section"><a href="radius-auth.html#radius-downloading">Downloading the RADIUS authentication extension</a></span></dt><dt><span class="section"><a href="radius-auth.html#installing-radius-auth">Installing RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#guac-radius-config">Configuring Guacamole for RADIUS authentication</a></span></dt><dt><span class="section"><a href="radius-auth.html#completing-radius-install">Completing the installation</a></span></dt></dl></dd><dt><span class="chapter"><a href="adhoc-connections.html">14. Ad-hoc Connections</a></span></dt><dd><dl><dt><span class="section"><a href="adhoc-connections.html#quickconnect-downloading">Downloading the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#installing-quickconnect">Installing the quickconnect extension</a></span></dt><dt><span class="section"><a href="adhoc-connections.html#using-quickconnect">Using the quickconnect extension</a></span></dt></dl></dd><dt><span class="chapter"><a href="using-guacamole.html">15. Using Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#home-screen">Home screen</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-screen">Client screen</a></span></dt><dt><span class="section"><a href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-user-menu">Disconnecting and navigation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-share-menu">Sharing the connection</a></span></dt><dt><span class="section"><a href="using-guacamole.html#file-transfer">Transferring files</a></span></dt><dt><span class="section"><a href="using-guacamole.html#using-the-osk">On-screen keyboard</a></span></dt><dt><span class="section"><a href="using-guacamole.html#scaling-display">Scaling the display</a></span></dt><dt><span class="section"><a href="using-guacamole.html#touch-devices">Mobile or touch devices</a></span></dt><dt><span class="section"><a href="using-guacamole.html#preferences">Changing preferences</a></span></dt></dl></dd><dt><span class="chapter"><a href="administration.html">16. Administration</a></span></dt><dd><dl><dt><span class="section"><a href="administration.html#session-management">Managing sessions</a></span></dt><dt><span class="section"><a href="administration.html#connection-history">Connection history</a></span></dt><dt><span class="section"><a href="administration.html#user-management">User management</a></span></dt><dt><span class="section"><a href="administration.html#user-group-management">User group management</a></span></dt><dt><span class="section"><a href="administration.html#connection-management">Connections and connection groups</a></span></dt></dl></dd><dt><span class="chapter"><a href="troubleshooting.html">17. Troubleshooting</a></span></dt><dd><dl><dt><span class="section"><a href="troubleshooting.html#not-working">It isn't working</a></span></dt><dt><span class="section"><a href="troubleshooting.html#syslog">syslog</a></span></dt><dt><span class="section"><a href="troubleshooting.html#servlet-container-logs">Servlet container logs</a></span></dt></dl></dd></dl></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="preface.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="guacamole-architecture.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Introduction </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 1. Implementation and architecture</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/using-guacamole.html b/doc/1.1.0/gug/using-guacamole.html
new file mode 100644
index 0000000..44f2b76
--- /dev/null
+++ b/doc/1.1.0/gug/using-guacamole.html
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 15. Using Guacamole</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="users-guide.html" title="Part I. User's Guide" /><link rel="prev" href="adhoc-connections.html" title="Chapter 14. Ad-hoc Connections" /><link rel="next" href="administration.html" title="Chapter 16. Administration" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 15. Using Guacamole</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="adhoc-connections.html">Prev</a> </td><th width="60%" align="center">Part I. User's Guide</th><td width="20%" align="right"> <a accesskey="n" href="administration.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="using-guacamole"></a>Chapter 15. Using Guacamole</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="using-guacamole.html#home-screen">Home screen</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#user-menu">User menu</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#client-screen">Client screen</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#guacamole-menu">The Guacamole menu</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#using-the-clipboard">Copying/pasting text</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-user-menu">Disconnecting and navigation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#client-share-menu">Sharing the connection</a></span></dt><dt><span class="section"><a href="using-guacamole.html#file-transfer">Transferring files</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#file-browser">Using the file browser</a></span></dt><dt><span class="section"><a href="using-guacamole.html#rdp-virtual-drive">The RDP virtual drive</a></span></dt><dt><span class="section"><a href="using-guacamole.html#guacctl"><span class="command"><strong>guacctl</strong></span> / <span class="command"><strong>guacget</strong></span></a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#using-the-osk">On-screen keyboard</a></span></dt><dt><span class="section"><a href="using-guacamole.html#scaling-display">Scaling the display</a></span></dt><dt><span class="section"><a href="using-guacamole.html#touch-devices">Mobile or touch devices</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#touch-mouse">Mouse emulation</a></span></dt><dt><span class="section"><a href="using-guacamole.html#text-input">Typing without a physical keyboard</a></span></dt></dl></dd><dt><span class="section"><a href="using-guacamole.html#preferences">Changing preferences</a></span></dt><dd><dl><dt><span class="section"><a href="using-guacamole.html#display-language">Display language</a></span></dt><dt><span class="section"><a href="using-guacamole.html#changing-password">Changing your password</a></span></dt><dt><span class="section"><a href="using-guacamole.html#default-input-settings">Default input settings</a></span></dt></dl></dd></dl></div><p><a id="idm46420847819824" class="indexterm"></a>Guacamole provides access to much of the functionality of a desktop from within
+        your web browser. Although most people use remote desktop tools only when absolutely
+        necessary, we believe that Guacamole must be aimed at becoming a primary means of accessing
+        desktops, and the interface is thus intended to be as seamless and unobtrusive as
+        possible.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="home-screen"></a>Home screen</h2></div></div></div><p>Once you have successfully logged in, you will be taken to either the Guacamole home
+            screen, where all available connections are listed, or directly to a connection, if you
+            only have access to one connection.</p><p>The home screen will contain a list of all connections to which you have access, along
+            with thumbnails of any recently used or active connections. If you have access to a
+            large number of connections and wish to quickly locate a specific connection, you can
+            also enter search terms within the "Filter" field to filter the list of connections by
+            name.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-home-screen.png" width="450" /><div class="caption"><p>The Guacamole home screen. The user menu and several recently-used
+                            connections are visible, along with one active connection.</p></div></div></div></div><p>Clicking on any connection will open that connection within the current window or tab,
+            but multiple connections can be used simultaneously. You can easily navigate back to the
+            home screen without disconnecting by using your browsers back button or the "Home"
+            button in the Guacamole menu. Each connection you use will remain active until
+            explicitly disconnected, or until you navigate away from Guacamole entirely. Active
+            connections can be seen as thumbnails updating in real-time on the home screen.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="user-menu"></a>User menu</h3></div></div></div><p>With the exception of the client screen discussed below, all Guacamole screens
+                contain a menu in the upper-right corner called the "user menu". This menu displays
+                your username and contains several options which depend on your user's level of
+                access:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term">Home</span></dt><dd><p>Navigates back to the home screen, if you are not already there. If
+                            you only have access to one connection, this will be replaced with a
+                            link to that connection.</p></dd><dt><span class="term">Settings</span></dt><dd><p>Navigates to the settings interface, which provides access to user
+                            preferences such as display language. If you have access to
+                            administrative functions, those are found within the settings interface,
+                            as well, and are discussed in more detail in <a class="xref" href="administration.html" title="Chapter 16. Administration">Chapter 16, <em>Administration</em></a>.</p></dd><dt><span class="term">Logout</span></dt><dd><p>Logs out of Guacamole completely, closing all current connections and
+                            ending the Guacamole session.</p></dd></dl></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-screen"></a>Client screen</h2></div></div></div><p>Once you open a connection, you will see a real-time view of the remote display. You
+            can interact with this display just as you would your normal desktop. Your mouse and
+            keyboard will function as if they were connected directly to the remote machine.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-client-interface.png" width="540" /><div class="caption"><p>Guacamole client interface, with the Guacamole menu open.</p></div></div></div></div><p>The remote display will take up the entire browser window, with no buttons or menus to
+            disturb the view. With the intent of providing a seamless experience, options specific
+            to remote desktop are hidden within the Guacamole menu, which can be opened as
+            needed.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacamole-menu"></a>The Guacamole menu</h3></div></div></div><p>The Guacamole menu is a sidebar which is hidden until explicitly shown. On a
+                desktop or other device which has a hardware keyboard, you can show this menu by
+                pressing <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span>. If you are using a mobile or touchscreen device that lacks a keyboard,
+                you can also show the menu by swiping right from the left edge of the screen. To
+                hide the menu, you press <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Shift</strong></span> again or swipe left across the screen.</p><p>The Guacamole menu provides options for:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Navigating back to the home screen</p></li><li class="listitem"><p>Sharing the current connection</p></li><li class="listitem"><p>Reading from (and writing to) the clipboard of the remote
+                            desktop</p></li><li class="listitem"><p>Uploading and downloading files</p></li><li class="listitem"><p>Selecting alternative methods of typing or controlling the mouse,
+                            particularly for use on mobile or touchscreen devices</p></li><li class="listitem"><p>Zooming in and out of the remote display</p></li><li class="listitem"><p>Disconnecting from the current connection entirely</p></li></ul></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-the-clipboard"></a>Copying/pasting text</h2></div></div></div><p><a id="idm46420847490688" class="indexterm"></a>At the top of the Guacamole menu is a text area labeled "clipboard" along
+            with some basic instructions:</p><div class="blockquote"><blockquote class="blockquote"><p>Text copied/cut within Guacamole will appear here. Changes to the text below will
+                affect the remote clipboard.</p></blockquote></div><p>The text area functions as an interface between the remote clipboard and the local
+            clipboard. Text from the local clipboard can be pasted into the text area, causing that
+            text to be sent to the clipboard of the remote desktop. Similarly, if you copy or cut
+            text within the remote desktop, you will see that text within the text area, and can
+            manually copy it into the local clipboard if desired.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-user-menu"></a>Disconnecting and navigation</h2></div></div></div><p>When you are done using the current connection, or you wish to navigate elsewhere
+            temporarily, options to do so are within the user menu inside the Guacamole menu:</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-disconnect.png" width="540" /><div class="caption"><p>The user menu within the Guacamole menu.</p></div></div><p>The user menu within the Guacamole menu provides an additional "Disconnect" option
+                that allows you to explicitly close the current connection only. Clicking "Logout"
+                will also implicitly disconnect all active connections, including the current
+                connection.</p><p>Navigating back to the home screen or to the settings screen will not disconnect
+                you: your connection will continue running in the background while you change
+                settings or initiate another connection, and you can resume any active connection by
+                clicking on it within the home screen.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="client-share-menu"></a>Sharing the connection</h2></div></div></div><p>If the Guacamole server is configured to allow connection sharing, and you have been
+            granted permission to share the current connection, an additional "Share" menu will
+            appear next to your username in the Guacamole menu. Clicking on this menu opens a list
+            of options for sharing the current connection.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-share.png" width="540" /></div></div><p>Clicking any of the options within the "Share" menu will immediately generate a unique
+            share link which can be distributed to anyone, even to users which do not otherwise have
+            accounts within the same Guacamole system.</p><div class="informalfigure"><div class="mediaobject"><img src="images/guac-menu-share-link.png" width="540" /></div></div><p>When the link is visited, that user will be given temporary access to your connection,
+            restricted according to the sharing option chosen. This access, and the validity of the
+            link overall, lasts only until you disconnect. Once the connection is closed, the link
+            ceases to be valid, and any users sharing the connection with you will be
+            disconnected.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="file-transfer"></a>Transferring files</h2></div></div></div><a id="idm46420847395568" class="indexterm"></a><p>You can transfer files back and forth between your local computer and the remote
+            desktop if it is supported by the underlying protocol and enabled on the connection.
+            Currently, Guacamole supports file transfer for VNC, RDP, and SSH, using either the
+            native file transfer support of the protocol or SFTP.</p><p>Files can be transferred to the remote computer by dragging and dropping the files
+            into your browser window, or through using the file browser located in the Guacamole
+            menu.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="file-browser"></a>Using the file browser</h3></div></div></div><p>If file transfer is enabled on the connection, you will see one or more filesystem
+                devices listed within the Guacamole menu. Clicking on one of the filesystems opens a
+                file browser which lists the files and directories within that filesystem.</p><div class="mediaobject"><img src="images/file-browser.png" width="270" /><div class="caption"><p>The file browser within the Guacamole menu.</p></div></div><p>Double-clicking on any directory will change the current location of the file
+                browser to that directory, updating the list of files shown as well as the
+                "breadcrumbs" at the top of the file browser. Clicking on any of the directory names
+                listed in the breadcrumbs will bring you back to that directory, and clicking on the
+                drive icon on the far left will bring you all the way back to the root level.</p><p>Downloads are initiated by double-clicking on any file shown, while uploads are
+                initiated by clicking the "Upload Files" button. Clicking "Upload Files" will open a
+                file browsing dialog where you can choose one or more files from your local
+                computer, ultimately uploading the selected files to the directory currently
+                displayed within the file browser.</p><p>The state of all file uploads can be observed within the notification dialog that
+                appears once an upload begins, and can be cleared once completed by clicking the
+                "Clear" button. Downloads are tracked through your browser's own download
+                notification system.</p><div class="mediaobject"><img src="images/file-transfers.png" width="270" /><div class="caption"><p>In-progress and completed file transfers.</p></div></div><p>When you are done browsing the filesystem and transferring files, click "Back" to
+                return to the Guacamole menu.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="rdp-virtual-drive"></a>The RDP virtual drive</h3></div></div></div><p>RDP provides its own native support for file transfer called "drive redirection"
+                or "RDPDR". Guacamole provides support for this mechanism by emulating a virtual
+                drive. Typically, this virtual drive will appear as a network drive within the RDP
+                session. Files uploaded and downloaded will be preserved within this drive, even
+                after disconnecting.</p><div class="mediaobject"><img src="images/guacamole-drive.png" width="450" /><div class="caption"><p>The Guacamole drive within a Windows RDP session.</p></div></div><p>Files can be downloaded from this drive using the file browser in the Guacamole
+                menu or using the special "Download" folder within the virtual drive. All files
+                dropped into this folder will automatically begin uploading to the client, and thus
+                downloading through the browser.</p><div class="mediaobject"><img src="images/guacamole-drive-download.png" width="450" /><div class="caption"><p>The Guacamole drive's "Download" folder.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="guacctl"></a><span class="command"><strong>guacctl</strong></span> / <span class="command"><strong>guacget</strong></span></h3></div></div></div><p><a id="idm46420847371648" class="indexterm"></a><a id="idm46420847370784" class="indexterm"></a><a id="idm46420847369920" class="indexterm"></a><a id="idm46420847368608" class="indexterm"></a>In addition to traditional drag-and-drop and the file browser,
+                Guacamole's SSH support can be used with the <span class="command"><strong>guacctl</strong></span> utility. The
+                    <span class="command"><strong>guacctl</strong></span> utility is a simple shell script <a class="link" href="https://raw.githubusercontent.com/apache/guacamole-server/master/bin/guacctl" target="_top">included with Guacamole</a> which allows you to use and configure file
+                transfer directly from the command line within the SSH session:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> <strong class="userinput"><code>guacctl</code></strong>
+<code class="computeroutput">guacctl 0.8.0, Guacamole SSH session control utility.
+Usage: guacctl [OPTION] [FILE]...
+
+    -d, --download         download each of the files listed.
+    -s, --set-directory    set the destination directory for future uploaded 
+                           files.</code>
+<code class="prompt">$</code> <strong class="userinput"><code>guacctl -d <em class="replaceable"><code>FILENAME</code></em></code></strong>
+<code class="prompt">$</code> <strong class="userinput"><code>guacctl -s <em class="replaceable"><code>DIRECTORY</code></em></code></strong>
+$</pre></div><p>For convenience, you may also create a symbolic link or alias to
+                    <span class="command"><strong>guacctl</strong></span> called <span class="command"><strong>guacget</strong></span>. When run as
+                    <span class="command"><strong>guacget</strong></span>, the utility behaves as if the
+                    <code class="option">--download</code> option were supplied and initiates a download for
+                each file specified on the command line.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="using-the-osk"></a>On-screen keyboard</h2></div></div></div><p>Certain key combinations are impossible to press within a web application like
+            Guacamole because they are reserved by the operating system (<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Del</strong></span> or <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Tab</strong></span>, for example) or by the web browser. If you press one of these reserved
+            combinations, the effect will be observed locally, not remotely, and the remote desktop
+            will receive only some of the keys.</p><p>Guacamole provides its own, built-in on-screen keyboard which allows keys to be sent
+            to the remote desktop without affecting the local system. If the device you're using
+            does not have certain keys which the remote desktop depends on, such as the arrow keys
+            or <span class="keycap"><strong>Ctrl</strong></span>, you can use the on-screen keyboard for this, too. You can show
+            the on-screen keyboard by selecting the "On-screen keyboard" option from the
+            menu.</p><p>Clicking (or tapping) the buttons of the on-screen keyboard has the same effect as
+            pressing the same buttons on a real keyboard, except that the operating system and
+            browser will not intercept these keypresses; they will only be sent to the remote
+            desktop.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="scaling-display"></a>Scaling the display</h2></div></div></div><p><a id="idm46420847771680" class="indexterm"></a>Guacamole will default to shrinking or expanding the remote display to fit
+            the browser window exactly, but this is not necessarily ideal. If the remote display is
+            much larger than your local display, the screen may be impossible to see or interact
+            with. This is especially true for mobile phones, whose screens need to be small enough
+            to fit in the average hand.</p><p>You can scale the display on touch devices by using the familiar pinch gesture. Place
+            two fingers on the screen and bring them closer together to zoom out or further apart to
+            zoom in.</p><p>If your device lacks a touch screen, you can also control the zoom level through the
+            menu. The controls for zooming in and out are located at the bottom of the menu. The
+            current zoom level is displayed between two "-" and "+" buttons which control the zoom
+            level in 10% increments.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="touch-devices"></a>Mobile or touch devices</h2></div></div></div><p>Guacamole is designed to work equally well across all HTML5 browsers, including those
+            of mobile devices. It will automatically handle input from a touch screen or a
+            traditional mouse (or both, if you happen to have such a gifted computer), and provides
+            alternative input methods for devices which lack a physical keyboard.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="touch-mouse"></a>Mouse emulation</h3></div></div></div><p><a id="idm46420847765920" class="indexterm"></a>In the case that your device has a touchscreen and lacks a mouse,
+                Guacamole will emulate a mouse for the sake of interacting with remote desktops that
+                expect mouse input. By default, Guacamole uses "absolute" mouse emulation. This
+                means that the mouse pointer is positioned at the location of each tap on the
+                screen.</p><p>In both absolute and relative modes, you can click-and-drag by tapping the screen
+                and then quickly placing your finger back down. This gesture only causes the mouse
+                button to press down, but does not release it again until you lift your finger back
+                up.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="absolute-mouse-emulation"></a>Absolute mode (touchscreen)</h4></div></div></div><p>Absolute mouse emulation is the default as it tends to be what people expect
+                    when using a touch device to interact with applications designed for mouse
+                    input.</p><p>Each tap on the screen is translated into a left-click at that position.
+                    Right-clicking is accomplished through pressing and holding your finger on the
+                    screen. If parts of the remote display are off-screen, you can drag your finger
+                    around the screen to pan the off-screen parts back into view.</p><p>Although absolute mouse emulation works generally well, a finger makes for a
+                    very inaccurate pointing device. To address this, Guacamole also provides
+                    "relative" mouse emulation. Relative mouse emulation provides a way to deal with
+                    the need for accurate pointer control, when a true pointer device is not
+                    present.</p><div class="informalfigure"><div class="mediaobject"><img src="images/touchscreen.png" width="135" /></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="relative-mouse-emulation"></a>Relative mode (touchpad)</h4></div></div></div><p>Guacamole's relative mouse emulation behaves similarly to the touchpad present
+                    on most modern laptops. You drag your finger across the display to move the
+                    mouse pointer, and tap the display to left-click. The pointer moves relative to
+                    the motion of your finger. Right-clicking is accomplished with a two-finger tap,
+                    and middle-clicking with a three-finger tap. The mouse scroll wheel can be
+                    operated by dragging two fingers up or down.</p><p>Because the relative mouse emulation reserves so many gestures for the
+                    different mouse buttons and actions, common touch gestures like panning and
+                    pinch-to-zoom will not work while relative mouse emulation is enabled. Instead,
+                    the screen will automatically pan to keep the mouse pointer in view, and you can
+                    zoom through the buttons in the menu.</p><div class="informalfigure"><div class="mediaobject"><img src="images/touchpad.png" width="135" /></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="text-input"></a>Typing without a physical keyboard</h3></div></div></div><p>Many mobile devices lack a physical keyboard entirely, and instead provide their
+                own on-screen keyboards. As these are not true keyboards per se and do not produce
+                key presses, Guacamole's text input mode is required for typing on these
+                platforms.</p><p>"Text input" allows input of keystrokes based on the input of text. Choosing "Text
+                input" tells Guacamole to infer keystrokes by tracking text entered, rather than
+                relying on actual key presses. Guacamole will instead determine the combination of
+                keypresses necessary to produce the same pattern of input, including
+                deletions.</p><p><a id="idm46420847750064" class="indexterm"></a>If you wish to type via an IME (input method editor), such as those
+                required for Chinese, Japanese, or Korean, text input mode is required for this as
+                well. Such IMEs function through the explicit insertion of text and do not send
+                traditional key presses. Using text input mode within Guacamole thus allows you to
+                use a locally-installed IME, without requiring the IME to be installed on the remote
+                desktop.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="preferences"></a>Changing preferences</h2></div></div></div><p>User preferences can be changed within the settings screen. These preferences are
+            stored locally within the browser, so if you use multiple computers to access Guacamole,
+            you can have different settings for each location. The settings screen allows users to
+            change the language of the Guacamole interface, to change the default input method used
+            by Guacamole connections, and to change the default mouse emulation mode for if a touch
+            device is used. If you have sufficient permissions, you may also change your password,
+            or administer the system.</p><div class="informalfigure"><div class="screenshot"><div class="mediaobject"><img src="images/guacamole-preferences.png" width="540" /><div class="caption"><p>Guacamole preferences screen.</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="display-language"></a>Display language</h3></div></div></div><p>The Guacamole interface is currently available in English, Dutch, French, German,
+                Italian, and Russian. By default, Guacamole will attempt to determine the
+                appropriate display language by checking the language preferences of the browser in
+                use. If this fails, or the browser is using a language not yet available within
+                Guacamole, English will be used as a fallback.</p><p>If you wish to override the current display language, you can do so by selecting a
+                different language within the "Display language" field. The change will take effect
+                immediately.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="changing-password"></a>Changing your password</h3></div></div></div><p>System administrators can restrict the ability of individual users to change their
+                own passwords, so this section may not always be available. If your account
+                    <span class="emphasis"><em>does</em></span> have permission, the preferences screen will contain a
+                "Change Password" section.</p><p>To change your password, you must provide your current password, enter the desired
+                new password, and click "Update Password". You will remain logged in, and the change
+                will affect any future login attempt.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="default-input-settings"></a>Default input settings</h3></div></div></div><p>Guacamole provides multiple keyboard input methods and multiple mouse emulation
+                modes. Many of these settings are specifically useful for touch devices, while
+                others are aimed mainly at traditional desktop use. By default, Guacamole will use
+                the keyboard and mouse modes most commonly preferred by users, but you can change
+                these defaults if they do not fit your tastes or your current device.</p><p>The choices available mirror those within the Guacamole menu discussed earlier in
+                this chapter, and changing these settings will affect the default values selected
+                within the Guacamole menu of future connections.</p></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="adhoc-connections.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="users-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="administration.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 14. Ad-hoc Connections </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Chapter 16. Administration</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/gug/writing-you-own-guacamole-app.html b/doc/1.1.0/gug/writing-you-own-guacamole-app.html
new file mode 100644
index 0000000..b4750cc
--- /dev/null
+++ b/doc/1.1.0/gug/writing-you-own-guacamole-app.html
@@ -0,0 +1,436 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Chapter 26. Writing your own Guacamole application</title><link rel="stylesheet" type="text/css" href="gug.css" /><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" /><link rel="home" href="index.html" title="Guacamole Manual" /><link rel="up" href="developers-guide.html" title="Part II. Developer's Guide" /><link rel="prev" href="event-listeners.html" title="Chapter 25. Event listeners" /><link rel="next" href="appendices.html" title="Part III. Appendices" />
+            <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi"/>
+        </head><body>
+            <!-- CONTENT -->
+
+            <div id="page"><div id="content">
+        <div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 26. Writing your own Guacamole application</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="event-listeners.html">Prev</a> </td><th width="60%" align="center">Part II. Developer's Guide</th><td width="20%" align="right"> <a accesskey="n" href="appendices.html">Next</a></td></tr></table><hr /></div><div xml:lang="en" class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a id="writing-you-own-guacamole-app"></a>Chapter 26. Writing your own Guacamole application</h2></div></div></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="section"><a href="writing-you-own-guacamole-app.html#basic-guacamole-architecture">The basics</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#web-app-skeleton">Web application skeleton</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844261200"><code class="filename">pom.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844254592"><code class="filename">WEB-INF/web.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844250384"><code class="filename">index.html</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#idm46420844244896">Building the skeleton</a></span></dt></dl></dd><dt><span class="section"><a href="writing-you-own-guacamole-app.html#guacamole-skeleton">Adding Guacamole</a></span></dt><dd><dl><dt><span class="section"><a href="writing-you-own-guacamole-app.html#adding-guac-to-pom">Updating <code class="filename">pom.xml</code></a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#simple-tunnel">The simplest tunnel possible</a></span></dt><dt><span class="section"><a href="writing-you-own-guacamole-app.html#simple-client">Adding the client</a></span></dt></dl></dd><dt><span class="section"><a href="writing-you-own-guacamole-app.html#next-steps">Where to go from here</a></span></dt></dl></div><a id="idm46420844277056" class="indexterm"></a><a id="idm46420844276048" class="indexterm"></a><p>As Guacamole is an API, one of the best ways to put Guacamole to use is by building your
+        own Guacamole-driven web application, integrating HTML5 remote desktop into whatever you
+        think needs it.</p><p>The Guacamole project provides an example of doing this called "guacamole-example", but
+        this example is already completed for you, and from a quick glance at this example, it may
+        not be obvious just how easy it is to integrate remote access into a web application. This
+        tutorial will walk you through the basic steps of building an HTML5 remote desktop
+        application using the Guacamole API and Maven.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="basic-guacamole-architecture"></a>The basics</h2></div></div></div><p>Guacamole's architecture is made up of many components, but it's actually
+            straightforward, especially from the perspective of the web application.</p><p>Guacamole has a proxy daemon, guacd, which handles communication using remote desktop
+            protocols, exposing those to whatever connects to it (in this case, the web application)
+            using the Guacamole protocol. From where the web application is standing, it doesn't
+            really matter that guacd dynamically loads protocol plugins or that it shares a common
+            library allowing this; all that matters is that the web application just has to connect
+            to port 4822 (where guacd listens by default) and use the Guacamole protocol. The
+            architecture will take care of the rest.</p><p>Thankfully, the Java side of the Guacamole API provides simple classes which already
+            implement the Guacamole protocol with the intent of tunneling it between guacd and the
+            JavaScript half of your web application. A typical web application leveraging these
+            classes needs only the following:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"><p>A class which extends <code class="classname">GuacamoleHTTPTunnelServlet</code>,
+                        providing the tunnel between the JavaScript client (presumably using
+                        guacamole-common-js) and guacd.</p><p><code class="classname">GuacamoleHTTPTunnelServlet</code> is an abstract class
+                        which is provided by the Guacamole API and already implements a fully
+                        functional, HTTP-based tunnel which the tunneling objects already part of
+                        guacamole-common-js are written to connect to. This class exists to make it
+                        easy for you to use Guacamole's existing and robust HTTP tunnel
+                        implementation.</p><p>If you want to not use this class and instead use your own tunneling
+                        mechanism, perhaps WebSocket, this is fine; the JavaScript object mentioned
+                        above implements a common interface which you can also implement, and the
+                        Guacamole JavaScript client which is also part of guacamole-common-js will
+                        happily use your implementation as long as it provides that
+                        interface.</p></li><li class="listitem"><p>A web page which includes JavaScript files from guacamole-common-js and
+                        uses the client and tunnel objects to connect back to the web
+                        application.</p><p>The JavaScript API provided by the Guacamole project includes a full
+                        implementation of the Guacamole protocol as a client, implementations of
+                        HTTP and WebSocket-based tunnels, and mouse/keyboard/touch input
+                        abstraction. Again, as the Guacamole protocol and all parts of the
+                        architecture are documented here, you don't absolutely need to use these
+                        objects, but it will make your life easier. Mouse and keyboard support in
+                        JavaScript is finicky business, and the Guacamole client provided is
+                        well-known to work with other components in the API, being the official
+                        client of the project.</p></li></ol></div><p>That's really all there is to it.</p><p>If you want authentication, the place to implement that would be in your extended
+            version of <code class="classname">GuacamoleHTTPTunnelServlet</code>; this is what the Guacamole
+            web application does. Besides authentication, there are many other things you could wrap
+            around your remote desktop application, but ultimately the base of all this is simple:
+            you have a tunnel which allows the JavaScript client to communicate with guacd, and you
+            have the JavaScript client itself, with the hard part already provided within
+            guacamole-common-js.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="web-app-skeleton"></a>Web application skeleton</h2></div></div></div><p>As with most tutorials, this tutorial begins with creating a project skeleton that
+            establishes a minimal base for the tutorial to enhance in subsequent steps.</p><p>This tutorial will use Maven, which is the same build system used by the upstream
+            Guacamole project. As the Guacamole project has a Maven repository for both the Java and
+            JavaScript APIs, writing a Guacamole-based application using Maven is much easier; Maven
+            will download and use the Guacamole API automatically.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844261200"></a><code class="filename">pom.xml</code></h3></div></div></div><p>All Maven projects must have a project descriptor, the
+                    <code class="filename">pom.xml</code> file, in the root directory of the project. This
+                file describes project dependencies and specific build requirements. Unlike other
+                build tools like Apache Ant or GNU Autotools, Maven chooses convention over
+                configuration: files within the project must be placed in specific locations, and
+                the project dependencies must be fully described in the pom.xml. If this is done,
+                the build will be handled automatically.</p><p>The basis of this Guacamole-driven web application will be a simple HTML file
+                which will ultimately become the client. While the finished product will have an
+                HTTP tunnel written in Java, we don't need this yet for our skeleton. We will create
+                a very basic, barebones Maven project containing only
+                    <code class="filename">index.html</code> and a web application descriptor file,
+                    <code class="filename">web.xml</code>. Once these files are in place, the project can be
+                packaged into a <code class="filename">.war</code> file which can be deployed to your servlet
+                container of choice (such as Apache Tomcat).</p><p>As this skeleton will contain no Java code, it has no dependencies, and no build
+                requirements beyond the metadata common to any Maven project. The
+                    <code class="filename">pom.xml</code> is thus very simple for the time being:</p><div class="informalexample"><pre class="programlisting">&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
+                             http://maven.apache.org/maven-v4_0_0.xsd"&gt;
+
+    &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
+    &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+    &lt;artifactId&gt;guacamole-tutorial&lt;/artifactId&gt;
+    &lt;packaging&gt;war&lt;/packaging&gt;
+    &lt;version&gt;1.1.0&lt;/version&gt;
+    &lt;name&gt;guacamole-tutorial&lt;/name&gt;
+
+    &lt;properties&gt;
+        &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
+    &lt;/properties&gt;
+
+&lt;/project&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844254592"></a><code class="filename">WEB-INF/web.xml</code></h3></div></div></div><p>Before the project will build, there needs to be a web application deployment
+                descriptor, <code class="filename">web.xml</code>. This file is required by the Java EE
+                standard for building the <code class="filename">.war</code> file which will contain the web
+                application, and will be read by the servlet container when the application is
+                actually deployed. For Maven to find and use this file when building the
+                    <code class="filename">.war</code>, it must be placed in the
+                    <code class="filename">src/main/webapp/WEB-INF/</code> directory.</p><div class="informalexample"><pre class="programlisting">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+
+&lt;web-app version="2.5"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
+                        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
+
+    &lt;!-- Basic config --&gt;
+    &lt;welcome-file-list&gt;
+        &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
+    &lt;/welcome-file-list&gt;
+
+&lt;/web-app&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844250384"></a><code class="filename">index.html</code></h3></div></div></div><p>With the <code class="filename">web.xml</code> file in place and the skeleton
+                    <code class="filename">pom.xml</code> written, the web application will now build
+                successfully. However, as the <code class="filename">web.xml</code> refers to a "welcome
+                file" called <code class="filename">index.html</code> (which will ultimately contain our
+                client), we need to put this in place so the servlet container will have something
+                to serve. This file, as well as any other future static files, belongs within
+                    <code class="filename">src/main/webapp</code>.</p><p>For now, this file can contain anything, since the other parts of our
+                Guacamole-driven web application are not written yet. It is a placeholder which we
+                will replace later:</p><div class="informalexample"><pre class="programlisting">&lt;!DOCTYPE HTML&gt;
+&lt;html&gt;
+
+    &lt;head&gt;
+        &lt;title&gt;Guacamole Tutorial&lt;/title&gt;
+    &lt;/head&gt;
+
+    &lt;body&gt;
+        &lt;p&gt;Hello World&lt;/p&gt;
+    &lt;/body&gt;
+
+&lt;/html&gt;</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="idm46420844244896"></a>Building the skeleton</h3></div></div></div><p>Once all three of the above files are in place, the web application will build,
+                and can even be deployed to your servlet container. It won't do anything yet other
+                than serve the <code class="filename">index.html</code> file, but it's good to at least try
+                building the web application to make sure nothing is missing and all steps were
+                followed correctly before proceeding:</p><div class="informalexample"><pre class="screen"><code class="prompt">$</code> mvn package
+<code class="computeroutput">[INFO] Scanning for projects...
+[INFO] ------------------------------------------------------------------------
+[INFO] Building guacamole-tutorial
+[INFO]    task-segment: [package]
+[INFO] ------------------------------------------------------------------------
+...
+[INFO] ------------------------------------------------------------------------
+[INFO] BUILD SUCCESSFUL
+[INFO] ------------------------------------------------------------------------
+[INFO] Total time: 4 seconds
+[INFO] Finished at: Fri Jan 11 13:04:11 PST 2013
+[INFO] Final Memory: 18M/128M
+[INFO] ------------------------------------------------------------------------</code>
+<code class="prompt">$</code></pre></div><p>Assuming you see the "<code class="computeroutput">BUILD SUCCESSFUL</code>" message
+                when you build the web application, there will be a new file,
+                    <code class="filename">target/guacamole-tutorial-1.1.0.war</code>, which
+                can be deployed to your servlet container and tested. If you changed the name or
+                version of the project in the <code class="filename">pom.xml</code> file, the name of this new
+                    <code class="filename">.war</code> file will be different, but it can still be found
+                within <code class="filename">target/</code>.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="guacamole-skeleton"></a>Adding Guacamole</h2></div></div></div><p>Once we have a functional web application built, the next step is to actually add the
+            references to the Guacamole API and integrate a Guacamole client into the
+            application.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="adding-guac-to-pom"></a>Updating <code class="filename">pom.xml</code></h3></div></div></div><p>Now that we're adding Guacamole components to our project, we need to modify
+                    <code class="filename">pom.xml</code> to specify which components are being used, and
+                where they can be obtained. With this information in place, Maven will automatically
+                resolve dependencies and download them as necessary during the build.</p><p>Regarding the build process itself, there are two main changes: we are now going
+                to be using Java, and we need the JavaScript files from guacamole-common-js included
+                automatically inside the <code class="filename">.war</code>.</p><p>Guacamole requires at least Java 1.6, thus we must add a section to the
+                    <code class="filename">pom.xml</code> which describes the source and target Java
+                versions:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            &lt;!-- Compile using Java 1.6 --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-compiler-plugin&lt;/artifactId&gt;
+                &lt;version&gt;3.3&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;source&gt;1.6&lt;/source&gt;
+                    &lt;target&gt;1.6&lt;/target&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+
+    &lt;/build&gt;
+
+    ...</pre></div><p>Including the JavaScript files from an external project like guacamole-common-js
+                requires using a feature of the maven war plugin called overlays. To add an overlay
+                containing guacamole-common-js, we add a section describing the configuration of the
+                Maven war plugin, listing guacamole-common-js as an overlay:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;build&gt;
+        &lt;plugins&gt;
+
+            ...
+
+            &lt;!-- Overlay guacamole-common-js (zip) --&gt;
+            &lt;plugin&gt;
+                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
+                &lt;artifactId&gt;maven-war-plugin&lt;/artifactId&gt;
+                &lt;version&gt;2.6&lt;/version&gt;
+                &lt;configuration&gt;
+                    &lt;overlays&gt;
+                        &lt;overlay&gt;
+                            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+                            &lt;artifactId&gt;guacamole-common-js&lt;/artifactId&gt;
+                            &lt;type&gt;zip&lt;/type&gt;
+                        &lt;/overlay&gt;
+                    &lt;/overlays&gt;
+                &lt;/configuration&gt;
+            &lt;/plugin&gt;
+
+        &lt;/plugins&gt;
+
+    &lt;/build&gt;
+
+    ...</pre></div><p>With the build now configured, we still need to add dependencies and list the
+                repositories those dependencies can be downloaded from.</p><p>As this is a web application which will use the Java Servlet API, we must
+                explicitly include this as a dependency, as well as the Guacamole Java and
+                JavaScript APIs:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;dependencies&gt;
+
+        &lt;!-- Servlet API --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;javax.servlet&lt;/groupId&gt;
+            &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;
+            &lt;version&gt;2.5&lt;/version&gt;
+            &lt;scope&gt;provided&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Main Guacamole library --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-common&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;scope&gt;compile&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+        &lt;!-- Guacamole JavaScript library --&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.guacamole&lt;/groupId&gt;
+            &lt;artifactId&gt;guacamole-common-js&lt;/artifactId&gt;
+            &lt;version&gt;1.1.0&lt;/version&gt;
+            &lt;type&gt;zip&lt;/type&gt;
+            &lt;scope&gt;runtime&lt;/scope&gt;
+        &lt;/dependency&gt;
+
+    &lt;/dependencies&gt;
+
+    ...</pre></div><p>The Java Servlet API will be provided by your servlet container, so Maven does not
+                need to download it during the build, and it need not exist in any Maven
+                repository.</p><p>With these changes, the web application will still build at this point, even
+                though no Java code has been written yet. You may wish to verify that everything
+                still works.</p><p>If the <code class="filename">pom.xml</code> was updated properly as described above, the
+                web application should build successfully, and the Guacamole JavaScript API should
+                be accessible in the <code class="filename">guacamole-common-js/</code> subdirectory of your
+                web application after it is deployed. A quick check that you can access
+                    <code class="uri">/guacamole-tutorial-1.1.0/guacamole-common-js/all.min.js</code>
+                is probably worth the effort.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="simple-tunnel"></a>The simplest tunnel possible</h3></div></div></div><p>As with the other tutorials in this book, we will keep this simple for the sake of
+                demonstrating the principles behind a Guacamole-based web application, and to give
+                developers a good idea of where to start looking when it's time to consult the API
+                documentation.</p><p>It is the duty of the class extending
+                    <code class="classname">GuacamoleHTTPTunnelServlet</code> to implement a function called
+                    <code class="methodname">doConnect()</code>. This is the only function required to be
+                implemented, and in general it is the only function you should implement; the other
+                functions involved are already optimized for tunneling the Guacamole
+                protocol.</p><p>The <code class="methodname">doConnect()</code> function returns a
+                    <code class="classname">GuacamoleTunnel</code>, which provides a persistent
+                communication channel for <code class="classname">GuacamoleHTTPTunnelServlet</code> to use
+                when talking with guacd and initiating a connection with some arbitrary remote
+                desktop using some arbitrary remote desktop protocol. In our simple tunnel, this
+                configuration will be hard-coded, and no authentication will be attempted. Any user
+                accessing this web application will be immediately given a functional remote
+                desktop, no questions asked.</p><p>Create a new file, <code class="filename">TutorialGuacamoleTunnelServlet.java</code>,
+                defining a basic implementation of a tunnel servlet class:</p><div class="informalexample"><pre class="programlisting">package org.apache.guacamole.net.example;
+
+import javax.servlet.http.HttpServletRequest;
+import org.apache.guacamole.GuacamoleException;
+import org.apache.guacamole.net.GuacamoleSocket;
+import org.apache.guacamole.net.GuacamoleTunnel;
+import org.apache.guacamole.net.InetGuacamoleSocket;
+import org.apache.guacamole.net.SimpleGuacamoleTunnel;
+import org.apache.guacamole.protocol.ConfiguredGuacamoleSocket;
+import org.apache.guacamole.protocol.GuacamoleConfiguration;
+import org.apache.guacamole.servlet.GuacamoleHTTPTunnelServlet;
+
+public class TutorialGuacamoleTunnelServlet
+    extends GuacamoleHTTPTunnelServlet {
+
+    @Override
+    protected GuacamoleTunnel doConnect(HttpServletRequest request)
+        throws GuacamoleException {
+
+        // Create our configuration
+        GuacamoleConfiguration config = new GuacamoleConfiguration();
+        config.setProtocol("vnc");
+        config.setParameter("hostname", "localhost");
+        config.setParameter("port", "5901");
+        config.setParameter("password", "potato");
+
+        // Connect to guacd - everything is hard-coded here.
+        GuacamoleSocket socket = new ConfiguredGuacamoleSocket(
+                new InetGuacamoleSocket("localhost", 4822),
+                config
+        );
+
+        // Return a new tunnel which uses the connected socket
+        return new SimpleGuacamoleTunnel(socket);;
+
+    }
+
+}</pre></div><p>Place this file in the
+                    <code class="filename">src/main/java/org/apache/guacamole/net/example</code> subdirectory
+                of the project. The initial part of this subdirectory,
+                    <code class="filename">src/main/java</code>, is the path required by Maven, while the
+                rest is the directory required by Java based on the package associated with the
+                class.</p><p>Once the class defining our tunnel is created, it must be added to the
+                    <code class="filename">web.xml</code> such that the servlet container knows which URL
+                maps to it. This URL will later be given to the JavaScript client to establish the
+                connection back to the Guacamole server:</p><div class="informalexample"><pre class="programlisting">    ...
+
+    &lt;!-- Guacamole Tunnel Servlet --&gt;
+    &lt;servlet&gt;
+        &lt;description&gt;Tunnel servlet.&lt;/description&gt;
+        &lt;servlet-name&gt;Tunnel&lt;/servlet-name&gt;
+        &lt;servlet-class&gt;
+            org.apache.guacamole.net.example.TutorialGuacamoleTunnelServlet
+        &lt;/servlet-class&gt;
+    &lt;/servlet&gt;
+
+    &lt;servlet-mapping&gt;
+        &lt;servlet-name&gt;Tunnel&lt;/servlet-name&gt;
+        &lt;url-pattern&gt;/tunnel&lt;/url-pattern&gt;
+    &lt;/servlet-mapping&gt;
+
+    ...</pre></div><p>The first section assigns a unique name, "Tunnel", to the servlet class we just
+                defined. The second section maps the servlet class by it's servlet name ("Tunnel")
+                to the URL we wish to use when making HTTP requests to the servlet:
+                    <code class="uri">/tunnel</code>. This URL is relative to the context root of the web
+                application. In the case of this web application, the final absolute URL will be
+                    <code class="uri">/guacamole-tutorial-1.1.0/tunnel</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="simple-client"></a>Adding the client</h3></div></div></div><p>As the Guacamole JavaScript API already provides functional client and tunnel
+                implementations, as well as mouse and keyboard input objects, the coding required
+                for the "web" side of the web application is very minimal.</p><p>We must create a <code class="classname">Guacamole.HTTPTunnel</code>, connect it to our
+                previously-implemented tunnel servlet, and pass that tunnel to a new
+                    <code class="classname">Guacamole.Client</code>. Once that is done, and the
+                    <code class="methodname">connect()</code> function of the client is called,
+                communication will immediately ensue, and your remote desktop will be
+                visible:</p><div class="informalexample"><pre class="programlisting">    ...
+    &lt;body&gt;
+
+        &lt;!-- Guacamole --&gt;
+        &lt;script type="text/javascript"
+            src="guacamole-common-js/all.min.js"&gt;&lt;/script&gt;
+
+        &lt;!-- Display --&gt;
+        &lt;div id="display"&gt;&lt;/div&gt;
+
+        &lt;!-- Init --&gt;
+        &lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */
+
+            // Get display div from document
+            var display = document.getElementById("display");
+
+            // Instantiate client, using an HTTP tunnel for communications.
+            var guac = new Guacamole.Client(
+                new Guacamole.HTTPTunnel("tunnel")
+            );
+
+            // Add client to display div
+            display.appendChild(guac.getDisplay().getElement());
+            
+            // Error handler
+            guac.onerror = function(error) {
+                alert(error);
+            };
+
+            // Connect
+            guac.connect();
+
+            // Disconnect on close
+            window.onunload = function() {
+                guac.disconnect();
+            }
+
+        /* ]]&gt; */ &lt;/script&gt;
+
+    &lt;/body&gt;
+    ...</pre></div><p>If you build and deploy the web application now, it will work, but mouse and
+                keyboard input will not. This is because input is not implemented by the client
+                directly. The Guacamole.Client object only decodes the Guacamole protocol and
+                handles the display, providing an element which you can add manually to the DOM.
+                While it will also send keyboard and mouse events for you, you need to call the
+                respective functions manually. The Guacamole API provides keyboard and mouse
+                abstraction objects which make this easy.</p><p>We need only create a <code class="classname">Guacamole.Mouse</code> and
+                    <code class="methodname">Guacamole.Keyboard</code>, and add event handlers to handle
+                their corresponding input events, calling whichever function of the Guacamole client
+                is appropriate to send the input event through the tunnel to guacd:</p><div class="informalexample"><pre class="programlisting">        ...
+
+        &lt;!-- Init --&gt;
+        &lt;script type="text/javascript"&gt; /* &lt;![CDATA[ */
+
+            ...
+
+            // Mouse
+            var mouse = new Guacamole.Mouse(guac.getDisplay().getElement());
+
+            mouse.onmousedown = 
+            mouse.onmouseup   =
+            mouse.onmousemove = function(mouseState) {
+                guac.sendMouseState(mouseState);
+            };
+
+            // Keyboard
+            var keyboard = new Guacamole.Keyboard(document);
+
+            keyboard.onkeydown = function (keysym) {
+                guac.sendKeyEvent(1, keysym);
+            };
+
+            keyboard.onkeyup = function (keysym) {
+                guac.sendKeyEvent(0, keysym);
+            };
+
+        /* ]]&gt; */ &lt;/script&gt;
+
+        ...</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="next-steps"></a>Where to go from here</h2></div></div></div><p>At this point, we now have a fully functional Guacamole-based web application. This
+            web application inherits all the core functionality present in the official Guacamole
+            web application, including sound and video, without very much coding.</p><p>Extending this application to provide authentication, multiple connections per user,
+            or a spiffy interface which is compatible with mobile is not too much of a stretch. This
+            is exactly how the Guacamole web application is written. Integrating Guacamole into an
+            existing application would be similar.</p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="event-listeners.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="developers-guide.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="appendices.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 25. Event listeners </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> Part III. Appendices</td></tr></table></div>
+
+            </div></div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+        </body></html>
\ No newline at end of file
diff --git a/doc/1.1.0/libguac/annotated.html b/doc/1.1.0/libguac/annotated.html
new file mode 100644
index 0000000..5c93d06
--- /dev/null
+++ b/doc/1.1.0/libguac/annotated.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__audio__encoder.html" target="_self">guac_audio_encoder</a></td><td class="desc">Arbitrary audio codec encoder </td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__audio__stream.html" target="_self">guac_audio_stream</a></td><td class="desc">Basic audio stream </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__client.html" target="_self">guac_client</a></td><td class="desc">Guacamole proxy client </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__layer.html" target="_self">guac_layer</a></td><td class="desc">Represents a single layer within the Guacamole protocol </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__object.html" target="_self">guac_object</a></td><td class="desc">Represents a single object within the Guacamole protocol </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__parser.html" target="_self">guac_parser</a></td><td class="desc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__pool.html" target="_self">guac_pool</a></td><td class="desc">A pool of integers </td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__pool__int.html" target="_self">guac_pool_int</a></td><td class="desc">Represents a single integer within a larger pool of integers </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__socket.html" target="_self">guac_socket</a></td><td class="desc">The core I/O object of Guacamole </td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__socket__ssl__data.html" target="_self">guac_socket_ssl_data</a></td><td class="desc">SSL socket-specific data </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__stream.html" target="_self">guac_stream</a></td><td class="desc">Represents a single stream within the Guacamole protocol </td></tr>
+<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__user.html" target="_self">guac_user</a></td><td class="desc">Representation of a physical connection within a larger logical connection which may be shared </td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structguac__user__info.html" target="_self">guac_user_info</a></td><td class="desc">Information exposed by the remote client during the connection handshake which can be used by a client plugin </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-fntypes_8h.html b/doc/1.1.0/libguac/audio-fntypes_8h.html
new file mode 100644
index 0000000..b909531
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-fntypes_8h.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">audio-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a0b14abed1928c4e00129c7b87e391816"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:a0b14abed1928c4e00129c7b87e391816"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream is opened.  <a href="#a0b14abed1928c4e00129c7b87e391816">More...</a><br /></td></tr>
+<tr class="separator:a0b14abed1928c4e00129c7b87e391816"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8736cc2b634df9c222cf09dcc6507162"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:a8736cc2b634df9c222cf09dcc6507162"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream needs to be flushed.  <a href="#a8736cc2b634df9c222cf09dcc6507162">More...</a><br /></td></tr>
+<tr class="separator:a8736cc2b634df9c222cf09dcc6507162"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td></tr>
+<tr class="memdesc:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when the audio stream is closed.  <a href="#aa29dc3999c06e82c20d7a5e5d1e1565d">More...</a><br /></td></tr>
+<tr class="separator:aa29dc3999c06e82c20d7a5e5d1e1565d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when a new user has joined the Guacamole connection associated with the audio stream.  <a href="#a9d1fac87cc2ee072112d9d65d43ae70e">More...</a><br /></td></tr>
+<tr class="separator:a9d1fac87cc2ee072112d9d65d43ae70e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, const unsigned char *pcm_data, int length)</td></tr>
+<tr class="memdesc:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which is called when PCM data is written to the audio stream.  <a href="#a57fe16e56c1c115b2321e50b9d9ce11a">More...</a><br /></td></tr>
+<tr class="separator:a57fe16e56c1c115b2321e50b9d9ce11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to simple streaming audio. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a0b14abed1928c4e00129c7b87e391816"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b14abed1928c4e00129c7b87e391816">&#9670;&nbsp;</a></span>guac_audio_encoder_begin_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_begin_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream is opened. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being opened. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa29dc3999c06e82c20d7a5e5d1e1565d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa29dc3999c06e82c20d7a5e5d1e1565d">&#9670;&nbsp;</a></span>guac_audio_encoder_end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_end_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream is closed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being closed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a8736cc2b634df9c222cf09dcc6507162"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8736cc2b634df9c222cf09dcc6507162">&#9670;&nbsp;</a></span>guac_audio_encoder_flush_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_flush_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when the audio stream needs to be flushed. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream being flushed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a9d1fac87cc2ee072112d9d65d43ae70e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9d1fac87cc2ee072112d9d65d43ae70e">&#9670;&nbsp;</a></span>guac_audio_encoder_join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_join_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when a new user has joined the Guacamole connection associated with the audio stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream associated with the Guacamole connection being joined.</td></tr>
+    <tr><td class="paramname">user</td><td>The user that joined the connection. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a57fe16e56c1c115b2321e50b9d9ce11a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57fe16e56c1c115b2321e50b9d9ce11a">&#9670;&nbsp;</a></span>guac_audio_encoder_write_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_audio_encoder_write_handler(<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, const unsigned char *pcm_data, int length)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler which is called when PCM data is written to the audio stream. </p>
+<p>The format of the PCM data is dictated by the properties of the audio stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The audio stream to which data is being written.</td></tr>
+    <tr><td class="paramname">pcm_data</td><td>A buffer containing the raw PCM data to be written.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes within the buffer that should be written to the audio stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-fntypes_8h_source.html b/doc/1.1.0/libguac/audio-fntypes_8h_source.html
new file mode 100644
index 0000000..319feb7
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-fntypes_8h_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_AUDIO_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_AUDIO_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-types_8h.html">audio-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">   46</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">   54</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio);</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">   67</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">   84</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* pcm_data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="ttc" id="audio-fntypes_8h_html_aa29dc3999c06e82c20d7a5e5d1e1565d"><div class="ttname"><a href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a></div><div class="ttdeci">void guac_audio_encoder_end_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is closed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:54</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a8736cc2b634df9c222cf09dcc6507162"><div class="ttname"><a href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a></div><div class="ttdeci">void guac_audio_encoder_flush_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream needs to be flushed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:46</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a57fe16e56c1c115b2321e50b9d9ce11a"><div class="ttname"><a href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a></div><div class="ttdeci">void guac_audio_encoder_write_handler(guac_audio_stream *audio, const unsigned char *pcm_data, int length)</div><div class="ttdoc">Handler which is called when PCM data is written to the audio stream. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:84</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a9d1fac87cc2ee072112d9d65d43ae70e"><div class="ttname"><a href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a></div><div class="ttdeci">void guac_audio_encoder_join_handler(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Handler which is called when a new user has joined the Guacamole connection associated with the audio...</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:67</div></div>
+<div class="ttc" id="audio-types_8h_html"><div class="ttname"><a href="audio-types_8h.html">audio-types.h</a></div><div class="ttdoc">Type definitions related to simple streaming audio. </div></div>
+<div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a0b14abed1928c4e00129c7b87e391816"><div class="ttname"><a href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a></div><div class="ttdeci">void guac_audio_encoder_begin_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is opened. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:38</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-types_8h.html b/doc/1.1.0/libguac/audio-types_8h.html
new file mode 100644
index 0000000..37d94d3
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to simple streaming audio. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio-types_8h_source.html b/doc/1.1.0/libguac/audio-types_8h_source.html
new file mode 100644
index 0000000..f7794cc
--- /dev/null
+++ b/doc/1.1.0/libguac/audio-types_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef __GUAC_AUDIO_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define __GUAC_AUDIO_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__audio__stream.html">guac_audio_stream</a> <a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a> <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="structguac__audio__encoder_html"><div class="ttname"><a href="structguac__audio__encoder.html">guac_audio_encoder</a></div><div class="ttdoc">Arbitrary audio codec encoder. </div><div class="ttdef"><b>Definition:</b> audio.h:35</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio_8h.html b/doc/1.1.0/libguac/audio_8h.html
new file mode 100644
index 0000000..18d3a3e
--- /dev/null
+++ b/doc/1.1.0/libguac/audio_8h.html
@@ -0,0 +1,388 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">audio.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures used for providing simple streaming audio.  
+<a href="#details">More...</a></p>
+
+<p><a href="audio_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary audio codec encoder.  <a href="structguac__audio__encoder.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic audio stream.  <a href="structguac__audio__stream.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afc1fc0133504e718edf4756fac5e9c30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *encoder, int rate, int channels, int bps)</td></tr>
+<tr class="memdesc:afc1fc0133504e718edf4756fac5e9c30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new audio stream at the client level which encodes audio data using the given encoder.  <a href="#afc1fc0133504e718edf4756fac5e9c30">More...</a><br /></td></tr>
+<tr class="separator:afc1fc0133504e718edf4756fac5e9c30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0bbd483b1bfe5eede15539a0aacfedad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *encoder, int rate, int channels, int bps)</td></tr>
+<tr class="memdesc:a0bbd483b1bfe5eede15539a0aacfedad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample.  <a href="#a0bbd483b1bfe5eede15539a0aacfedad">More...</a><br /></td></tr>
+<tr class="separator:a0bbd483b1bfe5eede15539a0aacfedad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b8e2f05a19b137454832a5dbc6c3864"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *audio, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a2b8e2f05a19b137454832a5dbc6c3864"><td class="mdescLeft">&#160;</td><td class="mdescRight">Notifies the given audio stream that a user has joined the connection.  <a href="#a2b8e2f05a19b137454832a5dbc6c3864">More...</a><br /></td></tr>
+<tr class="separator:a2b8e2f05a19b137454832a5dbc6c3864"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adcc872292b5ba6c39905610b2bccbf31"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream)</td></tr>
+<tr class="memdesc:adcc872292b5ba6c39905610b2bccbf31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Closes and frees the given audio stream.  <a href="#adcc872292b5ba6c39905610b2bccbf31">More...</a><br /></td></tr>
+<tr class="separator:adcc872292b5ba6c39905610b2bccbf31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a11bdfee60584106ba85d97a3f8273cc2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream, const unsigned char *data, int length)</td></tr>
+<tr class="memdesc:a11bdfee60584106ba85d97a3f8273cc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes PCM data to the given audio stream.  <a href="#a11bdfee60584106ba85d97a3f8273cc2">More...</a><br /></td></tr>
+<tr class="separator:a11bdfee60584106ba85d97a3f8273cc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af75feccacea2b14ee946064cf623f143"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a> (<a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *stream)</td></tr>
+<tr class="memdesc:af75feccacea2b14ee946064cf623f143"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the underlying audio buffer, if any, ensuring that all audio previously written via <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2" title="Writes PCM data to the given audio stream. ">guac_audio_stream_write_pcm()</a> has been encoded and sent to the client.  <a href="#af75feccacea2b14ee946064cf623f143">More...</a><br /></td></tr>
+<tr class="separator:af75feccacea2b14ee946064cf623f143"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures used for providing simple streaming audio. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a2b8e2f05a19b137454832a5dbc6c3864"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2b8e2f05a19b137454832a5dbc6c3864">&#9670;&nbsp;</a></span>guac_audio_stream_add_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_add_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>audio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Notifies the given audio stream that a user has joined the connection. </p>
+<p>The audio stream itself may need to be restarted. and the audio stream will need to be created for the new user to ensure they can properly handle future data received along the stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> associated with the Guacamole connection being joined.</td></tr>
+    <tr><td class="paramname">user</td><td>The user that has joined the Guacamole connection. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="afc1fc0133504e718edf4756fac5e9c30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc1fc0133504e718edf4756fac5e9c30">&#9670;&nbsp;</a></span>guac_audio_stream_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a>* guac_audio_stream_alloc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td>
+          <td class="paramname"><em>encoder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>channels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bps</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new audio stream at the client level which encodes audio data using the given encoder. </p>
+<p>If NULL is specified for the encoder, an appropriate encoder will be selected based on the encoders built into libguac and the level of support declared by users associated with the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. The PCM format specified here (via rate, channels, and bps) must be the format used for all PCM data provided to the audio stream. The format may only be changed using <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad" title="Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample...">guac_audio_stream_reset()</a>.</p>
+<p>If a new user joins the connection after the audio stream is created, that user will not be aware of the existence of the audio stream, and <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864" title="Notifies the given audio stream that a user has joined the connection. ">guac_audio_stream_add_user()</a> will need to be invoked to recreate the stream for the new user.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> for which this audio stream is being allocated. The connection owner is given priority when determining the level of audio support. It is currently assumed that all other joining users on the connection will have the same level of audio support.</td></tr>
+    <tr><td class="paramname">encoder</td><td>The <a class="el" href="structguac__audio__encoder.html" title="Arbitrary audio codec encoder. ">guac_audio_encoder</a> to use when encoding audio, or NULL if libguac should select an appropriate built-in encoder on its own.</td></tr>
+    <tr><td class="paramname">rate</td><td>The number of samples per second of PCM data sent to this stream.</td></tr>
+    <tr><td class="paramname">channels</td><td>The number of audio channels per sample of PCM data. Legal values are 1 or 2.</td></tr>
+    <tr><td class="paramname">bps</td><td>The number of bits per sample per channel for PCM data. Legal values are 8 or 16.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a>, or NULL if no audio stream could be allocated due to lack of support on the part of the connecting Guacamole client or due to reaching the maximum number of active streams. </dd></dl>
+
+</div>
+</div>
+<a id="af75feccacea2b14ee946064cf623f143"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af75feccacea2b14ee946064cf623f143">&#9670;&nbsp;</a></span>guac_audio_stream_flush()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_flush </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the underlying audio buffer, if any, ensuring that all audio previously written via <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2" title="Writes PCM data to the given audio stream. ">guac_audio_stream_write_pcm()</a> has been encoded and sent to the client. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> whose audio buffers should be flushed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="adcc872292b5ba6c39905610b2bccbf31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adcc872292b5ba6c39905610b2bccbf31">&#9670;&nbsp;</a></span>guac_audio_stream_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Closes and frees the given audio stream. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a0bbd483b1bfe5eede15539a0aacfedad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0bbd483b1bfe5eede15539a0aacfedad">&#9670;&nbsp;</a></span>guac_audio_stream_reset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_reset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>audio</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td>
+          <td class="paramname"><em>encoder</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>rate</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>channels</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>bps</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample. </p>
+<p>If NULL is specified for the encoder, the encoder is left unchanged. If the encoder, rate, channels, and bits per sample are all identical to the current settings, this function has no effect.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">audio</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> to reset.</td></tr>
+    <tr><td class="paramname">encoder</td><td>The <a class="el" href="structguac__audio__encoder.html" title="Arbitrary audio codec encoder. ">guac_audio_encoder</a> to use when encoding audio, or NULL to leave this unchanged.</td></tr>
+    <tr><td class="paramname">rate</td><td>The number of samples per second of PCM data sent to this stream.</td></tr>
+    <tr><td class="paramname">channels</td><td>The number of audio channels per sample of PCM data. Legal values are 1 or 2.</td></tr>
+    <tr><td class="paramname">bps</td><td>The number of bits per sample per channel for PCM data. Legal values are 8 or 16. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a11bdfee60584106ba85d97a3f8273cc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a11bdfee60584106ba85d97a3f8273cc2">&#9670;&nbsp;</a></span>guac_audio_stream_write_pcm()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_audio_stream_write_pcm </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const unsigned char *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes PCM data to the given audio stream. </p>
+<p>This PCM data will be automatically encoded by the audio encoder associated with this stream. The PCM data must be 2-channel, 44100 Hz, with signed 16-bit samples.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__audio__stream.html" title="Basic audio stream. ">guac_audio_stream</a> to write PCM data through.</td></tr>
+    <tr><td class="paramname">data</td><td>The PCM data to write.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes of PCM data provided. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/audio_8h_source.html b/doc/1.1.0/libguac/audio_8h_source.html
new file mode 100644
index 0000000..62bcac4
--- /dev/null
+++ b/doc/1.1.0/libguac/audio_8h_source.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/audio.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">audio.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="audio_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef __GUAC_AUDIO_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define __GUAC_AUDIO_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-fntypes_8h.html">audio-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="audio-types_8h.html">audio-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html">   35</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a> {</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">   41</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">mimetype</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">   46</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a>* <a class="code" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">begin_handler</a>;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">   52</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a>* <a class="code" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">write_handler</a>;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">   57</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a>* <a class="code" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">flush_handler</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">   62</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a>* <a class="code" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">end_handler</a>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">   68</a></span>&#160;    <a class="code" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a>* <a class="code" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">join_handler</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html">   72</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__audio__stream.html">guac_audio_stream</a> {</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">   77</a></span>&#160;    <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* <a class="code" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">encoder</a>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">   82</a></span>&#160;    <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">client</a>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">   87</a></span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">stream</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">   92</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">rate</a>;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">   98</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">channels</a>;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">  104</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">bps</a>;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">  109</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">data</a>;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;};</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* <a class="code" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* encoder, <span class="keywordtype">int</span> rate, <span class="keywordtype">int</span> channels, <span class="keywordtype">int</span> bps);</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio,</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <a class="code" href="structguac__audio__encoder.html">guac_audio_encoder</a>* encoder, <span class="keywordtype">int</span> rate, <span class="keywordtype">int</span> channels, <span class="keywordtype">int</span> bps);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* audio, <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream);</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream,</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="keywordtype">void</span> <a class="code" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a>(<a class="code" href="structguac__audio__stream.html">guac_audio_stream</a>* stream);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="ttc" id="audio-fntypes_8h_html_aa29dc3999c06e82c20d7a5e5d1e1565d"><div class="ttname"><a href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a></div><div class="ttdeci">void guac_audio_encoder_end_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is closed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:54</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a1de1be8874fb844002b92ac1e3813866"><div class="ttname"><a href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream::bps</a></div><div class="ttdeci">int bps</div><div class="ttdoc">The number of bits per sample per channel for PCM data. </div><div class="ttdef"><b>Definition:</b> audio.h:104</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_aef4ad4f1c298ac8e11fa69f13347c5a0"><div class="ttname"><a href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder::flush_handler</a></div><div class="ttdeci">guac_audio_encoder_flush_handler * flush_handler</div><div class="ttdoc">Handler which will be called when the audio stream is flushed. </div><div class="ttdef"><b>Definition:</b> audio.h:57</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a8736cc2b634df9c222cf09dcc6507162"><div class="ttname"><a href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a></div><div class="ttdeci">void guac_audio_encoder_flush_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream needs to be flushed. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:46</div></div>
+<div class="ttc" id="structguac__audio__stream_html_af3b4811ba5a4f1a337d338777fe9049d"><div class="ttname"><a href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream::encoder</a></div><div class="ttdeci">guac_audio_encoder * encoder</div><div class="ttdoc">Arbitrary codec encoder which will receive raw PCM data. </div><div class="ttdef"><b>Definition:</b> audio.h:77</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a43d161556d3d55031ea486cc8b4ce3f6"><div class="ttname"><a href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder::begin_handler</a></div><div class="ttdeci">guac_audio_encoder_begin_handler * begin_handler</div><div class="ttdoc">Handler which will be called when the audio stream is first created. </div><div class="ttdef"><b>Definition:</b> audio.h:46</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="audio_8h_html_a11bdfee60584106ba85d97a3f8273cc2"><div class="ttname"><a href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">guac_audio_stream_write_pcm</a></div><div class="ttdeci">void guac_audio_stream_write_pcm(guac_audio_stream *stream, const unsigned char *data, int length)</div><div class="ttdoc">Writes PCM data to the given audio stream. </div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="audio-fntypes_8h_html"><div class="ttname"><a href="audio-fntypes_8h.html">audio-fntypes.h</a></div><div class="ttdoc">Function type definitions related to simple streaming audio. </div></div>
+<div class="ttc" id="structguac__audio__encoder_html_af2d0f6c14a6a30e4f91240865a680e5b"><div class="ttname"><a href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder::join_handler</a></div><div class="ttdeci">guac_audio_encoder_join_handler * join_handler</div><div class="ttdoc">Handler which will be called when a new user joins the Guacamole connection associated with an audio ...</div><div class="ttdef"><b>Definition:</b> audio.h:68</div></div>
+<div class="ttc" id="audio_8h_html_a2b8e2f05a19b137454832a5dbc6c3864"><div class="ttname"><a href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">guac_audio_stream_add_user</a></div><div class="ttdeci">void guac_audio_stream_add_user(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Notifies the given audio stream that a user has joined the connection. </div></div>
+<div class="ttc" id="structguac__audio__stream_html_a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><div class="ttname"><a href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The client associated with this audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:82</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a57fe16e56c1c115b2321e50b9d9ce11a"><div class="ttname"><a href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a></div><div class="ttdeci">void guac_audio_encoder_write_handler(guac_audio_stream *audio, const unsigned char *pcm_data, int length)</div><div class="ttdoc">Handler which is called when PCM data is written to the audio stream. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:84</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a1b74c3dd402b0a6afa5f5b9000d02c74"><div class="ttname"><a href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder::write_handler</a></div><div class="ttdeci">guac_audio_encoder_write_handler * write_handler</div><div class="ttdoc">Handler which will be called when PCM data is written to the audio stream for encoding. </div><div class="ttdef"><b>Definition:</b> audio.h:52</div></div>
+<div class="ttc" id="audio_8h_html_af75feccacea2b14ee946064cf623f143"><div class="ttname"><a href="audio_8h.html#af75feccacea2b14ee946064cf623f143">guac_audio_stream_flush</a></div><div class="ttdeci">void guac_audio_stream_flush(guac_audio_stream *stream)</div><div class="ttdoc">Flushes the underlying audio buffer, if any, ensuring that all audio previously written via guac_audi...</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a9d1fac87cc2ee072112d9d65d43ae70e"><div class="ttname"><a href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a></div><div class="ttdeci">void guac_audio_encoder_join_handler(guac_audio_stream *audio, guac_user *user)</div><div class="ttdoc">Handler which is called when a new user has joined the Guacamole connection associated with the audio...</div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:67</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a4d8f5cfc70ec54b97ba0c4eea596f894"><div class="ttname"><a href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream::stream</a></div><div class="ttdeci">guac_stream * stream</div><div class="ttdoc">The actual stream associated with this audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:87</div></div>
+<div class="ttc" id="audio_8h_html_adcc872292b5ba6c39905610b2bccbf31"><div class="ttname"><a href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">guac_audio_stream_free</a></div><div class="ttdeci">void guac_audio_stream_free(guac_audio_stream *stream)</div><div class="ttdoc">Closes and frees the given audio stream. </div></div>
+<div class="ttc" id="structguac__audio__stream_html_a9ca03221b02d1206eb698f8ee936c4b7"><div class="ttname"><a href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Encoder-specific state data. </div><div class="ttdef"><b>Definition:</b> audio.h:109</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="audio-types_8h_html"><div class="ttname"><a href="audio-types_8h.html">audio-types.h</a></div><div class="ttdoc">Type definitions related to simple streaming audio. </div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a51b8bfeae3709c1859710cbf1039e01b"><div class="ttname"><a href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder::mimetype</a></div><div class="ttdeci">const char * mimetype</div><div class="ttdoc">The mimetype of the audio data encoded by this audio encoder. </div><div class="ttdef"><b>Definition:</b> audio.h:41</div></div>
+<div class="ttc" id="structguac__audio__stream_html"><div class="ttname"><a href="structguac__audio__stream.html">guac_audio_stream</a></div><div class="ttdoc">Basic audio stream. </div><div class="ttdef"><b>Definition:</b> audio.h:72</div></div>
+<div class="ttc" id="audio_8h_html_afc1fc0133504e718edf4756fac5e9c30"><div class="ttname"><a href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">guac_audio_stream_alloc</a></div><div class="ttdeci">guac_audio_stream * guac_audio_stream_alloc(guac_client *client, guac_audio_encoder *encoder, int rate, int channels, int bps)</div><div class="ttdoc">Allocates a new audio stream at the client level which encodes audio data using the given encoder...</div></div>
+<div class="ttc" id="audio_8h_html_a0bbd483b1bfe5eede15539a0aacfedad"><div class="ttname"><a href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">guac_audio_stream_reset</a></div><div class="ttdeci">void guac_audio_stream_reset(guac_audio_stream *audio, guac_audio_encoder *encoder, int rate, int channels, int bps)</div><div class="ttdoc">Resets the given audio stream, switching to the given encoder, rate, channels, and bits per sample...</div></div>
+<div class="ttc" id="structguac__audio__stream_html_a6810293a6fa915e497d2dd1a643993d9"><div class="ttname"><a href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream::rate</a></div><div class="ttdeci">int rate</div><div class="ttdoc">The number of samples per second of PCM data sent to this stream. </div><div class="ttdef"><b>Definition:</b> audio.h:92</div></div>
+<div class="ttc" id="structguac__audio__encoder_html"><div class="ttname"><a href="structguac__audio__encoder.html">guac_audio_encoder</a></div><div class="ttdoc">Arbitrary audio codec encoder. </div><div class="ttdef"><b>Definition:</b> audio.h:35</div></div>
+<div class="ttc" id="structguac__audio__encoder_html_a6fbc4f8efe14c9a119fdfaaef78f7e92"><div class="ttname"><a href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder::end_handler</a></div><div class="ttdeci">guac_audio_encoder_end_handler * end_handler</div><div class="ttdoc">Handler which will be called when the audio stream is closed. </div><div class="ttdef"><b>Definition:</b> audio.h:62</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__audio__stream_html_af9d1ad90194e24c2967e2f9f18de0ad6"><div class="ttname"><a href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream::channels</a></div><div class="ttdeci">int channels</div><div class="ttdoc">The number of audio channels per sample of PCM data. </div><div class="ttdef"><b>Definition:</b> audio.h:98</div></div>
+<div class="ttc" id="audio-fntypes_8h_html_a0b14abed1928c4e00129c7b87e391816"><div class="ttname"><a href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a></div><div class="ttdeci">void guac_audio_encoder_begin_handler(guac_audio_stream *audio)</div><div class="ttdoc">Handler which is called when the audio stream is opened. </div><div class="ttdef"><b>Definition:</b> audio-fntypes.h:38</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/bc_s.png b/doc/1.1.0/libguac/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/doc/1.1.0/libguac/bc_s.png
Binary files differ
diff --git a/doc/1.1.0/libguac/bdwn.png b/doc/1.1.0/libguac/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/doc/1.1.0/libguac/bdwn.png
Binary files differ
diff --git a/doc/1.1.0/libguac/classes.html b/doc/1.1.0/libguac/classes.html
new file mode 100644
index 0000000..f876886
--- /dev/null
+++ b/doc/1.1.0/libguac/classes.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Structure Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structure Index</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a></div>
+<table class="classindex">
+<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
+</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__stream.html">guac_stream</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__layer.html">guac_layer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__parser.html">guac_parser</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_u"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;u&#160;&#160;</div></td></tr></table>
+</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__audio__stream.html">guac_audio_stream</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__pool.html">guac_pool</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__pool__int.html">guac_pool_int</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structguac__user.html">guac_user</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__object.html">guac_object</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structguac__user__info.html">guac_user_info</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="structguac__client.html">guac_client</a>&#160;&#160;&#160;</td><td></td><td></td><td></td></tr>
+<tr><td></td><td></td><td valign="top"><a class="el" href="structguac__socket.html">guac_socket</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_l">l</a>&#160;|&#160;<a class="qindex" href="#letter_o">o</a>&#160;|&#160;<a class="qindex" href="#letter_p">p</a>&#160;|&#160;<a class="qindex" href="#letter_s">s</a>&#160;|&#160;<a class="qindex" href="#letter_u">u</a></div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-constants_8h.html b/doc/1.1.0/libguac/client-constants_8h.html
new file mode 100644
index 0000000..62b12bb
--- /dev/null
+++ b/doc/1.1.0/libguac/client-constants_8h.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">client-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ad9f977643c5ffee5c1eeb426664796a1"><td class="memItemLeft" align="right" valign="top"><a id="ad9f977643c5ffee5c1eeb426664796a1"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">GUAC_CLIENT_MAX_STREAMS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:ad9f977643c5ffee5c1eeb426664796a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of inbound or outbound streams supported by any one <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:ad9f977643c5ffee5c1eeb426664796a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fda25106c4c454c22db2c7e042ee142"><td class="memItemLeft" align="right" valign="top"><a id="a6fda25106c4c454c22db2c7e042ee142"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">GUAC_CLIENT_CLOSED_STREAM_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:a6fda25106c4c454c22db2c7e042ee142"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of a closed stream. <br /></td></tr>
+<tr class="separator:a6fda25106c4c454c22db2c7e042ee142"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="memItemLeft" align="right" valign="top"><a id="a8e2b48136e5c358e012a1558d5e5f0c2"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">GUAC_CLIENT_ID_PREFIX</a>&#160;&#160;&#160;'$'</td></tr>
+<tr class="memdesc:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The character prefix which identifies a client ID. <br /></td></tr>
+<tr class="separator:a8e2b48136e5c358e012a1558d5e5f0c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="memItemLeft" align="right" valign="top"><a id="a4bb4f5b852ac8c3e2d3c89cd5e63efd2"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">GUAC_CLIENT_MOUSE_LEFT</a>&#160;&#160;&#160;0x01</td></tr>
+<tr class="memdesc:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the left mouse button is down. <br /></td></tr>
+<tr class="separator:a4bb4f5b852ac8c3e2d3c89cd5e63efd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad14c5f1800aac863bbebcd676c5c2124"><td class="memItemLeft" align="right" valign="top"><a id="ad14c5f1800aac863bbebcd676c5c2124"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">GUAC_CLIENT_MOUSE_MIDDLE</a>&#160;&#160;&#160;0x02</td></tr>
+<tr class="memdesc:ad14c5f1800aac863bbebcd676c5c2124"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the middle mouse button is down. <br /></td></tr>
+<tr class="separator:ad14c5f1800aac863bbebcd676c5c2124"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88917d2d7143a483c219eee62fd6317f"><td class="memItemLeft" align="right" valign="top"><a id="a88917d2d7143a483c219eee62fd6317f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">GUAC_CLIENT_MOUSE_RIGHT</a>&#160;&#160;&#160;0x04</td></tr>
+<tr class="memdesc:a88917d2d7143a483c219eee62fd6317f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the right mouse button is down. <br /></td></tr>
+<tr class="separator:a88917d2d7143a483c219eee62fd6317f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a134afd8a0d8f10a34af51fc70981e39d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">GUAC_CLIENT_MOUSE_SCROLL_UP</a>&#160;&#160;&#160;0x08</td></tr>
+<tr class="memdesc:a134afd8a0d8f10a34af51fc70981e39d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the mouse scrollwheel is scrolled up.  <a href="#a134afd8a0d8f10a34af51fc70981e39d">More...</a><br /></td></tr>
+<tr class="separator:a134afd8a0d8f10a34af51fc70981e39d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a771231574e9d303aa08fc1cecc9069f0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a>&#160;&#160;&#160;0x10</td></tr>
+<tr class="memdesc:a771231574e9d303aa08fc1cecc9069f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">The flag set in the mouse button mask when the mouse scrollwheel is scrolled down.  <a href="#a771231574e9d303aa08fc1cecc9069f0">More...</a><br /></td></tr>
+<tr class="separator:a771231574e9d303aa08fc1cecc9069f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8a296e1032ff408ab141b0765fb9bfb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">GUAC_BUFFER_POOL_INITIAL_SIZE</a>&#160;&#160;&#160;1024</td></tr>
+<tr class="memdesc:aa8a296e1032ff408ab141b0765fb9bfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of buffers to create before allowing free'd buffers to be reclaimed.  <a href="#aa8a296e1032ff408ab141b0765fb9bfb">More...</a><br /></td></tr>
+<tr class="separator:aa8a296e1032ff408ab141b0765fb9bfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="aa8a296e1032ff408ab141b0765fb9bfb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8a296e1032ff408ab141b0765fb9bfb">&#9670;&nbsp;</a></span>GUAC_BUFFER_POOL_INITIAL_SIZE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_BUFFER_POOL_INITIAL_SIZE&#160;&#160;&#160;1024</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The minimum number of buffers to create before allowing free'd buffers to be reclaimed. </p>
+<p>In the case a protocol rapidly creates, uses, and destroys buffers, this can prevent unnecessary reuse of the same buffer (which would make draw operations unnecessarily synchronous). </p>
+
+</div>
+</div>
+<a id="a771231574e9d303aa08fc1cecc9069f0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a771231574e9d303aa08fc1cecc9069f0">&#9670;&nbsp;</a></span>GUAC_CLIENT_MOUSE_SCROLL_DOWN</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_CLIENT_MOUSE_SCROLL_DOWN&#160;&#160;&#160;0x10</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The flag set in the mouse button mask when the mouse scrollwheel is scrolled down. </p>
+<p>Note that mouse scrollwheels are actually sets of two buttons. One button is pressed and released for an upward scroll, and the other is pressed and released for a downward scroll. Some mice may actually implement these as separate buttons, not a wheel. </p>
+
+</div>
+</div>
+<a id="a134afd8a0d8f10a34af51fc70981e39d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a134afd8a0d8f10a34af51fc70981e39d">&#9670;&nbsp;</a></span>GUAC_CLIENT_MOUSE_SCROLL_UP</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_CLIENT_MOUSE_SCROLL_UP&#160;&#160;&#160;0x08</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The flag set in the mouse button mask when the mouse scrollwheel is scrolled up. </p>
+<p>Note that mouse scrollwheels are actually sets of two buttons. One button is pressed and released for an upward scroll, and the other is pressed and released for a downward scroll. Some mice may actually implement these as separate buttons, not a wheel. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-constants_8h_source.html b/doc/1.1.0/libguac/client-constants_8h_source.html
new file mode 100644
index 0000000..4372482
--- /dev/null
+++ b/doc/1.1.0/libguac/client-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">   33</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MAX_STREAMS 64</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">   38</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_CLOSED_STREAM_INDEX -1</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">   43</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_ID_PREFIX &#39;$&#39;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">   48</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_LEFT 0x01</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">   53</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_MIDDLE 0x02</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">   58</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_RIGHT 0x04</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">   67</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_SCROLL_UP 0x08</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">   76</a></span>&#160;<span class="preprocessor">#define GUAC_CLIENT_MOUSE_SCROLL_DOWN 0x10</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">   84</a></span>&#160;<span class="preprocessor">#define GUAC_BUFFER_POOL_INITIAL_SIZE 1024</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-fntypes_8h.html b/doc/1.1.0/libguac/client-fntypes_8h.html
new file mode 100644
index 0000000..8cf8fdc
--- /dev/null
+++ b/doc/1.1.0/libguac/client-fntypes_8h.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">client-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a7f8c6986f3db9818d016eee6fa562577"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a7f8c6986f3db9818d016eee6fa562577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for freeing up any extra data allocated by the client implementation.  <a href="#a7f8c6986f3db9818d016eee6fa562577">More...</a><br /></td></tr>
+<tr class="separator:a7f8c6986f3db9818d016eee6fa562577"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23837e22dbfe152719d596e6918bad3c"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list args)</td></tr>
+<tr class="memdesc:a23837e22dbfe152719d596e6918bad3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for logging messages related to a given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> instance.  <a href="#a23837e22dbfe152719d596e6918bad3c">More...</a><br /></td></tr>
+<tr class="separator:a23837e22dbfe152719d596e6918bad3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a905b087a47315e1836293839daf1f46c"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a>(<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a905b087a47315e1836293839daf1f46c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The entry point of a client plugin which must initialize the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  <a href="#a905b087a47315e1836293839daf1f46c">More...</a><br /></td></tr>
+<tr class="separator:a905b087a47315e1836293839daf1f46c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a7f8c6986f3db9818d016eee6fa562577"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f8c6986f3db9818d016eee6fa562577">&#9670;&nbsp;</a></span>guac_client_free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_client_free_handler(<a class="el" href="structguac__client.html">guac_client</a> *client)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for freeing up any extra data allocated by the client implementation. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client whose extra data should be freed (if any).</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the data was successfully freed, non-zero if an error prevents the data from being freed. </dd></dl>
+
+</div>
+</div>
+<a id="a905b087a47315e1836293839daf1f46c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a905b087a47315e1836293839daf1f46c">&#9670;&nbsp;</a></span>guac_client_init_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_client_init_handler(<a class="el" href="structguac__client.html">guac_client</a> *client)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The entry point of a client plugin which must initialize the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+<p>In practice, this function will be called "guac_client_init".</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> that must be initialized.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero if initialization fails for any reason. </dd></dl>
+
+</div>
+</div>
+<a id="a23837e22dbfe152719d596e6918bad3c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a23837e22dbfe152719d596e6918bad3c">&#9670;&nbsp;</a></span>guac_client_log_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_client_log_handler(<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list args)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for logging messages related to a given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> instance. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client related to the message being logged.</td></tr>
+    <tr><td class="paramname">level</td><td>The log level at which to log the given message.</td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string, defining the message to be logged.</td></tr>
+    <tr><td class="paramname">args</td><td>The va_list containing the arguments to be used when filling the conversion specifiers ("%s", "%i", etc.) within the format string. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-fntypes_8h_source.html b/doc/1.1.0/libguac/client-fntypes_8h_source.html
new file mode 100644
index 0000000..d8af5f6
--- /dev/null
+++ b/doc/1.1.0/libguac/client-fntypes_8h_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">   49</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">   67</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list args);</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">   80</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="client-fntypes_8h_html_a7f8c6986f3db9818d016eee6fa562577"><div class="ttname"><a href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a></div><div class="ttdeci">int guac_client_free_handler(guac_client *client)</div><div class="ttdoc">Handler for freeing up any extra data allocated by the client implementation. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:49</div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol. </div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a905b087a47315e1836293839daf1f46c"><div class="ttname"><a href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">guac_client_init_handler</a></div><div class="ttdeci">int guac_client_init_handler(guac_client *client)</div><div class="ttdoc">The entry point of a client plugin which must initialize the given guac_client. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:80</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a23837e22dbfe152719d596e6918bad3c"><div class="ttname"><a href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a></div><div class="ttdeci">void guac_client_log_handler(guac_client *client, guac_client_log_level level, const char *format, va_list args)</div><div class="ttdoc">Handler for logging messages related to a given guac_client instance. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:67</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-types_8h.html b/doc/1.1.0/libguac/client-types_8h.html
new file mode 100644
index 0000000..553e9ce
--- /dev/null
+++ b/doc/1.1.0/libguac/client-types_8h.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">client-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="client-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a6f7e91d6dcb20598953948f077910c3b"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> { <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a>, 
+<a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a>
+ }</td></tr>
+<tr class="memdesc:a6f7e91d6dcb20598953948f077910c3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible current states of the Guacamole client.  <a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">More...</a><br /></td></tr>
+<tr class="separator:a6f7e91d6dcb20598953948f077910c3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfeeb4ff06541220c91ce3401d840727"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> { <br />
+&#160;&#160;<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a> = 3, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a> = 4, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a> = 6, 
+<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a> = 7, 
+<br />
+&#160;&#160;<a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a> = 8
+<br />
+ }</td></tr>
+<tr class="memdesc:adfeeb4ff06541220c91ce3401d840727"><td class="mdescLeft">&#160;</td><td class="mdescRight">All supported log levels used by the logging subsystem of each Guacamole client.  <a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">More...</a><br /></td></tr>
+<tr class="separator:adfeeb4ff06541220c91ce3401d840727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="adfeeb4ff06541220c91ce3401d840727"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adfeeb4ff06541220c91ce3401d840727">&#9670;&nbsp;</a></span>guac_client_log_level</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>All supported log levels used by the logging subsystem of each Guacamole client. </p>
+<p>With the exception of GUAC_LOG_TRACE, these log levels correspond to a subset of the log levels defined by RFC 5424. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c"></a>GUAC_LOG_ERROR&#160;</td><td class="fielddoc"><p>Fatal errors. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be"></a>GUAC_LOG_WARNING&#160;</td><td class="fielddoc"><p>Non-fatal conditions that indicate problems. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29"></a>GUAC_LOG_INFO&#160;</td><td class="fielddoc"><p>Informational messages of general interest to users or administrators. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b"></a>GUAC_LOG_DEBUG&#160;</td><td class="fielddoc"><p>Informational messages which can be useful for debugging, but are otherwise not useful to users or administrators. </p>
+<p>It is expected that debug level messages, while verbose, will not negatively affect performance. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb"></a>GUAC_LOG_TRACE&#160;</td><td class="fielddoc"><p>Informational messages which can be useful for debugging, like GUAC_LOG_DEBUG, but which are so low-level that they may affect performance. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a6f7e91d6dcb20598953948f077910c3b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f7e91d6dcb20598953948f077910c3b">&#9670;&nbsp;</a></span>guac_client_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Possible current states of the Guacamole client. </p>
+<p>Currently, the only two states are GUAC_CLIENT_RUNNING and GUAC_CLIENT_STOPPING. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0"></a>GUAC_CLIENT_RUNNING&#160;</td><td class="fielddoc"><p>The state of the client from when it has been allocated by the main daemon until it is killed or disconnected. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd"></a>GUAC_CLIENT_STOPPING&#160;</td><td class="fielddoc"><p>The state of the client when a stop has been requested, signalling the I/O threads to shutdown. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client-types_8h_source.html b/doc/1.1.0/libguac/client-types_8h_source.html
new file mode 100644
index 0000000..9c9554a
--- /dev/null
+++ b/doc/1.1.0/libguac/client-types_8h_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__client.html">guac_client</a> <a class="code" href="structguac__client.html">guac_client</a>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">   41</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> {</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">   47</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a>,</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">   53</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;} <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">   62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> {</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">   67</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a> = 3,</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">   72</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a> = 4,</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">   77</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a> = 6,</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">   85</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a> = 7,</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">   92</a></span>&#160;    <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a> = 8</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;} <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">GUAC_LOG_WARNING</a></div><div class="ttdoc">Non-fatal conditions that indicate problems. </div><div class="ttdef"><b>Definition:</b> client-types.h:72</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">GUAC_LOG_TRACE</a></div><div class="ttdoc">Informational messages which can be useful for debugging, like GUAC_LOG_DEBUG, but which are so low-l...</div><div class="ttdef"><b>Definition:</b> client-types.h:92</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3b"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></div><div class="ttdeci">guac_client_state</div><div class="ttdoc">Possible current states of the Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:41</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">GUAC_CLIENT_RUNNING</a></div><div class="ttdoc">The state of the client from when it has been allocated by the main daemon until it is killed or disc...</div><div class="ttdef"><b>Definition:</b> client-types.h:47</div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">GUAC_CLIENT_STOPPING</a></div><div class="ttdoc">The state of the client when a stop has been requested, signalling the I/O threads to shutdown...</div><div class="ttdef"><b>Definition:</b> client-types.h:53</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">GUAC_LOG_INFO</a></div><div class="ttdoc">Informational messages of general interest to users or administrators. </div><div class="ttdef"><b>Definition:</b> client-types.h:77</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">GUAC_LOG_ERROR</a></div><div class="ttdoc">Fatal errors. </div><div class="ttdef"><b>Definition:</b> client-types.h:67</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">GUAC_LOG_DEBUG</a></div><div class="ttdoc">Informational messages which can be useful for debugging, but are otherwise not useful to users or ad...</div><div class="ttdef"><b>Definition:</b> client-types.h:85</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client_8h.html b/doc/1.1.0/libguac/client_8h.html
new file mode 100644
index 0000000..7cc6c27
--- /dev/null
+++ b/doc/1.1.0/libguac/client_8h.html
@@ -0,0 +1,1336 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">client.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Functions and structure contents for the Guacamole proxy client.  
+<a href="#details">More...</a></p>
+
+<p><a href="client_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html">guac_client</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Guacamole proxy client.  <a href="structguac__client.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a> ()</td></tr>
+<tr class="memdesc:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a new, barebones <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  <a href="#a33bad42d21ccb561aa71c4f04ae9b22a">More...</a><br /></td></tr>
+<tr class="separator:a33bad42d21ccb561aa71c4f04ae9b22a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76cdc454a23fdcbb70d56f923f6b6427"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a76cdc454a23fdcbb70d56f923f6b6427"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free all resources associated with the given client.  <a href="#a76cdc454a23fdcbb70d56f923f6b6427">More...</a><br /></td></tr>
+<tr class="separator:a76cdc454a23fdcbb70d56f923f6b6427"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad53666bbe29346497cabb04fc9628208"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format,...)</td></tr>
+<tr class="memdesc:ad53666bbe29346497cabb04fc9628208"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given client.  <a href="#ad53666bbe29346497cabb04fc9628208">More...</a><br /></td></tr>
+<tr class="separator:ad53666bbe29346497cabb04fc9628208"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a37a0fa9cfc4c02236085e3852972f494"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:a37a0fa9cfc4c02236085e3852972f494"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given client.  <a href="#a37a0fa9cfc4c02236085e3852972f494">More...</a><br /></td></tr>
+<tr class="separator:a37a0fa9cfc4c02236085e3852972f494"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a022d4b5587c84f2963b176ab7999aa1b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a022d4b5587c84f2963b176ab7999aa1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully.  <a href="#a022d4b5587c84f2963b176ab7999aa1b">More...</a><br /></td></tr>
+<tr class="separator:a022d4b5587c84f2963b176ab7999aa1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a62a29f7820deaff00a10ec79aa81aed4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format,...)</td></tr>
+<tr class="memdesc:a62a29f7820deaff00a10ec79aa81aed4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a62a29f7820deaff00a10ec79aa81aed4">More...</a><br /></td></tr>
+<tr class="separator:a62a29f7820deaff00a10ec79aa81aed4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a4c0eccd7d0ed3dbf3e7941ce297e0224">More...</a><br /></td></tr>
+<tr class="separator:a4c0eccd7d0ed3dbf3e7941ce297e0224"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af661d3fedd9683631bdc7d1e3205e379"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:af661d3fedd9683631bdc7d1e3205e379"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new buffer (invisible layer).  <a href="#af661d3fedd9683631bdc7d1e3205e379">More...</a><br /></td></tr>
+<tr class="separator:af661d3fedd9683631bdc7d1e3205e379"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2085758db585bb9d09d3860ec0fc9587"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a2085758db585bb9d09d3860ec0fc9587"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new layer.  <a href="#a2085758db585bb9d09d3860ec0fc9587">More...</a><br /></td></tr>
+<tr class="separator:a2085758db585bb9d09d3860ec0fc9587"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc03a32b3113d9a95700cac54f1cbd4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:afc03a32b3113d9a95700cac54f1cbd4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given buffer to the pool of available buffers, such that it can be reused by any subsequent call to guac_client_allow_buffer().  <a href="#afc03a32b3113d9a95700cac54f1cbd4b">More...</a><br /></td></tr>
+<tr class="separator:afc03a32b3113d9a95700cac54f1cbd4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4e5b374211012d1897792335112dcb89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a4e5b374211012d1897792335112dcb89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given layer to the pool of available layers, such that it can be reused by any subsequent call to guac_client_allow_layer().  <a href="#a4e5b374211012d1897792335112dcb89">More...</a><br /></td></tr>
+<tr class="separator:a4e5b374211012d1897792335112dcb89"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new stream.  <a href="#a1bea3499e21736b4ea0fb949d3bc8ab9">More...</a><br /></td></tr>
+<tr class="separator:a1bea3499e21736b4ea0fb949d3bc8ab9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af0103a5aae8ba76badd2e68e827f6782"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:af0103a5aae8ba76badd2e68e827f6782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9" title="Allocates a new stream. ">guac_client_alloc_stream()</a>.  <a href="#af0103a5aae8ba76badd2e68e827f6782">More...</a><br /></td></tr>
+<tr class="separator:af0103a5aae8ba76badd2e68e827f6782"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af66d105dfd1453ec46b423e6b25fa371"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td></tr>
+<tr class="memdesc:af66d105dfd1453ec46b423e6b25fa371"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the given user to the internal list of connected users.  <a href="#af66d105dfd1453ec46b423e6b25fa371">More...</a><br /></td></tr>
+<tr class="separator:af66d105dfd1453ec46b423e6b25fa371"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02832d5be5330dc3de524b497b7c6dfa"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a02832d5be5330dc3de524b497b7c6dfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given user, removing the user from the internally-tracked list of connected users, and calling any appropriate leave handler.  <a href="#a02832d5be5330dc3de524b497b7c6dfa">More...</a><br /></td></tr>
+<tr class="separator:a02832d5be5330dc3de524b497b7c6dfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af652f3db0f89d488cef6d90f612a2077"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:af652f3db0f89d488cef6d90f612a2077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function on all currently-connected users of the given client.  <a href="#af652f3db0f89d488cef6d90f612a2077">More...</a><br /></td></tr>
+<tr class="separator:af652f3db0f89d488cef6d90f612a2077"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function with the currently-connected user that is marked as the owner.  <a href="#af3f4ed85d98b16376e2cdc031ff1b44a">More...</a><br /></td></tr>
+<tr class="separator:af3f4ed85d98b16376e2cdc031ff1b44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7fbba296d1ec3e78dc4b79884f590a03"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *callback, void *data)</td></tr>
+<tr class="memdesc:a7fbba296d1ec3e78dc4b79884f590a03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calls the given function with the given user ONLY if they are currently connected.  <a href="#a7fbba296d1ec3e78dc4b79884f590a03">More...</a><br /></td></tr>
+<tr class="separator:a7fbba296d1ec3e78dc4b79884f590a03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the end of the current frame by sending a "sync" instruction to all connected users.  <a href="#a686fc65f5b1afcc3f3b53e36cd1a2ebc">More...</a><br /></td></tr>
+<tr class="separator:a686fc65f5b1afcc3f3b53e36cd1a2ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa2b90d686c56cf753c36718ec085f35"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, const char *protocol)</td></tr>
+<tr class="memdesc:afa2b90d686c56cf753c36718ec085f35"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> using the initialization routine provided by the plugin corresponding to the named protocol.  <a href="#afa2b90d686c56cf753c36718ec085f35">More...</a><br /></td></tr>
+<tr class="separator:afa2b90d686c56cf753c36718ec085f35"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates and returns the approximate processing lag experienced by the pool of users.  <a href="#aa2b94b3145fcebf2d7b1999df11d0b2c">More...</a><br /></td></tr>
+<tr class="separator:aa2b94b3145fcebf2d7b1999df11d0b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *mimetype, const char *name, const char *value)</td></tr>
+<tr class="memdesc:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to all users of the given client.  <a href="#a6c9d8717d4b8eaa50dbd7301af27a06f">More...</a><br /></td></tr>
+<tr class="separator:a6c9d8717d4b8eaa50dbd7301af27a06f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a317b9d79afd0b0b473d7d359e0c33750"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:a317b9d79afd0b0b473d7d359e0c33750"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data.  <a href="#a317b9d79afd0b0b473d7d359e0c33750">More...</a><br /></td></tr>
+<tr class="separator:a317b9d79afd0b0b473d7d359e0c33750"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality)</td></tr>
+<tr class="memdesc:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality.  <a href="#aa51ede155ad7777bc8d2e82aa6e779bf">More...</a><br /></td></tr>
+<tr class="separator:aa51ede155ad7777bc8d2e82aa6e779bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a> (<a class="el" href="structguac__client.html">guac_client</a> *client, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</td></tr>
+<tr class="memdesc:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality.  <a href="#a55adbd5ee8f27c4df4394dbb5bf9416e">More...</a><br /></td></tr>
+<tr class="separator:a55adbd5ee8f27c4df4394dbb5bf9416e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79cc74558e8f64807ea2847fbacd20e3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a79cc74558e8f64807ea2847fbacd20e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether all users of the given client support WebP.  <a href="#a79cc74558e8f64807ea2847fbacd20e3">More...</a><br /></td></tr>
+<tr class="separator:a79cc74558e8f64807ea2847fbacd20e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:a336a485c006394d5eea88bf6d8d422d8"><td class="memItemLeft" align="right" valign="top"><a id="a336a485c006394d5eea88bf6d8d422d8"></a>
+const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a></td></tr>
+<tr class="memdesc:a336a485c006394d5eea88bf6d8d422d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">The default Guacamole client layer, layer 0. <br /></td></tr>
+<tr class="separator:a336a485c006394d5eea88bf6d8d422d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Functions and structure contents for the Guacamole proxy client. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a62a29f7820deaff00a10ec79aa81aed4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a62a29f7820deaff00a10ec79aa81aed4">&#9670;&nbsp;</a></span>guac_client_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the client or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af66d105dfd1453ec46b423e6b25fa371"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af66d105dfd1453ec46b423e6b25fa371">&#9670;&nbsp;</a></span>guac_client_add_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_add_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>argv</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Adds the given user to the internal list of connected users. </p>
+<p>Future writes to the broadcast socket stored within <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> will also write to this user. The join handler of this <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> will be called.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to add the user to. </td></tr>
+    <tr><td class="paramname">user</td><td>The user to add. </td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments to pass to the new user. </td></tr>
+    <tr><td class="paramname">argv</td><td>An array of strings containing the argument values being passed. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user was added successfully, non-zero if the user could not join the connection. </dd></dl>
+
+</div>
+</div>
+<a id="a33bad42d21ccb561aa71c4f04ae9b22a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a33bad42d21ccb561aa71c4f04ae9b22a">&#9670;&nbsp;</a></span>guac_client_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__client.html">guac_client</a>* guac_client_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a new, barebones <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+<p>This new <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> has no handlers set, but is otherwise usable.</p>
+<dl class="section return"><dt>Returns</dt><dd>A pointer to the new client. </dd></dl>
+
+</div>
+</div>
+<a id="af661d3fedd9683631bdc7d1e3205e379"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af661d3fedd9683631bdc7d1e3205e379">&#9670;&nbsp;</a></span>guac_client_alloc_buffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__layer.html">guac_layer</a>* guac_client_alloc_buffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new buffer (invisible layer). </p>
+<p>An arbitrary index is automatically assigned if no existing buffer is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to allocate the buffer for. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available buffer, or a newly allocated buffer. </dd></dl>
+
+</div>
+</div>
+<a id="a2085758db585bb9d09d3860ec0fc9587"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2085758db585bb9d09d3860ec0fc9587">&#9670;&nbsp;</a></span>guac_client_alloc_layer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__layer.html">guac_layer</a>* guac_client_alloc_layer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new layer. </p>
+<p>An arbitrary index is automatically assigned if no existing layer is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to allocate the layer buffer for. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available layer, or a newly allocated layer. </dd></dl>
+
+</div>
+</div>
+<a id="a1bea3499e21736b4ea0fb949d3bc8ab9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1bea3499e21736b4ea0fb949d3bc8ab9">&#9670;&nbsp;</a></span>guac_client_alloc_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__stream.html">guac_stream</a>* guac_client_alloc_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new stream. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated stream is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to allocate the stream for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available stream, or a newly allocated stream, or NULL if the maximum number of active streams has been reached. </dd></dl>
+
+</div>
+</div>
+<a id="a686fc65f5b1afcc3f3b53e36cd1a2ebc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a686fc65f5b1afcc3f3b53e36cd1a2ebc">&#9670;&nbsp;</a></span>guac_client_end_frame()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_end_frame </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the end of the current frame by sending a "sync" instruction to all connected users. </p>
+<p>This instruction will contain the current timestamp. The last_sent_timestamp member of <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> will be updated accordingly.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> which has finished a frame. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="af3f4ed85d98b16376e2cdc031ff1b44a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3f4ed85d98b16376e2cdc031ff1b44a">&#9670;&nbsp;</a></span>guac_client_for_owner()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client_for_owner </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function with the currently-connected user that is marked as the owner. </p>
+<p>The owner of a connection is the user that established the initial connection that created the connection (the first user to connect and join). The function will be given a reference to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> and the specified arbitrary data. If the owner has since left the connection, the function will instead be invoked with NULL as the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. The value returned by the callback will be returned by this function.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to retrieve the owner from.</td></tr>
+    <tr><td class="paramname">callback</td><td>The callback to invoke on the user marked as the owner of the connection. NULL will be passed to this callback instead if there is no owner.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the given callback.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value returned by the callback. </dd></dl>
+
+</div>
+</div>
+<a id="a7fbba296d1ec3e78dc4b79884f590a03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7fbba296d1ec3e78dc4b79884f590a03">&#9670;&nbsp;</a></span>guac_client_for_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client_for_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function with the given user ONLY if they are currently connected. </p>
+<p>The function will be given a reference to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> and the specified arbitrary data. If the provided user doesn't exist or has since left the connection, the function will instead be invoked with NULL as the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. The value returned by the callback will be returned by this function.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client that the given user is expected to be associated with.</td></tr>
+    <tr><td class="paramname">user</td><td>The user to provide to the given callback if valid. The pointer need not even point to properly allocated memory; the user will only be passed to the callback function if they are valid, and the provided user pointer will not be dereferenced during this process.</td></tr>
+    <tr><td class="paramname">callback</td><td>The callback to invoke on the given user if they are valid. NULL will be passed to this callback instead if the user is not valid.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the given callback.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The value returned by the callback. </dd></dl>
+
+</div>
+</div>
+<a id="af652f3db0f89d488cef6d90f612a2077"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af652f3db0f89d488cef6d90f612a2077">&#9670;&nbsp;</a></span>guac_client_foreach_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_foreach_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a> *&#160;</td>
+          <td class="paramname"><em>callback</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calls the given function on all currently-connected users of the given client. </p>
+<p>The function will be given a reference to a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> and the specified arbitrary data. The value returned by the callback will be ignored.</p>
+<p>This function is reentrant, but the user list MUST NOT be manipulated within the same thread as a callback to this function. Though the callback MAY invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a>, doing so should not be necessary, and may indicate poor design choices.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client whose users should be iterated.</td></tr>
+    <tr><td class="paramname">callback</td><td>The function to call for each user.</td></tr>
+    <tr><td class="paramname">data</td><td>Arbitrary data to pass to the callback each time it is invoked. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a76cdc454a23fdcbb70d56f923f6b6427"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a76cdc454a23fdcbb70d56f923f6b6427">&#9670;&nbsp;</a></span>guac_client_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Free all resources associated with the given client. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to free all reasources of. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="afc03a32b3113d9a95700cac54f1cbd4b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afc03a32b3113d9a95700cac54f1cbd4b">&#9670;&nbsp;</a></span>guac_client_free_buffer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_buffer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given buffer to the pool of available buffers, such that it can be reused by any subsequent call to guac_client_allow_buffer(). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the buffer to. </td></tr>
+    <tr><td class="paramname">layer</td><td>The buffer to return to the pool of available buffers. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a4e5b374211012d1897792335112dcb89"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4e5b374211012d1897792335112dcb89">&#9670;&nbsp;</a></span>guac_client_free_layer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_layer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given layer to the pool of available layers, such that it can be reused by any subsequent call to guac_client_allow_layer(). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the layer to. </td></tr>
+    <tr><td class="paramname">layer</td><td>The buffer to return to the pool of available layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af0103a5aae8ba76badd2e68e827f6782"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af0103a5aae8ba76badd2e68e827f6782">&#9670;&nbsp;</a></span>guac_client_free_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_free_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9" title="Allocates a new stream. ">guac_client_alloc_stream()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client to return the stream to.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to return to the pool of available stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa2b94b3145fcebf2d7b1999df11d0b2c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa2b94b3145fcebf2d7b1999df11d0b2c">&#9670;&nbsp;</a></span>guac_client_get_processing_lag()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_get_processing_lag </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Calculates and returns the approximate processing lag experienced by the pool of users. </p>
+<p>The processing lag is the difference in time between server and client due purely to data processing and excluding network delays.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> to calculate the processing lag of.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The approximate processing lag of the pool of users associated with the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>, in milliseconds. </dd></dl>
+
+</div>
+</div>
+<a id="afa2b90d686c56cf753c36718ec085f35"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa2b90d686c56cf753c36718ec085f35">&#9670;&nbsp;</a></span>guac_client_load_plugin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_load_plugin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>protocol</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Initializes the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> using the initialization routine provided by the plugin corresponding to the named protocol. </p>
+<p>This will automatically invoke guac_client_init within the plugin for the given protocol.</p>
+<p>Note that the connection will likely not be established until the first user (the "owner") is added to the client.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> to initialize. </td></tr>
+    <tr><td class="paramname">protocol</td><td>The name of the protocol to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if initialization was successful, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ad53666bbe29346497cabb04fc9628208"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad53666bbe29346497cabb04fc9628208">&#9670;&nbsp;</a></span>guac_client_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given client. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the proxy client) by setting the logging handlers of the client when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a02832d5be5330dc3de524b497b7c6dfa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a02832d5be5330dc3de524b497b7c6dfa">&#9670;&nbsp;</a></span>guac_client_remove_user()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_remove_user </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Removes the given user, removing the user from the internally-tracked list of connected users, and calling any appropriate leave handler. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to return the buffer to. </td></tr>
+    <tr><td class="paramname">user</td><td>The user to remove. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a022d4b5587c84f2963b176ab7999aa1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a022d4b5587c84f2963b176ab7999aa1b">&#9670;&nbsp;</a></span>guac_client_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully. </p>
+<p>This is a completely cooperative signal, and can be ignored by the client or the hosting daemon.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a6c9d8717d4b8eaa50dbd7301af27a06f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c9d8717d4b8eaa50dbd7301af27a06f">&#9670;&nbsp;</a></span>guac_client_stream_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to all users of the given client. </p>
+<p>The argument value stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the argument value stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the argument value stream should be sent.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data within the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being sent.</td></tr>
+    <tr><td class="paramname">value</td><td>The current value of the connection parameter being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa51ede155ad7777bc8d2e82aa6e779bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa51ede155ad7777bc8d2e82aa6e779bf">&#9670;&nbsp;</a></span>guac_client_stream_jpeg()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_jpeg </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The JPEG image quality, which must be an integer value between 0 and 100 inclusive. Larger values indicate improving quality at the expense of larger file size. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a317b9d79afd0b0b473d7d359e0c33750"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a317b9d79afd0b0b473d7d359e0c33750">&#9670;&nbsp;</a></span>guac_client_stream_png()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_png </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for which the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a55adbd5ee8f27c4df4394dbb5bf9416e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a55adbd5ee8f27c4df4394dbb5bf9416e">&#9670;&nbsp;</a></span>guac_client_stream_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_client_stream_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>lossless</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed. If the server does not support WebP, this function has no effect, so be sure to check the result of <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3" title="Returns whether all users of the given client support WebP. ">guac_client_supports_webp()</a> prior to calling this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The WebP image quality, which must be an integer value between 0 and 100 inclusive. For lossy images, larger values indicate improving quality at the expense of larger file size. For lossless images, this dictates the quality of compression, with larger values producing smaller files at the expense of speed.</td></tr>
+    <tr><td class="paramname">lossless</td><td>Zero to encode a lossy image, non-zero to encode losslessly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a79cc74558e8f64807ea2847fbacd20e3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79cc74558e8f64807ea2847fbacd20e3">&#9670;&nbsp;</a></span>guac_client_supports_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client_supports_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether all users of the given client support WebP. </p>
+<p>If any user does not support WebP, or the server cannot encode WebP images, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The Guacamole client whose users should be checked for WebP support.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the all users of the given client claim to support WebP and the server has been built with WebP support, zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a4c0eccd7d0ed3dbf3e7941ce297e0224"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4c0eccd7d0ed3dbf3e7941ce297e0224">&#9670;&nbsp;</a></span>vguac_client_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_client_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the client or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a37a0fa9cfc4c02236085e3852972f494"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a37a0fa9cfc4c02236085e3852972f494">&#9670;&nbsp;</a></span>vguac_client_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_client_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given client. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the proxy client) by setting the logging handlers of the client when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The proxy client logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/client_8h_source.html b/doc/1.1.0/libguac/client_8h_source.html
new file mode 100644
index 0000000..b855315
--- /dev/null
+++ b/doc/1.1.0/libguac/client_8h_source.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/client.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">client.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="client_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_CLIENT_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_CLIENT_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-fntypes_8h.html">client-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-constants_8h.html">client-constants.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__client.html">   46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__client.html">guac_client</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">   57</a></span>&#160;    <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">socket</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">   65</a></span>&#160;    <a class="code" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> <a class="code" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">state</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">   72</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">data</a>;</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">   78</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">last_sent_timestamp</a>;</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">  101</a></span>&#160;    <a class="code" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>* <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">  125</a></span>&#160;    <a class="code" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>* <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a>;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __buffer_pool;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __layer_pool;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">  159</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">connection_id</a>;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    pthread_rwlock_t __users_lock;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __users;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __owner;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">  184</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">connected_users</a>;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">  207</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>* <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">  225</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">  251</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a>;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordtype">void</span>* __plugin_handle;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;};</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a>();</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;<a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client,</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;        <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback,</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;<span class="keywordtype">void</span>* <a class="code" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__user.html">guac_user</a>* user,</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>* callback, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <span class="keyword">const</span> <span class="keywordtype">char</span>* protocol);</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;        cairo_surface_t* surface);</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;<span class="keywordtype">void</span> <a class="code" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="keywordtype">int</span> <a class="code" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;<span class="keyword">extern</span> <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* <a class="code" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a>;</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;</div><div class="ttc" id="structguac__client_html_a0adcf1953de6c315c2da9dac4b3eceb3"><div class="ttname"><a href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client::join_handler</a></div><div class="ttdeci">guac_user_join_handler * join_handler</div><div class="ttdoc">Handler for join events, called whenever a new user is joining an active connection. </div><div class="ttdef"><b>Definition:</b> client.h:207</div></div>
+<div class="ttc" id="client_8h_html_af652f3db0f89d488cef6d90f612a2077"><div class="ttname"><a href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">guac_client_foreach_user</a></div><div class="ttdeci">void guac_client_foreach_user(guac_client *client, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function on all currently-connected users of the given client. </div></div>
+<div class="ttc" id="client_8h_html_a686fc65f5b1afcc3f3b53e36cd1a2ebc"><div class="ttname"><a href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">guac_client_end_frame</a></div><div class="ttdeci">int guac_client_end_frame(guac_client *client)</div><div class="ttdoc">Marks the end of the current frame by sending a &quot;sync&quot; instruction to all connected users...</div></div>
+<div class="ttc" id="client_8h_html_a4c0eccd7d0ed3dbf3e7941ce297e0224"><div class="ttname"><a href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">vguac_client_abort</a></div><div class="ttdeci">void vguac_client_abort(guac_client *client, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an...</div></div>
+<div class="ttc" id="client_8h_html_a336a485c006394d5eea88bf6d8d422d8"><div class="ttname"><a href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">GUAC_DEFAULT_LAYER</a></div><div class="ttdeci">const guac_layer * GUAC_DEFAULT_LAYER</div><div class="ttdoc">The default Guacamole client layer, layer 0. </div></div>
+<div class="ttc" id="client_8h_html_a79cc74558e8f64807ea2847fbacd20e3"><div class="ttname"><a href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">guac_client_supports_webp</a></div><div class="ttdeci">int guac_client_supports_webp(guac_client *client)</div><div class="ttdoc">Returns whether all users of the given client support WebP. </div></div>
+<div class="ttc" id="client-constants_8h_html"><div class="ttname"><a href="client-constants_8h.html">client-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="client_8h_html_afa2b90d686c56cf753c36718ec085f35"><div class="ttname"><a href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">guac_client_load_plugin</a></div><div class="ttdeci">int guac_client_load_plugin(guac_client *client, const char *protocol)</div><div class="ttdoc">Initializes the given guac_client using the initialization routine provided by the plugin correspondi...</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_a99c5146e0ab1df9ba2b2574fb26fbddf"><div class="ttname"><a href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a></div><div class="ttdeci">void * guac_user_callback(guac_user *user, void *data)</div><div class="ttdoc">Callback which relates to a single guac_user at a time, along with arbitrary data. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:59</div></div>
+<div class="ttc" id="structguac__client_html_aa634856fd3c522377ba7345f3308000e"><div class="ttname"><a href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">The guac_socket structure to be used to communicate with all connected web-clients (users)...</div><div class="ttdef"><b>Definition:</b> client.h:57</div></div>
+<div class="ttc" id="structguac__client_html_a0f3069566c7a5ca76ce4369715589dad"><div class="ttname"><a href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client::last_sent_timestamp</a></div><div class="ttdeci">guac_timestamp last_sent_timestamp</div><div class="ttdoc">The time (in milliseconds) that the last sync message was sent to the client. </div><div class="ttdef"><b>Definition:</b> client.h:78</div></div>
+<div class="ttc" id="structguac__client_html_a0e07a8086579ede2c692460998a87cac"><div class="ttname"><a href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client::args</a></div><div class="ttdeci">const char ** args</div><div class="ttdoc">NULL-terminated array of all arguments accepted by this client , in order. </div><div class="ttdef"><b>Definition:</b> client.h:251</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="client_8h_html_a1bea3499e21736b4ea0fb949d3bc8ab9"><div class="ttname"><a href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">guac_client_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_client_alloc_stream(guac_client *client)</div><div class="ttdoc">Allocates a new stream. </div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="client-types_8h_html_a6f7e91d6dcb20598953948f077910c3b"><div class="ttname"><a href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a></div><div class="ttdeci">guac_client_state</div><div class="ttdoc">Possible current states of the Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:41</div></div>
+<div class="ttc" id="structguac__client_html_a0569bc7eea8d37b5bd95bcd3821ca0a3"><div class="ttname"><a href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary reference to proxy client-specific data. </div><div class="ttdef"><b>Definition:</b> client.h:72</div></div>
+<div class="ttc" id="client_8h_html_a4e5b374211012d1897792335112dcb89"><div class="ttname"><a href="client_8h.html#a4e5b374211012d1897792335112dcb89">guac_client_free_layer</a></div><div class="ttdeci">void guac_client_free_layer(guac_client *client, guac_layer *layer)</div><div class="ttdoc">Returns the given layer to the pool of available layers, such that it can be reused by any subsequent...</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="client_8h_html_af661d3fedd9683631bdc7d1e3205e379"><div class="ttname"><a href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">guac_client_alloc_buffer</a></div><div class="ttdeci">guac_layer * guac_client_alloc_buffer(guac_client *client)</div><div class="ttdoc">Allocates a new buffer (invisible layer). </div></div>
+<div class="ttc" id="client_8h_html_a62a29f7820deaff00a10ec79aa81aed4"><div class="ttname"><a href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">guac_client_abort</a></div><div class="ttdeci">void guac_client_abort(guac_client *client, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given client to stop gracefully, while also signalling via the Guacamole protocol that an...</div></div>
+<div class="ttc" id="client_8h_html_a37a0fa9cfc4c02236085e3852972f494"><div class="ttname"><a href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">vguac_client_log</a></div><div class="ttdeci">void vguac_client_log(guac_client *client, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given client. </div></div>
+<div class="ttc" id="structguac__client_html_a3eb24ba13be9ecb3a8c6f64a73932f43"><div class="ttname"><a href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client::log_handler</a></div><div class="ttdeci">guac_client_log_handler * log_handler</div><div class="ttdoc">Logging handler. </div><div class="ttdef"><b>Definition:</b> client.h:125</div></div>
+<div class="ttc" id="client_8h_html_aa51ede155ad7777bc8d2e82aa6e779bf"><div class="ttname"><a href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">guac_client_stream_jpeg</a></div><div class="ttdeci">void guac_client_stream_jpeg(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as JPEG-encoded ...</div></div>
+<div class="ttc" id="client_8h_html_afc03a32b3113d9a95700cac54f1cbd4b"><div class="ttname"><a href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">guac_client_free_buffer</a></div><div class="ttdeci">void guac_client_free_buffer(guac_client *client, guac_layer *layer)</div><div class="ttdoc">Returns the given buffer to the pool of available buffers, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="client-fntypes_8h_html_a7f8c6986f3db9818d016eee6fa562577"><div class="ttname"><a href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a></div><div class="ttdeci">int guac_client_free_handler(guac_client *client)</div><div class="ttdoc">Handler for freeing up any extra data allocated by the client implementation. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:49</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="client_8h_html_af66d105dfd1453ec46b423e6b25fa371"><div class="ttname"><a href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">guac_client_add_user</a></div><div class="ttdeci">int guac_client_add_user(guac_client *client, guac_user *user, int argc, char **argv)</div><div class="ttdoc">Adds the given user to the internal list of connected users. </div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div>
+<div class="ttc" id="client_8h_html_a6c9d8717d4b8eaa50dbd7301af27a06f"><div class="ttname"><a href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">guac_client_stream_argv</a></div><div class="ttdeci">void guac_client_stream_argv(guac_client *client, guac_socket *socket, const char *mimetype, const char *name, const char *value)</div><div class="ttdoc">Streams the given connection parameter value over an argument value stream (&quot;argv&quot; instruction)...</div></div>
+<div class="ttc" id="structguac__client_html_acb3e3f5d0ce5726cdde768f97b473f53"><div class="ttname"><a href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client::state</a></div><div class="ttdeci">guac_client_state state</div><div class="ttdoc">The current state of the client. </div><div class="ttdef"><b>Definition:</b> client.h:65</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="client-fntypes_8h_html"><div class="ttname"><a href="client-fntypes_8h.html">client-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the Guacamole client structure, guac_client. ...</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="structguac__client_html_a73aeff08af6cf6cadd7abce74c7ff4b2"><div class="ttname"><a href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client::connected_users</a></div><div class="ttdeci">int connected_users</div><div class="ttdoc">The number of currently-connected users. </div><div class="ttdef"><b>Definition:</b> client.h:184</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="client_8h_html_a33bad42d21ccb561aa71c4f04ae9b22a"><div class="ttname"><a href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">guac_client_alloc</a></div><div class="ttdeci">guac_client * guac_client_alloc()</div><div class="ttdoc">Returns a new, barebones guac_client. </div></div>
+<div class="ttc" id="structguac__client_html_ad956a3935832e9048a2727d8c5a46cf6"><div class="ttname"><a href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events, called whenever a new user is leaving an active connection. </div><div class="ttdef"><b>Definition:</b> client.h:225</div></div>
+<div class="ttc" id="client_8h_html_af3f4ed85d98b16376e2cdc031ff1b44a"><div class="ttname"><a href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">guac_client_for_owner</a></div><div class="ttdeci">void * guac_client_for_owner(guac_client *client, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function with the currently-connected user that is marked as the owner. </div></div>
+<div class="ttc" id="client_8h_html_a76cdc454a23fdcbb70d56f923f6b6427"><div class="ttname"><a href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">guac_client_free</a></div><div class="ttdeci">void guac_client_free(guac_client *client)</div><div class="ttdoc">Free all resources associated with the given client. </div></div>
+<div class="ttc" id="client_8h_html_a55adbd5ee8f27c4df4394dbb5bf9416e"><div class="ttname"><a href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">guac_client_stream_webp</a></div><div class="ttdeci">void guac_client_stream_webp(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as WebP-encoded ...</div></div>
+<div class="ttc" id="client_8h_html_a2085758db585bb9d09d3860ec0fc9587"><div class="ttname"><a href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">guac_client_alloc_layer</a></div><div class="ttdeci">guac_layer * guac_client_alloc_layer(guac_client *client)</div><div class="ttdoc">Allocates a new layer. </div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="structguac__client_html_a79e29c931fd448cf51f7153fea064169"><div class="ttname"><a href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client::free_handler</a></div><div class="ttdeci">guac_client_free_handler * free_handler</div><div class="ttdoc">Handler for freeing data when the client is being unloaded. </div><div class="ttdef"><b>Definition:</b> client.h:101</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="client_8h_html_a022d4b5587c84f2963b176ab7999aa1b"><div class="ttname"><a href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">guac_client_stop</a></div><div class="ttdeci">void guac_client_stop(guac_client *client)</div><div class="ttdoc">Signals the given client to stop gracefully. </div></div>
+<div class="ttc" id="client_8h_html_a317b9d79afd0b0b473d7d359e0c33750"><div class="ttname"><a href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">guac_client_stream_png</a></div><div class="ttdeci">void guac_client_stream_png(guac_client *client, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as PNG-encoded d...</div></div>
+<div class="ttc" id="client_8h_html_a02832d5be5330dc3de524b497b7c6dfa"><div class="ttname"><a href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">guac_client_remove_user</a></div><div class="ttdeci">void guac_client_remove_user(guac_client *client, guac_user *user)</div><div class="ttdoc">Removes the given user, removing the user from the internally-tracked list of connected users...</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="client-fntypes_8h_html_a23837e22dbfe152719d596e6918bad3c"><div class="ttname"><a href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a></div><div class="ttdeci">void guac_client_log_handler(guac_client *client, guac_client_log_level level, const char *format, va_list args)</div><div class="ttdoc">Handler for logging messages related to a given guac_client instance. </div><div class="ttdef"><b>Definition:</b> client-fntypes.h:67</div></div>
+<div class="ttc" id="client_8h_html_aa2b94b3145fcebf2d7b1999df11d0b2c"><div class="ttname"><a href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">guac_client_get_processing_lag</a></div><div class="ttdeci">int guac_client_get_processing_lag(guac_client *client)</div><div class="ttdoc">Calculates and returns the approximate processing lag experienced by the pool of users. </div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="client_8h_html_af0103a5aae8ba76badd2e68e827f6782"><div class="ttname"><a href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">guac_client_free_stream</a></div><div class="ttdeci">void guac_client_free_stream(guac_client *client, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88717a7ab29ac1e4a853fcc2caa8f872"><div class="ttname"><a href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a></div><div class="ttdeci">int guac_user_join_handler(guac_user *user, int argc, char **argv)</div><div class="ttdoc">Handler for Guacamole join events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:366</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="structguac__client_html_ad38b9ded1f04bfe8eb235e551fc08094"><div class="ttname"><a href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client::connection_id</a></div><div class="ttdeci">char * connection_id</div><div class="ttdoc">The unique identifier allocated for the connection, which may be used within the Guacamole protocol t...</div><div class="ttdef"><b>Definition:</b> client.h:159</div></div>
+<div class="ttc" id="client_8h_html_ad53666bbe29346497cabb04fc9628208"><div class="ttname"><a href="client_8h.html#ad53666bbe29346497cabb04fc9628208">guac_client_log</a></div><div class="ttdeci">void guac_client_log(guac_client *client, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given client. </div></div>
+<div class="ttc" id="client_8h_html_a7fbba296d1ec3e78dc4b79884f590a03"><div class="ttname"><a href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">guac_client_for_user</a></div><div class="ttdeci">void * guac_client_for_user(guac_client *client, guac_user *user, guac_user_callback *callback, void *data)</div><div class="ttdoc">Calls the given function with the given user ONLY if they are currently connected. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/closed.png b/doc/1.1.0/libguac/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/doc/1.1.0/libguac/closed.png
Binary files differ
diff --git a/doc/1.1.0/libguac/deprecated.html b/doc/1.1.0/libguac/deprecated.html
new file mode 100644
index 0000000..bb964e4
--- /dev/null
+++ b/doc/1.1.0/libguac/deprecated.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Deprecated List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Deprecated List </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><dl class="reflist">
+<dt><a class="anchor" id="_deprecated000001"></a>Global <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a>  (<a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> *socket, int index, const char *data)</dt>
+<dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly. </dd>
+<dt><a class="anchor" id="_deprecated000002"></a>Global <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a>  (<a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> *parent, int index)</dt>
+<dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd>
+</dl>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html b/doc/1.1.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html
new file mode 100644
index 0000000..120b70d
--- /dev/null
+++ b/doc/1.1.0/libguac/dir_6bb9fad85c98b48a11165f494b9f53ce.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">guacamole Directory Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:audio-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-fntypes_8h.html">audio-fntypes.h</a> <a href="audio-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:audio-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio-types_8h.html">audio-types.h</a> <a href="audio-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:audio_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="audio_8h.html">audio.h</a> <a href="audio_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:audio_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures used for providing simple streaming audio. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-constants_8h.html">client-constants.h</a> <a href="client-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-fntypes_8h.html">client-fntypes.h</a> <a href="client-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client-types_8h.html">client-types.h</a> <a href="client-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:client_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="client_8h.html">client.h</a> <a href="client_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:client_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions and structure contents for the Guacamole proxy client. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:error-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error-types_8h.html">error-types.h</a> <a href="error-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:error-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to return values and errors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:error_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html">error.h</a> <a href="error_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:error_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for handling return values and errors. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:hash_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html">hash.h</a> <a href="hash_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:hash_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for producing likely-to-be-unique hash values for images. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:layer-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layer-types_8h.html">layer-types.h</a> <a href="layer-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:layer-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole layers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:layer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="layer_8h.html">layer.h</a> <a href="layer_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:layer_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using layers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:object-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object-types_8h.html">object-types.h</a> <a href="object-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:object-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:object_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="object_8h.html">object.h</a> <a href="object_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:object_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html">parser-constants.h</a> <a href="parser-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole protocol parser. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-types_8h.html">parser-types.h</a> <a href="parser-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to parsing the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:parser_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html">parser.h</a> <a href="parser_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:parser_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for parsing the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:plugin-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html">plugin-constants.h</a> <a href="plugin-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:plugin-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to client plugins. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:plugin_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin_8h.html">plugin.h</a> <a href="plugin_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:plugin_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for handling a client plugin. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:pool-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool-types_8h.html">pool-types.h</a> <a href="pool-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:pool-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:pool_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html">pool.h</a> <a href="pool_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:pool_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for maintaining dynamically allocated and freed pools of integers. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html">protocol-constants.h</a> <a href="protocol-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html">protocol-types.h</a> <a href="protocol-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the Guacamole protocol. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:protocol_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html">protocol.h</a> <a href="protocol_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:protocol_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html">socket-constants.h</a> <a href="socket-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html">socket-fntypes.h</a> <a href="socket-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-ssl_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-ssl_8h.html">socket-ssl.h</a> <a href="socket-ssl_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-ssl_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-types_8h.html">socket-types.h</a> <a href="socket-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket-wsa_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-wsa_8h.html">socket-wsa.h</a> <a href="socket-wsa_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket-wsa_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock"). <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:socket_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html">socket.h</a> <a href="socket_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:socket_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream-types_8h.html">stream-types.h</a> <a href="stream-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:stream-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol streams. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:stream_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="stream_8h.html">stream.h</a> <a href="stream_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:stream_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures required for allocating and using streams. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:string_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html">string.h</a> <a href="string_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:string_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides convenience functions for manipulating strings. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timestamp-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp-types_8h.html">timestamp-types.h</a> <a href="timestamp-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timestamp-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to Guacamole protocol timestamps. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:timestamp_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html">timestamp.h</a> <a href="timestamp_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:timestamp_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions and structures for creating timestamps. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:unicode_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html">unicode.h</a> <a href="unicode_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:unicode_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides functions for manipulating Unicode strings. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-constants_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html">user-constants.h</a> <a href="user-constants_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-constants_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-fntypes_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html">user-fntypes.h</a> <a href="user-fntypes_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-fntypes_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user-types_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-types_8h.html">user-types.h</a> <a href="user-types_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user-types_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:user_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html">user.h</a> <a href="user_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:user_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/doc.png b/doc/1.1.0/libguac/doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/doc/1.1.0/libguac/doc.png
Binary files differ
diff --git a/doc/1.1.0/libguac/doxygen.css b/doc/1.1.0/libguac/doxygen.css
new file mode 100644
index 0000000..266c8b3
--- /dev/null
+++ b/doc/1.1.0/libguac/doxygen.css
@@ -0,0 +1,1596 @@
+/* The standard CSS for doxygen 1.8.14 */
+
+body, table, div, p, dl {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+p.reference, p.definition {
+	font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+	font-size: 150%;
+}
+
+.title {
+	font: 400 14px/28px Roboto,sans-serif;
+	font-size: 150%;
+	font-weight: bold;
+	margin: 10px 2px;
+}
+
+h2.groupheader {
+	border-bottom: 1px solid #879ECB;
+	color: #354C7B;
+	font-size: 150%;
+	font-weight: normal;
+	margin-top: 1.75em;
+	padding-top: 8px;
+	padding-bottom: 4px;
+	width: 100%;
+}
+
+h3.groupheader {
+	font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+	-webkit-transition: text-shadow 0.5s linear;
+	-moz-transition: text-shadow 0.5s linear;
+	-ms-transition: text-shadow 0.5s linear;
+	-o-transition: text-shadow 0.5s linear;
+	transition: text-shadow 0.5s linear;
+	margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+	text-shadow: 0 0 15px cyan;
+}
+
+dt {
+	font-weight: bold;
+}
+
+div.multicol {
+	-moz-column-gap: 1em;
+	-webkit-column-gap: 1em;
+	-moz-column-count: 3;
+	-webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+	margin-top: 2px;
+}
+
+p.starttd {
+	margin-top: 0px;
+}
+
+p.endli {
+	margin-bottom: 0px;
+}
+
+p.enddd {
+	margin-bottom: 4px;
+}
+
+p.endtd {
+	margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+	font-weight: bold;
+}
+
+span.legend {
+        font-size: 70%;
+        text-align: center;
+}
+
+h3.version {
+        font-size: 90%;
+        text-align: center;
+}
+
+div.qindex, div.navtab{
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+}
+
+div.qindex, div.navpath {
+	width: 100%;
+	line-height: 140%;
+}
+
+div.navtab {
+	margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+	color: #3D578C;
+	font-weight: normal;
+	text-decoration: none;
+}
+
+.contents a:visited {
+	color: #4665A2;
+}
+
+a:hover {
+	text-decoration: underline;
+}
+
+a.qindex {
+	font-weight: bold;
+}
+
+a.qindexHL {
+	font-weight: bold;
+	background-color: #9CAFD4;
+	color: #ffffff;
+	border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+        color: #ffffff;
+}
+
+a.el {
+	font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+	color: #4665A2; 
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+	color: #4665A2; 
+}
+
+/* @end */
+
+dl.el {
+	margin-left: -1cm;
+}
+
+pre.fragment {
+        border: 1px solid #C4CFE5;
+        background-color: #FBFCFD;
+        padding: 4px 6px;
+        margin: 4px 8px 4px 2px;
+        overflow: auto;
+        word-wrap: break-word;
+        font-size:  9pt;
+        line-height: 125%;
+        font-family: monospace, fixed;
+        font-size: 105%;
+}
+
+div.fragment {
+        padding: 0px;
+        margin: 4px 8px 4px 2px;
+	background-color: #FBFCFD;
+	border: 1px solid #C4CFE5;
+}
+
+div.line {
+	font-family: monospace, fixed;
+        font-size: 13px;
+	min-height: 13px;
+	line-height: 1.0;
+	text-wrap: unrestricted;
+	white-space: -moz-pre-wrap; /* Moz */
+	white-space: -pre-wrap;     /* Opera 4-6 */
+	white-space: -o-pre-wrap;   /* Opera 7 */
+	white-space: pre-wrap;      /* CSS3  */
+	word-wrap: break-word;      /* IE 5.5+ */
+	text-indent: -53px;
+	padding-left: 53px;
+	padding-bottom: 0px;
+	margin: 0px;
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+div.line:after {
+    content:"\000A";
+    white-space: pre;
+}
+
+div.line.glow {
+	background-color: cyan;
+	box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+	padding-right: 4px;
+	text-align: right;
+	border-right: 2px solid #0F0;
+	background-color: #E8E8E8;
+        white-space: pre;
+}
+span.lineno a {
+	background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+	background-color: #C8C8C8;
+}
+
+.lineno {
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+div.ah, span.ah {
+	background-color: black;
+	font-weight: bold;
+	color: #ffffff;
+	margin-bottom: 3px;
+	margin-top: 3px;
+	padding: 0.2em;
+	border: solid thin #333;
+	border-radius: 0.5em;
+	-webkit-border-radius: .5em;
+	-moz-border-radius: .5em;
+	box-shadow: 2px 2px 3px #999;
+	-webkit-box-shadow: 2px 2px 3px #999;
+	-moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+	background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%);
+}
+
+div.classindex ul {
+        list-style: none;
+        padding-left: 0;
+}
+
+div.classindex span.ai {
+        display: inline-block;
+}
+
+div.groupHeader {
+	margin-left: 16px;
+	margin-top: 12px;
+	font-weight: bold;
+}
+
+div.groupText {
+	margin-left: 16px;
+	font-style: italic;
+}
+
+body {
+	background-color: white;
+	color: black;
+        margin: 0;
+}
+
+div.contents {
+	margin-top: 10px;
+	margin-left: 12px;
+	margin-right: 8px;
+}
+
+td.indexkey {
+	background-color: #EBEFF6;
+	font-weight: bold;
+	border: 1px solid #C4CFE5;
+	margin: 2px 0px 2px 0;
+	padding: 2px 10px;
+        white-space: nowrap;
+        vertical-align: top;
+}
+
+td.indexvalue {
+	background-color: #EBEFF6;
+	border: 1px solid #C4CFE5;
+	padding: 2px 10px;
+	margin: 2px 0px;
+}
+
+tr.memlist {
+	background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+	text-align: center;
+}
+
+img.formulaDsp {
+	
+}
+
+img.formulaInl {
+	vertical-align: middle;
+}
+
+div.center {
+	text-align: center;
+        margin-top: 0px;
+        margin-bottom: 0px;
+        padding: 0px;
+}
+
+div.center img {
+	border: 0px;
+}
+
+address.footer {
+	text-align: right;
+	padding-right: 12px;
+}
+
+img.footer {
+	border: 0px;
+	vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+	color: #008000
+}
+
+span.keywordtype {
+	color: #604020
+}
+
+span.keywordflow {
+	color: #e08000
+}
+
+span.comment {
+	color: #800000
+}
+
+span.preprocessor {
+	color: #806020
+}
+
+span.stringliteral {
+	color: #002080
+}
+
+span.charliteral {
+	color: #008080
+}
+
+span.vhdldigit { 
+	color: #ff00ff 
+}
+
+span.vhdlchar { 
+	color: #000000 
+}
+
+span.vhdlkeyword { 
+	color: #700070 
+}
+
+span.vhdllogic { 
+	color: #ff0000 
+}
+
+blockquote {
+        background-color: #F7F8FB;
+        border-left: 2px solid #9CAFD4;
+        margin: 0 24px 0 4px;
+        padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+	color: #003399;
+	font-weight: bold;
+}
+
+form.search {
+	margin-bottom: 0px;
+	margin-top: 0px;
+}
+
+input.search {
+	font-size: 75%;
+	color: #000080;
+	font-weight: normal;
+	background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+	font-size: 75%;
+}
+
+.dirtab {
+	padding: 4px;
+	border-collapse: collapse;
+	border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+	background: #EBEFF6;
+	font-weight: bold;
+}
+
+hr {
+	height: 0px;
+	border: none;
+	border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+	height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+	border-spacing: 0px;
+	padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+	-webkit-transition-property: background-color, box-shadow;
+	-webkit-transition-duration: 0.5s;
+	-moz-transition-property: background-color, box-shadow;
+	-moz-transition-duration: 0.5s;
+	-ms-transition-property: background-color, box-shadow;
+	-ms-transition-duration: 0.5s;
+	-o-transition-property: background-color, box-shadow;
+	-o-transition-duration: 0.5s;
+	transition-property: background-color, box-shadow;
+	transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+	background-color: cyan;
+	box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+	background-color: #F9FAFC;
+	border: none;
+	margin: 4px;
+	padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+	padding: 0px 8px 4px 8px;
+	color: #555;
+}
+
+.memSeparator {
+        border-bottom: 1px solid #DEE4F0;
+        line-height: 1px;
+        margin: 0px;
+        padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+        white-space: nowrap;
+}
+
+.memItemRight {
+	width: 100%;
+}
+
+.memTemplParams {
+	color: #4665A2;
+        white-space: nowrap;
+	font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtitle {
+	padding: 8px;
+	border-top: 1px solid #A8B8D9;
+	border-left: 1px solid #A8B8D9;
+	border-right: 1px solid #A8B8D9;
+	border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	margin-bottom: -1px;
+	background-image: url('nav_f.png');
+	background-repeat: repeat-x;
+	background-color: #E2E8F2;
+	line-height: 1.25;
+	font-weight: 300;
+	float:left;
+}
+
+.permalink
+{
+        font-size: 65%;
+        display: inline-block;
+        vertical-align: middle;
+}
+
+.memtemplate {
+	font-size: 80%;
+	color: #4665A2;
+	font-weight: normal;
+	margin-left: 9px;
+}
+
+.memnav {
+	background-color: #EBEFF6;
+	border: 1px solid #A3B4D7;
+	text-align: center;
+	margin: 2px;
+	margin-right: 15px;
+	padding: 2px;
+}
+
+.mempage {
+	width: 100%;
+}
+
+.memitem {
+	padding: 0;
+	margin-bottom: 10px;
+	margin-right: 5px;
+        -webkit-transition: box-shadow 0.5s linear;
+        -moz-transition: box-shadow 0.5s linear;
+        -ms-transition: box-shadow 0.5s linear;
+        -o-transition: box-shadow 0.5s linear;
+        transition: box-shadow 0.5s linear;
+        display: table !important;
+        width: 100%;
+}
+
+.memitem.glow {
+         box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+        font-weight: 400;
+        margin-left: 6px;
+}
+
+.memname td {
+	vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+        border-top: 1px solid #A8B8D9;
+        border-left: 1px solid #A8B8D9;
+        border-right: 1px solid #A8B8D9;
+        padding: 6px 0px 6px 0px;
+        color: #253555;
+        font-weight: bold;
+        text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+        background-color: #DFE5F1;
+        /* opera specific markup */
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        border-top-right-radius: 4px;
+        /* firefox specific markup */
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        -moz-border-radius-topright: 4px;
+        /* webkit specific markup */
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        -webkit-border-top-right-radius: 4px;
+
+}
+
+.overload {
+        font-family: "courier new",courier,monospace;
+	font-size: 65%;
+}
+
+.memdoc, dl.reflist dd {
+        border-bottom: 1px solid #A8B8D9;      
+        border-left: 1px solid #A8B8D9;      
+        border-right: 1px solid #A8B8D9; 
+        padding: 6px 10px 2px 10px;
+        background-color: #FBFCFD;
+        border-top-width: 0;
+        background-image:url('nav_g.png');
+        background-repeat:repeat-x;
+        background-color: #FFFFFF;
+        /* opera specific markup */
+        border-bottom-left-radius: 4px;
+        border-bottom-right-radius: 4px;
+        box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+        /* firefox specific markup */
+        -moz-border-radius-bottomleft: 4px;
+        -moz-border-radius-bottomright: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+        /* webkit specific markup */
+        -webkit-border-bottom-left-radius: 4px;
+        -webkit-border-bottom-right-radius: 4px;
+        -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+        padding: 5px;
+}
+
+dl.reflist dd {
+        margin: 0px 0px 10px 0px;
+        padding: 5px;
+}
+
+.paramkey {
+	text-align: right;
+}
+
+.paramtype {
+	white-space: nowrap;
+}
+
+.paramname {
+	color: #602020;
+	white-space: nowrap;
+}
+.paramname em {
+	font-style: normal;
+}
+.paramname code {
+        line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+        margin-left: 0px;
+        padding-left: 0px;
+}       
+
+.params .paramname, .retval .paramname {
+        font-weight: bold;
+        vertical-align: top;
+}
+        
+.params .paramtype {
+        font-style: italic;
+        vertical-align: top;
+}       
+        
+.params .paramdir {
+        font-family: "courier new",courier,monospace;
+        vertical-align: top;
+}
+
+table.mlabels {
+	border-spacing: 0px;
+}
+
+td.mlabels-left {
+	width: 100%;
+	padding: 0px;
+}
+
+td.mlabels-right {
+	vertical-align: bottom;
+	padding: 0px;
+	white-space: nowrap;
+}
+
+span.mlabels {
+        margin-left: 8px;
+}
+
+span.mlabel {
+        background-color: #728DC1;
+        border-top:1px solid #5373B4;
+        border-left:1px solid #5373B4;
+        border-right:1px solid #C4CFE5;
+        border-bottom:1px solid #C4CFE5;
+	text-shadow: none;
+	color: white;
+	margin-right: 4px;
+	padding: 2px 3px;
+	border-radius: 3px;
+	font-size: 7pt;
+	white-space: nowrap;
+	vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view inside a (index) page */
+
+div.directory {
+        margin: 10px 0px;
+        border-top: 1px solid #9CAFD4;
+        border-bottom: 1px solid #9CAFD4;
+        width: 100%;
+}
+
+.directory table {
+        border-collapse:collapse;
+}
+
+.directory td {
+        margin: 0px;
+        padding: 0px;
+	vertical-align: top;
+}
+
+.directory td.entry {
+        white-space: nowrap;
+        padding-right: 6px;
+	padding-top: 3px;
+}
+
+.directory td.entry a {
+        outline:none;
+}
+
+.directory td.entry a img {
+        border: none;
+}
+
+.directory td.desc {
+        width: 100%;
+        padding-left: 6px;
+	padding-right: 6px;
+	padding-top: 3px;
+	border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+	padding-left: 6px;
+	background-color: #F7F8FB;
+}
+
+.directory img {
+	vertical-align: -30%;
+}
+
+.directory .levels {
+        white-space: nowrap;
+        width: 100%;
+        text-align: right;
+        font-size: 9pt;
+}
+
+.directory .levels span {
+        cursor: pointer;
+        padding-left: 2px;
+        padding-right: 2px;
+	color: #3D578C;
+}
+
+.arrow {
+    color: #9CAFD4;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    cursor: pointer;
+    font-size: 80%;
+    display: inline-block;
+    width: 16px;
+    height: 22px;
+}
+
+.icon {
+    font-family: Arial, Helvetica;
+    font-weight: bold;
+    font-size: 12px;
+    height: 14px;
+    width: 16px;
+    display: inline-block;
+    background-color: #728DC1;
+    color: white;
+    text-align: center;
+    border-radius: 4px;
+    margin-left: 2px;
+    margin-right: 2px;
+}
+
+.icona {
+    width: 24px;
+    height: 22px;
+    display: inline-block;
+}
+
+.iconfopen {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderopen.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.iconfclosed {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('folderclosed.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+.icondoc {
+    width: 24px;
+    height: 18px;
+    margin-bottom: 4px;
+    background-image:url('doc.png');
+    background-position: 0px -4px;
+    background-repeat: repeat-y;
+    vertical-align:top;
+    display: inline-block;
+}
+
+table.directory {
+    font: 400 14px Roboto,sans-serif;
+}
+
+/* @end */
+
+div.dynheader {
+        margin-top: 8px;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+address {
+	font-style: normal;
+	color: #2A3D61;
+}
+
+table.doxtable caption {
+	caption-side: top;
+}
+
+table.doxtable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+table.fieldtable {
+        /*width: 100%;*/
+        margin-bottom: 10px;
+        border: 1px solid #A8B8D9;
+        border-spacing: 0px;
+        -moz-border-radius: 4px;
+        -webkit-border-radius: 4px;
+        border-radius: 4px;
+        -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+        -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+        box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+        padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+        white-space: nowrap;
+        border-right: 1px solid #A8B8D9;
+        border-bottom: 1px solid #A8B8D9;
+        vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+        padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+        border-bottom: 1px solid #A8B8D9;
+        /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+        margin-top: 0px;
+}       
+        
+.fieldtable td.fielddoc p:last-child {
+        margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+        border-bottom: none;
+}
+
+.fieldtable th {
+        background-image:url('nav_f.png');
+        background-repeat:repeat-x;
+        background-color: #E2E8F2;
+        font-size: 90%;
+        color: #253555;
+        padding-bottom: 4px;
+        padding-top: 5px;
+        text-align:left;
+        font-weight: 400;
+        -moz-border-radius-topleft: 4px;
+        -moz-border-radius-topright: 4px;
+        -webkit-border-top-left-radius: 4px;
+        -webkit-border-top-right-radius: 4px;
+        border-top-left-radius: 4px;
+        border-top-right-radius: 4px;
+        border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+	top: 0px;
+	left: 10px;
+	height: 36px;
+	background-image: url('tab_b.png');
+	z-index: 101;
+	overflow: hidden;
+	font-size: 13px;
+}
+
+.navpath ul
+{
+	font-size: 11px;
+	background-image:url('tab_b.png');
+	background-repeat:repeat-x;
+	background-position: 0 -5px;
+	height:30px;
+	line-height:30px;
+	color:#8AA0CC;
+	border:solid 1px #C2CDE4;
+	overflow:hidden;
+	margin:0px;
+	padding:0px;
+}
+
+.navpath li
+{
+	list-style-type:none;
+	float:left;
+	padding-left:10px;
+	padding-right:15px;
+	background-image:url('bc_s.png');
+	background-repeat:no-repeat;
+	background-position:right;
+	color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+	height:32px;
+	display:block;
+	text-decoration: none;
+	outline: none;
+	color: #283A5D;
+	font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+	text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+	text-decoration: none;        
+}
+
+.navpath li.navelem a:hover
+{
+	color:#6884BD;
+}
+
+.navpath li.footer
+{
+        list-style-type:none;
+        float:right;
+        padding-left:10px;
+        padding-right:15px;
+        background-image:none;
+        background-repeat:no-repeat;
+        background-position:right;
+        color:#364D7C;
+        font-size: 8pt;
+}
+
+
+div.summary
+{
+	float: right;
+	font-size: 8pt;
+	padding-right: 5px;
+	width: 50%;
+	text-align: right;
+}       
+
+div.summary a
+{
+	white-space: nowrap;
+}
+
+table.classindex
+{
+        margin: 10px;
+        white-space: nowrap;
+        margin-left: 3%;
+        margin-right: 3%;
+        width: 94%;
+        border: 0;
+        border-spacing: 0; 
+        padding: 0;
+}
+
+div.ingroups
+{
+	font-size: 8pt;
+	width: 50%;
+	text-align: left;
+}
+
+div.ingroups a
+{
+	white-space: nowrap;
+}
+
+div.header
+{
+        background-image:url('nav_h.png');
+        background-repeat:repeat-x;
+	background-color: #F9FAFC;
+	margin:  0px;
+	border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+	padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+        padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+	margin-left: 0px;
+	padding-left: 0px;
+}
+
+dl.note
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00D000;
+}
+
+dl.deprecated
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #505050;
+}
+
+dl.todo
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #00C0E0;
+}
+
+dl.test
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #3030E0;
+}
+
+dl.bug
+{
+        margin-left:-7px;
+        padding-left: 3px;
+        border-left:4px solid;
+        border-color: #C08050;
+}
+
+dl.section dd {
+	margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+	text-align: center;
+	vertical-align: bottom;
+	border-collapse: separate;
+}
+ 
+#projectlogo img
+{ 
+	border: 0px none;
+}
+ 
+#projectalign
+{
+        vertical-align: middle;
+}
+
+#projectname
+{
+	font: 300% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 2px 0px;
+}
+    
+#projectbrief
+{
+	font: 120% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#projectnumber
+{
+	font: 50% Tahoma, Arial,sans-serif;
+	margin: 0px;
+	padding: 0px;
+}
+
+#titlearea
+{
+	padding: 0px;
+	margin: 0px;
+	width: 100%;
+	border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+        text-align: center;
+}
+
+.dotgraph
+{
+        text-align: center;
+}
+
+.mscgraph
+{
+        text-align: center;
+}
+
+.plantumlgraph
+{
+        text-align: center;
+}
+
+.diagraph
+{
+        text-align: center;
+}
+
+.caption
+{
+	font-weight: bold;
+}
+
+div.zoom
+{
+	border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+        margin-bottom:50px;
+}
+
+dl.citelist dt {
+        color:#334975;
+        float:left;
+        font-weight:bold;
+        margin-right:10px;
+        padding:5px;
+}
+
+dl.citelist dd {
+        margin:2px 0;
+        padding:5px 0;
+}
+
+div.toc {
+        padding: 14px 25px;
+        background-color: #F4F6FA;
+        border: 1px solid #D8DFEE;
+        border-radius: 7px 7px 7px 7px;
+        float: right;
+        height: auto;
+        margin: 0 8px 10px 10px;
+        width: 200px;
+}
+
+div.toc li {
+        background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+        font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+        margin-top: 5px;
+        padding-left: 10px;
+        padding-top: 2px;
+}
+
+div.toc h3 {
+        font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+	color: #4665A2;
+        border-bottom: 0 none;
+        margin: 0;
+}
+
+div.toc ul {
+        list-style: none outside none;
+        border: medium none;
+        padding: 0px;
+}       
+
+div.toc li.level1 {
+        margin-left: 0px;
+}
+
+div.toc li.level2 {
+        margin-left: 15px;
+}
+
+div.toc li.level3 {
+        margin-left: 30px;
+}
+
+div.toc li.level4 {
+        margin-left: 45px;
+}
+
+.inherit_header {
+        font-weight: bold;
+        color: gray;
+        cursor: pointer;
+	-webkit-touch-callout: none;
+	-webkit-user-select: none;
+	-khtml-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.inherit_header td {
+        padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+        display: none;
+}
+
+tr.heading h2 {
+        margin-top: 12px;
+        margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+        position: absolute;
+        display: none;
+}
+
+#powerTip {
+	cursor: default;
+	white-space: nowrap;
+	background-color: white;
+	border: 1px solid gray;
+	border-radius: 4px 4px 4px 4px;
+	box-shadow: 1px 1px 7px gray;
+	display: none;
+	font-size: smaller;
+	max-width: 80%;
+	opacity: 0.9;
+	padding: 1ex 1em 1em;
+	position: absolute;
+	z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+        color: grey;
+	font-style: italic;
+}
+
+#powerTip div.ttname a {
+        font-weight: bold;
+}
+
+#powerTip div.ttname {
+        font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+        color: #006318;
+}
+
+#powerTip div {
+        margin: 0px;
+        padding: 0px;
+        font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+	content: "";
+	position: absolute;
+	margin: 0px;
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.w:after,  #powerTip.w:before,
+#powerTip.e:after,  #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	border: solid transparent;
+	content: " ";
+	height: 0;
+	width: 0;
+	position: absolute;
+}
+
+#powerTip.n:after,  #powerTip.s:after,
+#powerTip.w:after,  #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+	border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before,  #powerTip.s:before,
+#powerTip.w:before,  #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+	border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after,  #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+	top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+	border-top-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+#powerTip.n:before {
+	border-top-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+	left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+	right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+	left: 14px;
+}
+
+#powerTip.s:after,  #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+	bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+	border-bottom-color: #ffffff;
+	border-width: 10px;
+	margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+	border-bottom-color: #808080;
+	border-width: 11px;
+	margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+	left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+	right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+	left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+	left: 100%;
+}
+#powerTip.e:after {
+	border-left-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.e:before {
+	border-left-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+	right: 100%;
+}
+#powerTip.w:after {
+	border-right-color: #ffffff;
+	border-width: 10px;
+	top: 50%;
+	margin-top: -10px;
+}
+#powerTip.w:before {
+	border-right-color: #808080;
+	border-width: 11px;
+	top: 50%;
+	margin-top: -11px;
+}
+
+@media print
+{
+  #top { display: none; }
+  #side-nav { display: none; }
+  #nav-path { display: none; }
+  body { overflow:visible; }
+  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+  .summary { display: none; }
+  .memitem { page-break-inside: avoid; }
+  #doc-content
+  {
+    margin-left:0 !important;
+    height:auto !important;
+    width:auto !important;
+    overflow:inherit;
+    display:inline;
+  }
+}
+
+/* @group Markdown */
+
+/*
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTableHead tr {
+}
+
+table.markdownTableBodyLeft td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter {
+	text-align: center
+}
+*/
+
+table.markdownTable {
+	border-collapse:collapse;
+        margin-top: 4px;
+        margin-bottom: 4px;
+}
+
+table.markdownTable td, table.markdownTable th {
+	border: 1px solid #2D4068;
+	padding: 3px 7px 2px;
+}
+
+table.markdownTable tr {
+}
+
+th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone {
+	background-color: #374F7F;
+	color: #FFFFFF;
+	font-size: 110%;
+	padding-bottom: 4px;
+	padding-top: 5px;
+}
+
+th.markdownTableHeadLeft, td.markdownTableBodyLeft {
+	text-align: left
+}
+
+th.markdownTableHeadRight, td.markdownTableBodyRight {
+	text-align: right
+}
+
+th.markdownTableHeadCenter, td.markdownTableBodyCenter {
+	text-align: center
+}
+
+
+/* @end */
diff --git a/doc/1.1.0/libguac/doxygen.png b/doc/1.1.0/libguac/doxygen.png
new file mode 100644
index 0000000..3ff17d8
--- /dev/null
+++ b/doc/1.1.0/libguac/doxygen.png
Binary files differ
diff --git a/doc/1.1.0/libguac/dynsections.js b/doc/1.1.0/libguac/dynsections.js
new file mode 100644
index 0000000..c1ce122
--- /dev/null
+++ b/doc/1.1.0/libguac/dynsections.js
@@ -0,0 +1,120 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+   content.hide();
+   summary.show();
+   $(linkObj).addClass('closed').removeClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+   content.show();
+   summary.hide();
+   $(linkObj).removeClass('closed').addClass('opened');
+   $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+  $('table.directory tr').
+       removeClass('even').filter(':visible:even').addClass('even');
+}
+
+function toggleLevel(level)
+{
+  $('table.directory tr').each(function() {
+    var l = this.id.split('_').length-1;
+    var i = $('#img'+this.id.substring(3));
+    var a = $('#arr'+this.id.substring(3));
+    if (l<level+1) {
+      i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
+      a.html('&#9660;');
+      $(this).show();
+    } else if (l==level+1) {
+      i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
+      a.html('&#9654;');
+      $(this).show();
+    } else {
+      $(this).hide();
+    }
+  });
+  updateStripes();
+}
+
+function toggleFolder(id)
+{
+  // the clicked row
+  var currentRow = $('#row_'+id);
+
+  // all rows after the clicked row
+  var rows = currentRow.nextAll("tr");
+
+  var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+
+  // only match elements AFTER this one (can't hide elements before)
+  var childRows = rows.filter(function() { return this.id.match(re); });
+
+  // first row is visible we are HIDING
+  if (childRows.filter(':first').is(':visible')===true) {
+    // replace down arrow by right arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    currentRowSpans.filter(".arrow").html('&#9654;');
+    rows.filter("[id^=row_"+id+"]").hide(); // hide all children
+  } else { // we are SHOWING
+    // replace right arrow by down arrow for current row
+    var currentRowSpans = currentRow.find("span");
+    currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
+    currentRowSpans.filter(".arrow").html('&#9660;');
+    // replace down arrows by right arrows for child rows
+    var childRowsSpans = childRows.find("span");
+    childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
+    childRowsSpans.filter(".arrow").html('&#9654;');
+    childRows.show(); //show all children
+  }
+  updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+  var rows = $('tr.inherit.'+id);
+  var img = $('tr.inherit_header.'+id+' img');
+  var src = $(img).attr('src');
+  if (rows.filter(':first').is(':visible')===true) {
+    rows.css('display','none');
+    $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+  } else {
+    rows.css('display','table-row'); // using show() causes jump in firefox
+    $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+  }
+}
+/* @license-end */
diff --git a/doc/1.1.0/libguac/error-types_8h.html b/doc/1.1.0/libguac/error-types_8h.html
new file mode 100644
index 0000000..9899b38
--- /dev/null
+++ b/doc/1.1.0/libguac/error-types_8h.html
@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">error-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to return values and errors.  
+<a href="#details">More...</a></p>
+
+<p><a href="error-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> { <br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a> = 0, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a>, 
+<br />
+&#160;&#160;<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a>, 
+<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a>
+<br />
+ }</td></tr>
+<tr class="memdesc:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return codes shared by all Guacamole functions which can fail.  <a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">More...</a><br /></td></tr>
+<tr class="separator:a1f4f9a73ee399e5dff424376eb4f9c86"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to return values and errors. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a1f4f9a73ee399e5dff424376eb4f9c86"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1f4f9a73ee399e5dff424376eb4f9c86">&#9670;&nbsp;</a></span>guac_status</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Return codes shared by all Guacamole functions which can fail. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3"></a>GUAC_STATUS_SUCCESS&#160;</td><td class="fielddoc"><p>No errors occurred and the operation was successful. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a"></a>GUAC_STATUS_NO_MEMORY&#160;</td><td class="fielddoc"><p>Insufficient memory to complete the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff"></a>GUAC_STATUS_CLOSED&#160;</td><td class="fielddoc"><p>The resource associated with the operation can no longer be used as it has reached the end of its normal lifecycle. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3"></a>GUAC_STATUS_TIMEOUT&#160;</td><td class="fielddoc"><p>Time ran out before the operation could complete. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7"></a>GUAC_STATUS_SEE_ERRNO&#160;</td><td class="fielddoc"><p>An error occurred, and further information about the error is already stored in errno. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a"></a>GUAC_STATUS_IO_ERROR&#160;</td><td class="fielddoc"><p>An I/O error prevented the operation from succeeding. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4"></a>GUAC_STATUS_INVALID_ARGUMENT&#160;</td><td class="fielddoc"><p>The operation could not be performed because an invalid argument was given. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab"></a>GUAC_STATUS_INTERNAL_ERROR&#160;</td><td class="fielddoc"><p>The operation failed due to a bug in the software or a serious system problem. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3"></a>GUAC_STATUS_NO_SPACE&#160;</td><td class="fielddoc"><p>Insufficient space remaining to complete the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a"></a>GUAC_STATUS_INPUT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the input provided is too large. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d"></a>GUAC_STATUS_RESULT_TOO_LARGE&#160;</td><td class="fielddoc"><p>The operation failed because the result could not be stored in the space provided. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740"></a>GUAC_STATUS_PERMISSION_DENIED&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55"></a>GUAC_STATUS_BUSY&#160;</td><td class="fielddoc"><p>The operation could not be performed because associated resources are busy. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7"></a>GUAC_STATUS_NOT_AVAILABLE&#160;</td><td class="fielddoc"><p>The operation could not be performed because, while the associated resources do exist, they are not currently available for use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e"></a>GUAC_STATUS_NOT_SUPPORTED&#160;</td><td class="fielddoc"><p>The requested operation is not supported. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c"></a>GUAC_STATUS_NOT_INPLEMENTED&#160;</td><td class="fielddoc"><p>Support for the requested operation is not yet implemented. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a"></a>GUAC_STATUS_TRY_AGAIN&#160;</td><td class="fielddoc"><p>The operation is temporarily unable to be performed, but may succeed if reattempted. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787"></a>GUAC_STATUS_PROTOCOL_ERROR&#160;</td><td class="fielddoc"><p>A violation of the Guacamole protocol occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8"></a>GUAC_STATUS_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed because the requested resources do not exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c"></a>GUAC_STATUS_CANCELED&#160;</td><td class="fielddoc"><p>The operation was canceled prior to completion. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4"></a>GUAC_STATUS_OUT_OF_RANGE&#160;</td><td class="fielddoc"><p>The operation could not be performed because input values are outside the allowed range. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7"></a>GUAC_STATUS_REFUSED&#160;</td><td class="fielddoc"><p>The operation could not be performed because access to an underlying resource is explicitly not allowed, though not necessarily due to permissions. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546"></a>GUAC_STATUS_TOO_MANY&#160;</td><td class="fielddoc"><p>The operation failed because too many resources are already in use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f"></a>GUAC_STATUS_WOULD_BLOCK&#160;</td><td class="fielddoc"><p>The operation was not performed because it would otherwise block. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/error-types_8h_source.html b/doc/1.1.0/libguac/error-types_8h_source.html
new file mode 100644
index 0000000..ce50d8b
--- /dev/null
+++ b/doc/1.1.0/libguac/error-types_8h_source.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">error-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="error-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_ERROR_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_ERROR_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">   32</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">   37</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a> = 0,</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">   42</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a>,</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">   48</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a>,</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">   53</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a>,</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">   59</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a>,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">   64</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a>,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">   70</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a>,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">   76</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a>,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">   81</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a>,</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">   86</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a>,</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">   92</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a>,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">   97</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a>,</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">  103</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a>,</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">  109</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a>,</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">  114</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a>,</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">  119</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a>,</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">  125</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a>,</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">  130</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a>,</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">  136</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a>,</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">  141</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a>,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">  147</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a>,</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">  154</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a>,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">  159</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a>,</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">  164</a></span>&#160;    <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a></div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;} <a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">GUAC_STATUS_NO_MEMORY</a></div><div class="ttdoc">Insufficient memory to complete the operation. </div><div class="ttdef"><b>Definition:</b> error-types.h:42</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">GUAC_STATUS_OUT_OF_RANGE</a></div><div class="ttdoc">The operation could not be performed because input values are outside the allowed range...</div><div class="ttdef"><b>Definition:</b> error-types.h:147</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">GUAC_STATUS_RESULT_TOO_LARGE</a></div><div class="ttdoc">The operation failed because the result could not be stored in the space provided. </div><div class="ttdef"><b>Definition:</b> error-types.h:92</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">GUAC_STATUS_INPUT_TOO_LARGE</a></div><div class="ttdoc">The operation failed because the input provided is too large. </div><div class="ttdef"><b>Definition:</b> error-types.h:86</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">GUAC_STATUS_INTERNAL_ERROR</a></div><div class="ttdoc">The operation failed due to a bug in the software or a serious system problem. </div><div class="ttdef"><b>Definition:</b> error-types.h:76</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">GUAC_STATUS_CANCELED</a></div><div class="ttdoc">The operation was canceled prior to completion. </div><div class="ttdef"><b>Definition:</b> error-types.h:141</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">GUAC_STATUS_TOO_MANY</a></div><div class="ttdoc">The operation failed because too many resources are already in use. </div><div class="ttdef"><b>Definition:</b> error-types.h:159</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></div><div class="ttdeci">guac_status</div><div class="ttdoc">Return codes shared by all Guacamole functions which can fail. </div><div class="ttdef"><b>Definition:</b> error-types.h:32</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">GUAC_STATUS_CLOSED</a></div><div class="ttdoc">The resource associated with the operation can no longer be used as it has reached the end of its nor...</div><div class="ttdef"><b>Definition:</b> error-types.h:48</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">GUAC_STATUS_NOT_AVAILABLE</a></div><div class="ttdoc">The operation could not be performed because, while the associated resources do exist, they are not currently available for use. </div><div class="ttdef"><b>Definition:</b> error-types.h:109</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">GUAC_STATUS_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed because the requested resources do not exist. </div><div class="ttdef"><b>Definition:</b> error-types.h:136</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">GUAC_STATUS_INVALID_ARGUMENT</a></div><div class="ttdoc">The operation could not be performed because an invalid argument was given. </div><div class="ttdef"><b>Definition:</b> error-types.h:70</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">GUAC_STATUS_TRY_AGAIN</a></div><div class="ttdoc">The operation is temporarily unable to be performed, but may succeed if reattempted. </div><div class="ttdef"><b>Definition:</b> error-types.h:125</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">GUAC_STATUS_SEE_ERRNO</a></div><div class="ttdoc">An error occurred, and further information about the error is already stored in errno. </div><div class="ttdef"><b>Definition:</b> error-types.h:59</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">GUAC_STATUS_IO_ERROR</a></div><div class="ttdoc">An I/O error prevented the operation from succeeding. </div><div class="ttdef"><b>Definition:</b> error-types.h:64</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">GUAC_STATUS_PROTOCOL_ERROR</a></div><div class="ttdoc">A violation of the Guacamole protocol occurred. </div><div class="ttdef"><b>Definition:</b> error-types.h:130</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">GUAC_STATUS_NO_SPACE</a></div><div class="ttdoc">Insufficient space remaining to complete the operation. </div><div class="ttdef"><b>Definition:</b> error-types.h:81</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">GUAC_STATUS_REFUSED</a></div><div class="ttdoc">The operation could not be performed because access to an underlying resource is explicitly not allow...</div><div class="ttdef"><b>Definition:</b> error-types.h:154</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">GUAC_STATUS_WOULD_BLOCK</a></div><div class="ttdoc">The operation was not performed because it would otherwise block. </div><div class="ttdef"><b>Definition:</b> error-types.h:164</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">GUAC_STATUS_NOT_INPLEMENTED</a></div><div class="ttdoc">Support for the requested operation is not yet implemented. </div><div class="ttdef"><b>Definition:</b> error-types.h:119</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">GUAC_STATUS_PERMISSION_DENIED</a></div><div class="ttdoc">Permission was denied to perform the operation. </div><div class="ttdef"><b>Definition:</b> error-types.h:97</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">GUAC_STATUS_NOT_SUPPORTED</a></div><div class="ttdoc">The requested operation is not supported. </div><div class="ttdef"><b>Definition:</b> error-types.h:114</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">GUAC_STATUS_SUCCESS</a></div><div class="ttdoc">No errors occurred and the operation was successful. </div><div class="ttdef"><b>Definition:</b> error-types.h:37</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">GUAC_STATUS_BUSY</a></div><div class="ttdoc">The operation could not be performed because associated resources are busy. </div><div class="ttdef"><b>Definition:</b> error-types.h:103</div></div>
+<div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">GUAC_STATUS_TIMEOUT</a></div><div class="ttdoc">Time ran out before the operation could complete. </div><div class="ttdef"><b>Definition:</b> error-types.h:53</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/error_8h.html b/doc/1.1.0/libguac/error_8h.html
new file mode 100644
index 0000000..ea9433c
--- /dev/null
+++ b/doc/1.1.0/libguac/error_8h.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">error.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for handling return values and errors.  
+<a href="#details">More...</a></p>
+
+<p><a href="error_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">guac_error</a>&#160;&#160;&#160;(*__guac_error())</td></tr>
+<tr class="memdesc:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status code associated with the error which occurred during the last function call.  <a href="#a44aa5f7b9e896438fcdf16fe7feefd07">More...</a><br /></td></tr>
+<tr class="separator:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">guac_error_message</a>&#160;&#160;&#160;(*__guac_error_message())</td></tr>
+<tr class="memdesc:a96ab3903ba0e97c745e8bfb006e123cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a message describing the error which occurred during the last function call.  <a href="#a96ab3903ba0e97c745e8bfb006e123cd">More...</a><br /></td></tr>
+<tr class="separator:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">guac_error</a>&#160;&#160;&#160;(*__guac_error())</td></tr>
+<tr class="memdesc:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the status code associated with the error which occurred during the last function call.  <a href="#a44aa5f7b9e896438fcdf16fe7feefd07">More...</a><br /></td></tr>
+<tr class="separator:a44aa5f7b9e896438fcdf16fe7feefd07"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">guac_error_message</a>&#160;&#160;&#160;(*__guac_error_message())</td></tr>
+<tr class="memdesc:a96ab3903ba0e97c745e8bfb006e123cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a message describing the error which occurred during the last function call.  <a href="#a96ab3903ba0e97c745e8bfb006e123cd">More...</a><br /></td></tr>
+<tr class="separator:a96ab3903ba0e97c745e8bfb006e123cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a39a2290527ea7c3f0acb07f002c397b1"><td class="memItemLeft" align="right" valign="top"><a id="a39a2290527ea7c3f0acb07f002c397b1"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a> (<a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status)</td></tr>
+<tr class="memdesc:a39a2290527ea7c3f0acb07f002c397b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a human-readable explanation of the status code given. <br /></td></tr>
+<tr class="separator:a39a2290527ea7c3f0acb07f002c397b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for handling return values and errors. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a44aa5f7b9e896438fcdf16fe7feefd07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44aa5f7b9e896438fcdf16fe7feefd07">&#9670;&nbsp;</a></span>guac_error <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error&#160;&#160;&#160;(*__guac_error())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the status code associated with the error which occurred during the last function call. </p>
+<p>This value will only be set by functions documented to use it (most libguac functions), and is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a status code to guac_error in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a44aa5f7b9e896438fcdf16fe7feefd07"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a44aa5f7b9e896438fcdf16fe7feefd07">&#9670;&nbsp;</a></span>guac_error <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error&#160;&#160;&#160;(*__guac_error())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the status code associated with the error which occurred during the last function call. </p>
+<p>This value will only be set by functions documented to use it (most libguac functions), and is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a status code to guac_error in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a96ab3903ba0e97c745e8bfb006e123cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96ab3903ba0e97c745e8bfb006e123cd">&#9670;&nbsp;</a></span>guac_error_message <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error_message&#160;&#160;&#160;(*__guac_error_message())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a message describing the error which occurred during the last function call. </p>
+<p>If an error occurred, but no message is associated with it, NULL is returned. This value is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a message to guac_error_message in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+<a id="a96ab3903ba0e97c745e8bfb006e123cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96ab3903ba0e97c745e8bfb006e123cd">&#9670;&nbsp;</a></span>guac_error_message <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define guac_error_message&#160;&#160;&#160;(*__guac_error_message())</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns a message describing the error which occurred during the last function call. </p>
+<p>If an error occurred, but no message is associated with it, NULL is returned. This value is undefined if no error occurred.</p>
+<p>The storage of this value is thread-local. Assignment of a message to guac_error_message in one thread will not affect its value in another thread. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/error_8h_source.html b/doc/1.1.0/libguac/error_8h_source.html
new file mode 100644
index 0000000..9ece9e0
--- /dev/null
+++ b/doc/1.1.0/libguac/error_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/error.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">error.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="error_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_ERROR_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_ERROR_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="error-types_8h.html">error-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a>(<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status);</div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="preprocessor">#define guac_error (*__guac_error())</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>* __guac_error();</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#define guac_error_message (*__guac_error_message())</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>** __guac_error_message();</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a>(<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a> status);</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">   76</a></span>&#160;<span class="preprocessor">#define guac_error (*__guac_error())</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<a class="code" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a>* __guac_error();</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">   89</a></span>&#160;<span class="preprocessor">#define guac_error_message (*__guac_error_message())</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span>** __guac_error_message();</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="ttc" id="error-types_8h_html_a1f4f9a73ee399e5dff424376eb4f9c86"><div class="ttname"><a href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">guac_status</a></div><div class="ttdeci">guac_status</div><div class="ttdoc">Return codes shared by all Guacamole functions which can fail. </div><div class="ttdef"><b>Definition:</b> error-types.h:32</div></div>
+<div class="ttc" id="error_8h_html_a39a2290527ea7c3f0acb07f002c397b1"><div class="ttname"><a href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">guac_status_string</a></div><div class="ttdeci">const char * guac_status_string(guac_status status)</div><div class="ttdoc">Returns a human-readable explanation of the status code given. </div></div>
+<div class="ttc" id="error-types_8h_html"><div class="ttname"><a href="error-types_8h.html">error-types.h</a></div><div class="ttdoc">Type definitions related to return values and errors. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/files.html b/doc/1.1.0/libguac/files.html
new file mode 100644
index 0000000..0cb5bf7
--- /dev/null
+++ b/doc/1.1.0/libguac/files.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">File List</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all documented files with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html" target="_self">guacamole</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio-fntypes_8h.html" target="_self">audio-fntypes.h</a></td><td class="desc">Function type definitions related to simple streaming audio </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio-types_8h.html" target="_self">audio-types.h</a></td><td class="desc">Type definitions related to simple streaming audio </td></tr>
+<tr id="row_0_2_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="audio_8h_source.html"><span class="icondoc"></span></a><a class="el" href="audio_8h.html" target="_self">audio.h</a></td><td class="desc">Provides functions and structures used for providing simple streaming audio </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-constants_8h.html" target="_self">client-constants.h</a></td><td class="desc">Constants related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+<tr id="row_0_4_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-fntypes_8h.html" target="_self">client-fntypes.h</a></td><td class="desc">Function type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client-types_8h.html" target="_self">client-types.h</a></td><td class="desc">Type definitions related to the Guacamole client structure, <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+<tr id="row_0_6_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="client_8h_source.html"><span class="icondoc"></span></a><a class="el" href="client_8h.html" target="_self">client.h</a></td><td class="desc">Functions and structure contents for the Guacamole proxy client </td></tr>
+<tr id="row_0_7_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="error-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="error-types_8h.html" target="_self">error-types.h</a></td><td class="desc">Type definitions related to return values and errors </td></tr>
+<tr id="row_0_8_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="error_8h_source.html"><span class="icondoc"></span></a><a class="el" href="error_8h.html" target="_self">error.h</a></td><td class="desc">Provides functions and structures required for handling return values and errors </td></tr>
+<tr id="row_0_9_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="hash_8h_source.html"><span class="icondoc"></span></a><a class="el" href="hash_8h.html" target="_self">hash.h</a></td><td class="desc">Provides functions and structures for producing likely-to-be-unique hash values for images </td></tr>
+<tr id="row_0_10_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="layer-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="layer-types_8h.html" target="_self">layer-types.h</a></td><td class="desc">Type definitions related to Guacamole layers </td></tr>
+<tr id="row_0_11_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="layer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="layer_8h.html" target="_self">layer.h</a></td><td class="desc">Provides functions and structures required for allocating and using layers </td></tr>
+<tr id="row_0_12_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="object-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="object-types_8h.html" target="_self">object-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol objects </td></tr>
+<tr id="row_0_13_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="object_8h_source.html"><span class="icondoc"></span></a><a class="el" href="object_8h.html" target="_self">object.h</a></td><td class="desc">Provides functions and structures required for allocating and using objects </td></tr>
+<tr id="row_0_14_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser-constants_8h.html" target="_self">parser-constants.h</a></td><td class="desc">Constants related to the Guacamole protocol parser </td></tr>
+<tr id="row_0_15_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser-types_8h.html" target="_self">parser-types.h</a></td><td class="desc">Type definitions related to parsing the Guacamole protocol </td></tr>
+<tr id="row_0_16_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="parser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="parser_8h.html" target="_self">parser.h</a></td><td class="desc">Provides functions and structures for parsing the Guacamole protocol </td></tr>
+<tr id="row_0_17_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plugin-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="plugin-constants_8h.html" target="_self">plugin-constants.h</a></td><td class="desc">Constants related to client plugins </td></tr>
+<tr id="row_0_18_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="plugin_8h_source.html"><span class="icondoc"></span></a><a class="el" href="plugin_8h.html" target="_self">plugin.h</a></td><td class="desc">Provides functions and structures required for handling a client plugin </td></tr>
+<tr id="row_0_19_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="pool-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pool-types_8h.html" target="_self">pool-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers </td></tr>
+<tr id="row_0_20_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="pool_8h_source.html"><span class="icondoc"></span></a><a class="el" href="pool_8h.html" target="_self">pool.h</a></td><td class="desc">Provides functions and structures for maintaining dynamically allocated and freed pools of integers </td></tr>
+<tr id="row_0_21_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol-constants_8h.html" target="_self">protocol-constants.h</a></td><td class="desc">Constants related to the Guacamole protocol </td></tr>
+<tr id="row_0_22_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol-types_8h.html" target="_self">protocol-types.h</a></td><td class="desc">Type definitions related to the Guacamole protocol </td></tr>
+<tr id="row_0_23_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="protocol_8h_source.html"><span class="icondoc"></span></a><a class="el" href="protocol_8h.html" target="_self">protocol.h</a></td><td class="desc">Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects </td></tr>
+<tr id="row_0_24_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-constants_8h.html" target="_self">socket-constants.h</a></td><td class="desc">Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object </td></tr>
+<tr id="row_0_25_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-fntypes_8h.html" target="_self">socket-fntypes.h</a></td><td class="desc">Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object </td></tr>
+<tr id="row_0_26_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-ssl_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-ssl_8h.html" target="_self">socket-ssl.h</a></td><td class="desc">Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> </td></tr>
+<tr id="row_0_27_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-types_8h.html" target="_self">socket-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object </td></tr>
+<tr id="row_0_28_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket-wsa_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket-wsa_8h.html" target="_self">socket-wsa.h</a></td><td class="desc">Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock") </td></tr>
+<tr id="row_0_29_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="socket_8h_source.html"><span class="icondoc"></span></a><a class="el" href="socket_8h.html" target="_self">socket.h</a></td><td class="desc">Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it </td></tr>
+<tr id="row_0_30_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream-types_8h.html" target="_self">stream-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol streams </td></tr>
+<tr id="row_0_31_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="stream_8h_source.html"><span class="icondoc"></span></a><a class="el" href="stream_8h.html" target="_self">stream.h</a></td><td class="desc">Provides functions and structures required for allocating and using streams </td></tr>
+<tr id="row_0_32_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="string_8h_source.html"><span class="icondoc"></span></a><a class="el" href="string_8h.html" target="_self">string.h</a></td><td class="desc">Provides convenience functions for manipulating strings </td></tr>
+<tr id="row_0_33_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="timestamp-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timestamp-types_8h.html" target="_self">timestamp-types.h</a></td><td class="desc">Type definitions related to Guacamole protocol timestamps </td></tr>
+<tr id="row_0_34_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="timestamp_8h_source.html"><span class="icondoc"></span></a><a class="el" href="timestamp_8h.html" target="_self">timestamp.h</a></td><td class="desc">Provides functions and structures for creating timestamps </td></tr>
+<tr id="row_0_35_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="unicode_8h_source.html"><span class="icondoc"></span></a><a class="el" href="unicode_8h.html" target="_self">unicode.h</a></td><td class="desc">Provides functions for manipulating Unicode strings </td></tr>
+<tr id="row_0_36_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-constants_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-constants_8h.html" target="_self">user-constants.h</a></td><td class="desc">Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> </td></tr>
+<tr id="row_0_37_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-fntypes_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-fntypes_8h.html" target="_self">user-fntypes.h</a></td><td class="desc">Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object </td></tr>
+<tr id="row_0_38_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user-types_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user-types_8h.html" target="_self">user-types.h</a></td><td class="desc">Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object </td></tr>
+<tr id="row_0_39_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="user_8h_source.html"><span class="icondoc"></span></a><a class="el" href="user_8h.html" target="_self">user.h</a></td><td class="desc">Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/folderclosed.png b/doc/1.1.0/libguac/folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/doc/1.1.0/libguac/folderclosed.png
Binary files differ
diff --git a/doc/1.1.0/libguac/folderopen.png b/doc/1.1.0/libguac/folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/doc/1.1.0/libguac/folderopen.png
Binary files differ
diff --git a/doc/1.1.0/libguac/functions.html b/doc/1.1.0/libguac/functions.html
new file mode 100644
index 0000000..2cff065
--- /dev/null
+++ b/doc/1.1.0/libguac/functions.html
@@ -0,0 +1,375 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>ack_handler
+: <a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user</a>
+</li>
+<li>active
+: <a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool</a>
+, <a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user</a>
+</li>
+<li>argc
+: <a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser</a>
+</li>
+<li>args
+: <a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client</a>
+</li>
+<li>argv
+: <a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser</a>
+</li>
+<li>argv_handler
+: <a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user</a>
+</li>
+<li>audio_handler
+: <a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user</a>
+</li>
+<li>audio_mimetypes
+: <a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>begin_handler
+: <a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder</a>
+</li>
+<li>blob_handler
+: <a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream</a>
+, <a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user</a>
+</li>
+<li>bps
+: <a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>channels
+: <a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream</a>
+</li>
+<li>client
+: <a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream</a>
+, <a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user</a>
+</li>
+<li>clipboard_handler
+: <a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user</a>
+</li>
+<li>connected_users
+: <a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client</a>
+</li>
+<li>connection_id
+: <a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client</a>
+</li>
+<li>context
+: <a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream</a>
+, <a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client</a>
+, <a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object</a>
+, <a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket</a>
+, <a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>encoder
+: <a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream</a>
+</li>
+<li>end_handler
+: <a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder</a>
+, <a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream</a>
+, <a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>fd
+: <a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data</a>
+</li>
+<li>file_handler
+: <a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user</a>
+</li>
+<li>flush_handler
+: <a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket</a>
+</li>
+<li>free_handler
+: <a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client</a>
+, <a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>get_handler
+: <a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object</a>
+, <a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>image_mimetypes
+: <a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info</a>
+</li>
+<li>index
+: <a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer</a>
+, <a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object</a>
+, <a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream</a>
+</li>
+<li>info
+: <a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>join_handler
+: <a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder</a>
+, <a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>key_handler
+: <a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>last_frame_duration
+: <a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user</a>
+</li>
+<li>last_received_timestamp
+: <a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user</a>
+</li>
+<li>last_sent_timestamp
+: <a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client</a>
+</li>
+<li>last_write_timestamp
+: <a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket</a>
+</li>
+<li>leave_handler
+: <a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client</a>
+, <a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user</a>
+</li>
+<li>lock_handler
+: <a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket</a>
+</li>
+<li>log_handler
+: <a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>mimetype
+: <a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder</a>
+</li>
+<li>min_size
+: <a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool</a>
+</li>
+<li>mouse_handler
+: <a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>opcode
+: <a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser</a>
+</li>
+<li>optimal_height
+: <a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info</a>
+</li>
+<li>optimal_resolution
+: <a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info</a>
+</li>
+<li>optimal_width
+: <a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info</a>
+</li>
+<li>owner
+: <a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>pipe_handler
+: <a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user</a>
+</li>
+<li>processing_lag
+: <a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user</a>
+</li>
+<li>put_handler
+: <a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object</a>
+, <a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>rate
+: <a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream</a>
+</li>
+<li>read_handler
+: <a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>select_handler
+: <a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket</a>
+</li>
+<li>size_handler
+: <a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user</a>
+</li>
+<li>socket
+: <a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client</a>
+, <a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user</a>
+</li>
+<li>ssl
+: <a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data</a>
+</li>
+<li>state
+: <a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client</a>
+, <a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser</a>
+, <a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket</a>
+</li>
+<li>stream
+: <a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream</a>
+</li>
+<li>sync_handler
+: <a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>timezone
+: <a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>unlock_handler
+: <a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket</a>
+</li>
+<li>user_id
+: <a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int</a>
+</li>
+<li>video_mimetypes
+: <a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>write_handler
+: <a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/functions_vars.html b/doc/1.1.0/libguac/functions_vars.html
new file mode 100644
index 0000000..f4b721f
--- /dev/null
+++ b/doc/1.1.0/libguac/functions_vars.html
@@ -0,0 +1,375 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Data Fields - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>ack_handler
+: <a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user</a>
+</li>
+<li>active
+: <a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool</a>
+, <a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user</a>
+</li>
+<li>argc
+: <a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser</a>
+</li>
+<li>args
+: <a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">guac_client</a>
+</li>
+<li>argv
+: <a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser</a>
+</li>
+<li>argv_handler
+: <a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user</a>
+</li>
+<li>audio_handler
+: <a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user</a>
+</li>
+<li>audio_mimetypes
+: <a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_b"></a>- b -</h3><ul>
+<li>begin_handler
+: <a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">guac_audio_encoder</a>
+</li>
+<li>blob_handler
+: <a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream</a>
+, <a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user</a>
+</li>
+<li>bps
+: <a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">guac_audio_stream</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>channels
+: <a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">guac_audio_stream</a>
+</li>
+<li>client
+: <a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">guac_audio_stream</a>
+, <a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user</a>
+</li>
+<li>clipboard_handler
+: <a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user</a>
+</li>
+<li>connected_users
+: <a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">guac_client</a>
+</li>
+<li>connection_id
+: <a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">guac_client</a>
+</li>
+<li>context
+: <a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data</a>
+</li>
+</ul>
+
+
+<h3><a id="index_d"></a>- d -</h3><ul>
+<li>data
+: <a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">guac_audio_stream</a>
+, <a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">guac_client</a>
+, <a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object</a>
+, <a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket</a>
+, <a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream</a>
+, <a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>encoder
+: <a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">guac_audio_stream</a>
+</li>
+<li>end_handler
+: <a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">guac_audio_encoder</a>
+, <a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream</a>
+, <a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_f"></a>- f -</h3><ul>
+<li>fd
+: <a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data</a>
+</li>
+<li>file_handler
+: <a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user</a>
+</li>
+<li>flush_handler
+: <a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket</a>
+</li>
+<li>free_handler
+: <a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">guac_client</a>
+, <a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>get_handler
+: <a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object</a>
+, <a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_i"></a>- i -</h3><ul>
+<li>image_mimetypes
+: <a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info</a>
+</li>
+<li>index
+: <a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer</a>
+, <a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object</a>
+, <a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream</a>
+</li>
+<li>info
+: <a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_j"></a>- j -</h3><ul>
+<li>join_handler
+: <a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">guac_audio_encoder</a>
+, <a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_k"></a>- k -</h3><ul>
+<li>key_handler
+: <a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>last_frame_duration
+: <a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user</a>
+</li>
+<li>last_received_timestamp
+: <a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user</a>
+</li>
+<li>last_sent_timestamp
+: <a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">guac_client</a>
+</li>
+<li>last_write_timestamp
+: <a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket</a>
+</li>
+<li>leave_handler
+: <a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">guac_client</a>
+, <a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user</a>
+</li>
+<li>lock_handler
+: <a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket</a>
+</li>
+<li>log_handler
+: <a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">guac_client</a>
+</li>
+</ul>
+
+
+<h3><a id="index_m"></a>- m -</h3><ul>
+<li>mimetype
+: <a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">guac_audio_encoder</a>
+</li>
+<li>min_size
+: <a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool</a>
+</li>
+<li>mouse_handler
+: <a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_o"></a>- o -</h3><ul>
+<li>opcode
+: <a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser</a>
+</li>
+<li>optimal_height
+: <a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info</a>
+</li>
+<li>optimal_resolution
+: <a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info</a>
+</li>
+<li>optimal_width
+: <a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info</a>
+</li>
+<li>owner
+: <a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>pipe_handler
+: <a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user</a>
+</li>
+<li>processing_lag
+: <a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user</a>
+</li>
+<li>put_handler
+: <a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object</a>
+, <a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_r"></a>- r -</h3><ul>
+<li>rate
+: <a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">guac_audio_stream</a>
+</li>
+<li>read_handler
+: <a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>select_handler
+: <a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket</a>
+</li>
+<li>size_handler
+: <a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user</a>
+</li>
+<li>socket
+: <a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">guac_client</a>
+, <a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user</a>
+</li>
+<li>ssl
+: <a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data</a>
+</li>
+<li>state
+: <a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">guac_client</a>
+, <a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser</a>
+, <a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket</a>
+</li>
+<li>stream
+: <a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">guac_audio_stream</a>
+</li>
+<li>sync_handler
+: <a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>timezone
+: <a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>unlock_handler
+: <a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket</a>
+</li>
+<li>user_id
+: <a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user</a>
+</li>
+</ul>
+
+
+<h3><a id="index_v"></a>- v -</h3><ul>
+<li>value
+: <a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int</a>
+</li>
+<li>video_mimetypes
+: <a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info</a>
+</li>
+</ul>
+
+
+<h3><a id="index_w"></a>- w -</h3><ul>
+<li>write_handler
+: <a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">guac_audio_encoder</a>
+, <a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals.html b/doc/1.1.0/libguac/globals.html
new file mode 100644
index 0000000..5f021dd
--- /dev/null
+++ b/doc/1.1.0/libguac/globals.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_audio_encoder_begin_handler
+: <a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_end_handler
+: <a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_flush_handler
+: <a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_join_handler
+: <a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_write_handler
+: <a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">audio-fntypes.h</a>
+</li>
+<li>guac_audio_stream_add_user()
+: <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">audio.h</a>
+</li>
+<li>guac_audio_stream_alloc()
+: <a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">audio.h</a>
+</li>
+<li>guac_audio_stream_flush()
+: <a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">audio.h</a>
+</li>
+<li>guac_audio_stream_free()
+: <a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">audio.h</a>
+</li>
+<li>guac_audio_stream_reset()
+: <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">audio.h</a>
+</li>
+<li>guac_audio_stream_write_pcm()
+: <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">audio.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_c.html b/doc/1.1.0/libguac/globals_c.html
new file mode 100644
index 0000000..f709d00
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_c.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_abort()
+: <a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">client.h</a>
+</li>
+<li>guac_client_add_user()
+: <a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">client.h</a>
+</li>
+<li>guac_client_alloc()
+: <a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">client.h</a>
+</li>
+<li>guac_client_alloc_buffer()
+: <a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">client.h</a>
+</li>
+<li>guac_client_alloc_layer()
+: <a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">client.h</a>
+</li>
+<li>guac_client_alloc_stream()
+: <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">client.h</a>
+</li>
+<li>guac_client_end_frame()
+: <a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">client.h</a>
+</li>
+<li>guac_client_for_owner()
+: <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">client.h</a>
+</li>
+<li>guac_client_for_user()
+: <a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">client.h</a>
+</li>
+<li>guac_client_foreach_user()
+: <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">client.h</a>
+</li>
+<li>guac_client_free()
+: <a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">client.h</a>
+</li>
+<li>guac_client_free_buffer()
+: <a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">client.h</a>
+</li>
+<li>guac_client_free_handler
+: <a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">client-fntypes.h</a>
+</li>
+<li>guac_client_free_layer()
+: <a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">client.h</a>
+</li>
+<li>guac_client_free_stream()
+: <a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">client.h</a>
+</li>
+<li>guac_client_get_processing_lag()
+: <a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">client.h</a>
+</li>
+<li>guac_client_init_handler
+: <a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">client-fntypes.h</a>
+</li>
+<li>guac_client_load_plugin()
+: <a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">client.h</a>
+</li>
+<li>guac_client_log()
+: <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">client.h</a>
+</li>
+<li>guac_client_log_handler
+: <a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">client-fntypes.h</a>
+</li>
+<li>guac_client_log_level
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">client-types.h</a>
+</li>
+<li>guac_client_remove_user()
+: <a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">client.h</a>
+</li>
+<li>guac_client_state
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">client-types.h</a>
+</li>
+<li>guac_client_stop()
+: <a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">client.h</a>
+</li>
+<li>guac_client_stream_argv()
+: <a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">client.h</a>
+</li>
+<li>guac_client_stream_jpeg()
+: <a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">client.h</a>
+</li>
+<li>guac_client_stream_png()
+: <a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">client.h</a>
+</li>
+<li>guac_client_stream_webp()
+: <a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">client.h</a>
+</li>
+<li>guac_client_supports_webp()
+: <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">client.h</a>
+</li>
+<li>guac_composite_mode
+: <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">protocol-types.h</a>
+</li>
+<li>vguac_client_abort()
+: <a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">client.h</a>
+</li>
+<li>vguac_client_log()
+: <a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">client.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_defs.html b/doc/1.1.0/libguac/globals_defs.html
new file mode 100644
index 0000000..d892207
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_defs.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>guac_error
+: <a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">error.h</a>
+</li>
+<li>guac_error_message
+: <a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">error.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_BUFFER_POOL_INITIAL_SIZE
+: <a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_CLOSED_STREAM_INDEX
+: <a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_ID_PREFIX
+: <a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MAX_STREAMS
+: <a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_LEFT
+: <a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_MIDDLE
+: <a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_RIGHT
+: <a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_DOWN
+: <a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_UP
+: <a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">client-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_DIGITS
+: <a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_ELEMENTS
+: <a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_LENGTH
+: <a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">parser-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_BLOB_MAX_LENGTH
+: <a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">protocol-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_PREFIX
+: <a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_SUFFIX
+: <a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_NAME_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">plugin-constants.h</a>
+</li>
+<li>GUAC_SOCKET_KEEP_ALIVE_INTERVAL
+: <a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">socket-constants.h</a>
+</li>
+<li>GUAC_SOCKET_OUTPUT_BUFFER_SIZE
+: <a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">socket-constants.h</a>
+</li>
+<li>GUAC_USER_CLOSED_STREAM_INDEX
+: <a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">user-constants.h</a>
+</li>
+<li>GUAC_USER_ID_PREFIX
+: <a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_OBJECTS
+: <a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_STREAMS
+: <a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">user-constants.h</a>
+</li>
+<li>GUAC_USER_OBJECT_ROOT_NAME
+: <a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">user-constants.h</a>
+</li>
+<li>GUAC_USER_STREAM_INDEX_MIMETYPE
+: <a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">user-constants.h</a>
+</li>
+<li>GUAC_USER_UNDEFINED_OBJECT_INDEX
+: <a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">user-constants.h</a>
+</li>
+<li>GUACAMOLE_PROTOCOL_VERSION
+: <a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">protocol-constants.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_e.html b/doc/1.1.0/libguac/globals_e.html
new file mode 100644
index 0000000..5301972
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_e.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_e"></a>- e -</h3><ul>
+<li>guac_error
+: <a class="el" href="error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07">error.h</a>
+</li>
+<li>guac_error_message
+: <a class="el" href="error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd">error.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_enum.html b/doc/1.1.0/libguac/globals_enum.html
new file mode 100644
index 0000000..c8ad636
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_enum.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>guac_client_log_level
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">client-types.h</a>
+</li>
+<li>guac_client_state
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">client-types.h</a>
+</li>
+<li>guac_composite_mode
+: <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">protocol-types.h</a>
+</li>
+<li>guac_line_cap_style
+: <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">protocol-types.h</a>
+</li>
+<li>guac_line_join_style
+: <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">protocol-types.h</a>
+</li>
+<li>guac_parse_state
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">parser-types.h</a>
+</li>
+<li>guac_protocol_status
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">protocol-types.h</a>
+</li>
+<li>guac_socket_state
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">socket-types.h</a>
+</li>
+<li>guac_status
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">error-types.h</a>
+</li>
+<li>guac_transfer_function
+: <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_eval.html b/doc/1.1.0/libguac/globals_eval.html
new file mode 100644
index 0000000..3aea6f2
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_eval.html
@@ -0,0 +1,261 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_CLIENT_RUNNING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">client-types.h</a>
+</li>
+<li>GUAC_CLIENT_STOPPING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">client-types.h</a>
+</li>
+<li>GUAC_LOG_DEBUG
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">client-types.h</a>
+</li>
+<li>GUAC_LOG_ERROR
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">client-types.h</a>
+</li>
+<li>GUAC_LOG_INFO
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">client-types.h</a>
+</li>
+<li>GUAC_LOG_TRACE
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">client-types.h</a>
+</li>
+<li>GUAC_LOG_WARNING
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">client-types.h</a>
+</li>
+<li>GUAC_PARSE_COMPLETE
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_CONTENT
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_ERROR
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_LENGTH
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">parser-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_BUSY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SUCCESS
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UNSUPPORTED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">protocol-types.h</a>
+</li>
+<li>GUAC_SOCKET_CLOSED
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_OPEN
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">socket-types.h</a>
+</li>
+<li>GUAC_STATUS_BUSY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CANCELED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CLOSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INPUT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INTERNAL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_IO_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_MEMORY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_SPACE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_AVAILABLE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_FOUND
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_INPLEMENTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_SUPPORTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">error-types.h</a>
+</li>
+<li>GUAC_STATUS_OUT_OF_RANGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PERMISSION_DENIED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PROTOCOL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">error-types.h</a>
+</li>
+<li>GUAC_STATUS_REFUSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_RESULT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SEE_ERRNO
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SUCCESS
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TIMEOUT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TOO_MANY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TRY_AGAIN
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_WOULD_BLOCK
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">error-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_func.html b/doc/1.1.0/libguac/globals_func.html
new file mode 100644
index 0000000..bc6f47f
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_func.html
@@ -0,0 +1,558 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_audio_stream_add_user()
+: <a class="el" href="audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864">audio.h</a>
+</li>
+<li>guac_audio_stream_alloc()
+: <a class="el" href="audio_8h.html#afc1fc0133504e718edf4756fac5e9c30">audio.h</a>
+</li>
+<li>guac_audio_stream_flush()
+: <a class="el" href="audio_8h.html#af75feccacea2b14ee946064cf623f143">audio.h</a>
+</li>
+<li>guac_audio_stream_free()
+: <a class="el" href="audio_8h.html#adcc872292b5ba6c39905610b2bccbf31">audio.h</a>
+</li>
+<li>guac_audio_stream_reset()
+: <a class="el" href="audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad">audio.h</a>
+</li>
+<li>guac_audio_stream_write_pcm()
+: <a class="el" href="audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2">audio.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_abort()
+: <a class="el" href="client_8h.html#a62a29f7820deaff00a10ec79aa81aed4">client.h</a>
+</li>
+<li>guac_client_add_user()
+: <a class="el" href="client_8h.html#af66d105dfd1453ec46b423e6b25fa371">client.h</a>
+</li>
+<li>guac_client_alloc()
+: <a class="el" href="client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a">client.h</a>
+</li>
+<li>guac_client_alloc_buffer()
+: <a class="el" href="client_8h.html#af661d3fedd9683631bdc7d1e3205e379">client.h</a>
+</li>
+<li>guac_client_alloc_layer()
+: <a class="el" href="client_8h.html#a2085758db585bb9d09d3860ec0fc9587">client.h</a>
+</li>
+<li>guac_client_alloc_stream()
+: <a class="el" href="client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9">client.h</a>
+</li>
+<li>guac_client_end_frame()
+: <a class="el" href="client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc">client.h</a>
+</li>
+<li>guac_client_for_owner()
+: <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a">client.h</a>
+</li>
+<li>guac_client_for_user()
+: <a class="el" href="client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03">client.h</a>
+</li>
+<li>guac_client_foreach_user()
+: <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077">client.h</a>
+</li>
+<li>guac_client_free()
+: <a class="el" href="client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427">client.h</a>
+</li>
+<li>guac_client_free_buffer()
+: <a class="el" href="client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b">client.h</a>
+</li>
+<li>guac_client_free_layer()
+: <a class="el" href="client_8h.html#a4e5b374211012d1897792335112dcb89">client.h</a>
+</li>
+<li>guac_client_free_stream()
+: <a class="el" href="client_8h.html#af0103a5aae8ba76badd2e68e827f6782">client.h</a>
+</li>
+<li>guac_client_get_processing_lag()
+: <a class="el" href="client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c">client.h</a>
+</li>
+<li>guac_client_load_plugin()
+: <a class="el" href="client_8h.html#afa2b90d686c56cf753c36718ec085f35">client.h</a>
+</li>
+<li>guac_client_log()
+: <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208">client.h</a>
+</li>
+<li>guac_client_remove_user()
+: <a class="el" href="client_8h.html#a02832d5be5330dc3de524b497b7c6dfa">client.h</a>
+</li>
+<li>guac_client_stop()
+: <a class="el" href="client_8h.html#a022d4b5587c84f2963b176ab7999aa1b">client.h</a>
+</li>
+<li>guac_client_stream_argv()
+: <a class="el" href="client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f">client.h</a>
+</li>
+<li>guac_client_stream_jpeg()
+: <a class="el" href="client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf">client.h</a>
+</li>
+<li>guac_client_stream_png()
+: <a class="el" href="client_8h.html#a317b9d79afd0b0b473d7d359e0c33750">client.h</a>
+</li>
+<li>guac_client_stream_webp()
+: <a class="el" href="client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e">client.h</a>
+</li>
+<li>guac_client_supports_webp()
+: <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3">client.h</a>
+</li>
+<li>vguac_client_abort()
+: <a class="el" href="client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224">client.h</a>
+</li>
+<li>vguac_client_log()
+: <a class="el" href="client_8h.html#a37a0fa9cfc4c02236085e3852972f494">client.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>guac_hash_surface()
+: <a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">hash.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>guac_parser_alloc()
+: <a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">parser.h</a>
+</li>
+<li>guac_parser_append()
+: <a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">parser.h</a>
+</li>
+<li>guac_parser_expect()
+: <a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">parser.h</a>
+</li>
+<li>guac_parser_free()
+: <a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">parser.h</a>
+</li>
+<li>guac_parser_length()
+: <a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">parser.h</a>
+</li>
+<li>guac_parser_read()
+: <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">parser.h</a>
+</li>
+<li>guac_parser_shift()
+: <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">parser.h</a>
+</li>
+<li>guac_pool_alloc()
+: <a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">pool.h</a>
+</li>
+<li>guac_pool_free()
+: <a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">pool.h</a>
+</li>
+<li>guac_pool_free_int()
+: <a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">pool.h</a>
+</li>
+<li>guac_pool_next_int()
+: <a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">pool.h</a>
+</li>
+<li>guac_protocol_decode_base64()
+: <a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">protocol.h</a>
+</li>
+<li>guac_protocol_send_ack()
+: <a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">protocol.h</a>
+</li>
+<li>guac_protocol_send_arc()
+: <a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">protocol.h</a>
+</li>
+<li>guac_protocol_send_args()
+: <a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">protocol.h</a>
+</li>
+<li>guac_protocol_send_argv()
+: <a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">protocol.h</a>
+</li>
+<li>guac_protocol_send_audio()
+: <a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">protocol.h</a>
+</li>
+<li>guac_protocol_send_blob()
+: <a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">protocol.h</a>
+</li>
+<li>guac_protocol_send_blobs()
+: <a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">protocol.h</a>
+</li>
+<li>guac_protocol_send_body()
+: <a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">protocol.h</a>
+</li>
+<li>guac_protocol_send_cfill()
+: <a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">protocol.h</a>
+</li>
+<li>guac_protocol_send_clip()
+: <a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">protocol.h</a>
+</li>
+<li>guac_protocol_send_clipboard()
+: <a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">protocol.h</a>
+</li>
+<li>guac_protocol_send_close()
+: <a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">protocol.h</a>
+</li>
+<li>guac_protocol_send_connect()
+: <a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">protocol.h</a>
+</li>
+<li>guac_protocol_send_copy()
+: <a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">protocol.h</a>
+</li>
+<li>guac_protocol_send_cstroke()
+: <a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">protocol.h</a>
+</li>
+<li>guac_protocol_send_cursor()
+: <a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">protocol.h</a>
+</li>
+<li>guac_protocol_send_curve()
+: <a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">protocol.h</a>
+</li>
+<li>guac_protocol_send_disconnect()
+: <a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">protocol.h</a>
+</li>
+<li>guac_protocol_send_dispose()
+: <a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">protocol.h</a>
+</li>
+<li>guac_protocol_send_distort()
+: <a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">protocol.h</a>
+</li>
+<li>guac_protocol_send_end()
+: <a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">protocol.h</a>
+</li>
+<li>guac_protocol_send_error()
+: <a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">protocol.h</a>
+</li>
+<li>guac_protocol_send_file()
+: <a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">protocol.h</a>
+</li>
+<li>guac_protocol_send_filesystem()
+: <a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">protocol.h</a>
+</li>
+<li>guac_protocol_send_identity()
+: <a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">protocol.h</a>
+</li>
+<li>guac_protocol_send_img()
+: <a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">protocol.h</a>
+</li>
+<li>guac_protocol_send_key()
+: <a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">protocol.h</a>
+</li>
+<li>guac_protocol_send_lfill()
+: <a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">protocol.h</a>
+</li>
+<li>guac_protocol_send_line()
+: <a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">protocol.h</a>
+</li>
+<li>guac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">protocol.h</a>
+</li>
+<li>guac_protocol_send_lstroke()
+: <a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_mouse()
+: <a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">protocol.h</a>
+</li>
+<li>guac_protocol_send_move()
+: <a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">protocol.h</a>
+</li>
+<li>guac_protocol_send_name()
+: <a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">protocol.h</a>
+</li>
+<li>guac_protocol_send_nest()
+: <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">protocol.h</a>
+</li>
+<li>guac_protocol_send_nop()
+: <a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">protocol.h</a>
+</li>
+<li>guac_protocol_send_pipe()
+: <a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">protocol.h</a>
+</li>
+<li>guac_protocol_send_pop()
+: <a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">protocol.h</a>
+</li>
+<li>guac_protocol_send_push()
+: <a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">protocol.h</a>
+</li>
+<li>guac_protocol_send_ready()
+: <a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">protocol.h</a>
+</li>
+<li>guac_protocol_send_rect()
+: <a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">protocol.h</a>
+</li>
+<li>guac_protocol_send_reset()
+: <a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">protocol.h</a>
+</li>
+<li>guac_protocol_send_select()
+: <a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">protocol.h</a>
+</li>
+<li>guac_protocol_send_set()
+: <a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">protocol.h</a>
+</li>
+<li>guac_protocol_send_shade()
+: <a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_size()
+: <a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">protocol.h</a>
+</li>
+<li>guac_protocol_send_start()
+: <a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">protocol.h</a>
+</li>
+<li>guac_protocol_send_sync()
+: <a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">protocol.h</a>
+</li>
+<li>guac_protocol_send_transfer()
+: <a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">protocol.h</a>
+</li>
+<li>guac_protocol_send_transform()
+: <a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">protocol.h</a>
+</li>
+<li>guac_protocol_send_undefine()
+: <a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">protocol.h</a>
+</li>
+<li>guac_protocol_send_video()
+: <a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">protocol.h</a>
+</li>
+<li>vguac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">protocol.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_alloc()
+: <a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">socket.h</a>
+</li>
+<li>guac_socket_broadcast()
+: <a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">socket.h</a>
+</li>
+<li>guac_socket_flush()
+: <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">socket.h</a>
+</li>
+<li>guac_socket_flush_base64()
+: <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">socket.h</a>
+</li>
+<li>guac_socket_free()
+: <a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">socket.h</a>
+</li>
+<li>guac_socket_instruction_begin()
+: <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">socket.h</a>
+</li>
+<li>guac_socket_instruction_end()
+: <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">socket.h</a>
+</li>
+<li>guac_socket_nest()
+: <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">socket.h</a>
+</li>
+<li>guac_socket_open()
+: <a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">socket.h</a>
+</li>
+<li>guac_socket_open_secure()
+: <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">socket-ssl.h</a>
+</li>
+<li>guac_socket_open_wsa()
+: <a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">socket-wsa.h</a>
+</li>
+<li>guac_socket_read()
+: <a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">socket.h</a>
+</li>
+<li>guac_socket_require_keep_alive()
+: <a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">socket.h</a>
+</li>
+<li>guac_socket_select()
+: <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">socket.h</a>
+</li>
+<li>guac_socket_tee()
+: <a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">socket.h</a>
+</li>
+<li>guac_socket_write()
+: <a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">socket.h</a>
+</li>
+<li>guac_socket_write_base64()
+: <a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">socket.h</a>
+</li>
+<li>guac_socket_write_int()
+: <a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">socket.h</a>
+</li>
+<li>guac_socket_write_string()
+: <a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">socket.h</a>
+</li>
+<li>guac_status_string()
+: <a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">error.h</a>
+</li>
+<li>guac_strlcat()
+: <a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">string.h</a>
+</li>
+<li>guac_strlcpy()
+: <a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">string.h</a>
+</li>
+<li>guac_strljoin()
+: <a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">string.h</a>
+</li>
+<li>guac_surface_cmp()
+: <a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">hash.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp_current()
+: <a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">timestamp.h</a>
+</li>
+<li>guac_timestamp_msleep()
+: <a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">timestamp.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_abort()
+: <a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">user.h</a>
+</li>
+<li>guac_user_alloc()
+: <a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">user.h</a>
+</li>
+<li>guac_user_alloc_object()
+: <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">user.h</a>
+</li>
+<li>guac_user_alloc_stream()
+: <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">user.h</a>
+</li>
+<li>guac_user_free()
+: <a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">user.h</a>
+</li>
+<li>guac_user_free_object()
+: <a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">user.h</a>
+</li>
+<li>guac_user_free_stream()
+: <a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">user.h</a>
+</li>
+<li>guac_user_handle_connection()
+: <a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">user.h</a>
+</li>
+<li>guac_user_handle_instruction()
+: <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">user.h</a>
+</li>
+<li>guac_user_log()
+: <a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">user.h</a>
+</li>
+<li>guac_user_parse_args_boolean()
+: <a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">user.h</a>
+</li>
+<li>guac_user_parse_args_int()
+: <a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">user.h</a>
+</li>
+<li>guac_user_parse_args_string()
+: <a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">user.h</a>
+</li>
+<li>guac_user_stop()
+: <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">user.h</a>
+</li>
+<li>guac_user_stream_argv()
+: <a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">user.h</a>
+</li>
+<li>guac_user_stream_jpeg()
+: <a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">user.h</a>
+</li>
+<li>guac_user_stream_png()
+: <a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">user.h</a>
+</li>
+<li>guac_user_stream_webp()
+: <a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">user.h</a>
+</li>
+<li>guac_user_supports_webp()
+: <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">user.h</a>
+</li>
+<li>guac_utf8_charsize()
+: <a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">unicode.h</a>
+</li>
+<li>guac_utf8_read()
+: <a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">unicode.h</a>
+</li>
+<li>guac_utf8_strlen()
+: <a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">unicode.h</a>
+</li>
+<li>guac_utf8_write()
+: <a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">unicode.h</a>
+</li>
+<li>vguac_user_abort()
+: <a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">user.h</a>
+</li>
+<li>vguac_user_log()
+: <a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">user.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_g.html b/doc/1.1.0/libguac/globals_g.html
new file mode 100644
index 0000000..6215136
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_g.html
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_g"></a>- g -</h3><ul>
+<li>GUAC_BUFFER_POOL_INITIAL_SIZE
+: <a class="el" href="client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_CLOSED_STREAM_INDEX
+: <a class="el" href="client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_ID_PREFIX
+: <a class="el" href="client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MAX_STREAMS
+: <a class="el" href="client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_LEFT
+: <a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_MIDDLE
+: <a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_RIGHT
+: <a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_DOWN
+: <a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_MOUSE_SCROLL_UP
+: <a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d">client-constants.h</a>
+</li>
+<li>GUAC_CLIENT_RUNNING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0">client-types.h</a>
+</li>
+<li>GUAC_CLIENT_STOPPING
+: <a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd">client-types.h</a>
+</li>
+<li>GUAC_DEFAULT_LAYER
+: <a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">client.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_DIGITS
+: <a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_ELEMENTS
+: <a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">parser-constants.h</a>
+</li>
+<li>GUAC_INSTRUCTION_MAX_LENGTH
+: <a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">parser-constants.h</a>
+</li>
+<li>GUAC_LOG_DEBUG
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b">client-types.h</a>
+</li>
+<li>GUAC_LOG_ERROR
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c">client-types.h</a>
+</li>
+<li>GUAC_LOG_INFO
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29">client-types.h</a>
+</li>
+<li>GUAC_LOG_TRACE
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb">client-types.h</a>
+</li>
+<li>GUAC_LOG_WARNING
+: <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be">client-types.h</a>
+</li>
+<li>GUAC_PARSE_COMPLETE
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_CONTENT
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_ERROR
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">parser-types.h</a>
+</li>
+<li>GUAC_PARSE_LENGTH
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">parser-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_BLOB_MAX_LENGTH
+: <a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">protocol-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_PREFIX
+: <a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_LIBRARY_SUFFIX
+: <a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_NAME_LIMIT
+: <a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">plugin-constants.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_BUSY
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SERVER_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CLOSED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_SUCCESS
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UNSUPPORTED
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">protocol-types.h</a>
+</li>
+<li>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">protocol-types.h</a>
+</li>
+<li>GUAC_SOCKET_CLOSED
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_KEEP_ALIVE_INTERVAL
+: <a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">socket-constants.h</a>
+</li>
+<li>GUAC_SOCKET_OPEN
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">socket-types.h</a>
+</li>
+<li>GUAC_SOCKET_OUTPUT_BUFFER_SIZE
+: <a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">socket-constants.h</a>
+</li>
+<li>GUAC_STATUS_BUSY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CANCELED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_CLOSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INPUT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INTERNAL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab">error-types.h</a>
+</li>
+<li>GUAC_STATUS_INVALID_ARGUMENT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_IO_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_MEMORY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NO_SPACE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_AVAILABLE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_FOUND
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_INPLEMENTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c">error-types.h</a>
+</li>
+<li>GUAC_STATUS_NOT_SUPPORTED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e">error-types.h</a>
+</li>
+<li>GUAC_STATUS_OUT_OF_RANGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PERMISSION_DENIED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740">error-types.h</a>
+</li>
+<li>GUAC_STATUS_PROTOCOL_ERROR
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787">error-types.h</a>
+</li>
+<li>GUAC_STATUS_REFUSED
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_RESULT_TOO_LARGE
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SEE_ERRNO
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7">error-types.h</a>
+</li>
+<li>GUAC_STATUS_SUCCESS
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TIMEOUT
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TOO_MANY
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546">error-types.h</a>
+</li>
+<li>GUAC_STATUS_TRY_AGAIN
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a">error-types.h</a>
+</li>
+<li>GUAC_STATUS_WOULD_BLOCK
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f">error-types.h</a>
+</li>
+<li>GUAC_USER_CLOSED_STREAM_INDEX
+: <a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">user-constants.h</a>
+</li>
+<li>GUAC_USER_ID_PREFIX
+: <a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_OBJECTS
+: <a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">user-constants.h</a>
+</li>
+<li>GUAC_USER_MAX_STREAMS
+: <a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">user-constants.h</a>
+</li>
+<li>GUAC_USER_OBJECT_ROOT_NAME
+: <a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">user-constants.h</a>
+</li>
+<li>GUAC_USER_STREAM_INDEX_MIMETYPE
+: <a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">user-constants.h</a>
+</li>
+<li>GUAC_USER_UNDEFINED_OBJECT_INDEX
+: <a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">user-constants.h</a>
+</li>
+<li>GUACAMOLE_PROTOCOL_VERSION
+: <a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">protocol-constants.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_h.html b/doc/1.1.0/libguac/globals_h.html
new file mode 100644
index 0000000..aac6230
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_h.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_h"></a>- h -</h3><ul>
+<li>guac_hash_surface()
+: <a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">hash.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_l.html b/doc/1.1.0/libguac/globals_l.html
new file mode 100644
index 0000000..f86f46f
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_l.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_l"></a>- l -</h3><ul>
+<li>guac_line_cap_style
+: <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">protocol-types.h</a>
+</li>
+<li>guac_line_join_style
+: <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_p.html b/doc/1.1.0/libguac/globals_p.html
new file mode 100644
index 0000000..d27d790
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_p.html
@@ -0,0 +1,288 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_p"></a>- p -</h3><ul>
+<li>guac_parse_state
+: <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">parser-types.h</a>
+</li>
+<li>guac_parser_alloc()
+: <a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">parser.h</a>
+</li>
+<li>guac_parser_append()
+: <a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">parser.h</a>
+</li>
+<li>guac_parser_expect()
+: <a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">parser.h</a>
+</li>
+<li>guac_parser_free()
+: <a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">parser.h</a>
+</li>
+<li>guac_parser_length()
+: <a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">parser.h</a>
+</li>
+<li>guac_parser_read()
+: <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">parser.h</a>
+</li>
+<li>guac_parser_shift()
+: <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">parser.h</a>
+</li>
+<li>guac_pool_alloc()
+: <a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">pool.h</a>
+</li>
+<li>guac_pool_free()
+: <a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">pool.h</a>
+</li>
+<li>guac_pool_free_int()
+: <a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">pool.h</a>
+</li>
+<li>guac_pool_next_int()
+: <a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">pool.h</a>
+</li>
+<li>guac_protocol_decode_base64()
+: <a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">protocol.h</a>
+</li>
+<li>guac_protocol_send_ack()
+: <a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">protocol.h</a>
+</li>
+<li>guac_protocol_send_arc()
+: <a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">protocol.h</a>
+</li>
+<li>guac_protocol_send_args()
+: <a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">protocol.h</a>
+</li>
+<li>guac_protocol_send_argv()
+: <a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">protocol.h</a>
+</li>
+<li>guac_protocol_send_audio()
+: <a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">protocol.h</a>
+</li>
+<li>guac_protocol_send_blob()
+: <a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">protocol.h</a>
+</li>
+<li>guac_protocol_send_blobs()
+: <a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">protocol.h</a>
+</li>
+<li>guac_protocol_send_body()
+: <a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">protocol.h</a>
+</li>
+<li>guac_protocol_send_cfill()
+: <a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">protocol.h</a>
+</li>
+<li>guac_protocol_send_clip()
+: <a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">protocol.h</a>
+</li>
+<li>guac_protocol_send_clipboard()
+: <a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">protocol.h</a>
+</li>
+<li>guac_protocol_send_close()
+: <a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">protocol.h</a>
+</li>
+<li>guac_protocol_send_connect()
+: <a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">protocol.h</a>
+</li>
+<li>guac_protocol_send_copy()
+: <a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">protocol.h</a>
+</li>
+<li>guac_protocol_send_cstroke()
+: <a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">protocol.h</a>
+</li>
+<li>guac_protocol_send_cursor()
+: <a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">protocol.h</a>
+</li>
+<li>guac_protocol_send_curve()
+: <a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">protocol.h</a>
+</li>
+<li>guac_protocol_send_disconnect()
+: <a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">protocol.h</a>
+</li>
+<li>guac_protocol_send_dispose()
+: <a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">protocol.h</a>
+</li>
+<li>guac_protocol_send_distort()
+: <a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">protocol.h</a>
+</li>
+<li>guac_protocol_send_end()
+: <a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">protocol.h</a>
+</li>
+<li>guac_protocol_send_error()
+: <a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">protocol.h</a>
+</li>
+<li>guac_protocol_send_file()
+: <a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">protocol.h</a>
+</li>
+<li>guac_protocol_send_filesystem()
+: <a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">protocol.h</a>
+</li>
+<li>guac_protocol_send_identity()
+: <a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">protocol.h</a>
+</li>
+<li>guac_protocol_send_img()
+: <a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">protocol.h</a>
+</li>
+<li>guac_protocol_send_key()
+: <a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">protocol.h</a>
+</li>
+<li>guac_protocol_send_lfill()
+: <a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">protocol.h</a>
+</li>
+<li>guac_protocol_send_line()
+: <a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">protocol.h</a>
+</li>
+<li>guac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">protocol.h</a>
+</li>
+<li>guac_protocol_send_lstroke()
+: <a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_mouse()
+: <a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">protocol.h</a>
+</li>
+<li>guac_protocol_send_move()
+: <a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">protocol.h</a>
+</li>
+<li>guac_protocol_send_name()
+: <a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">protocol.h</a>
+</li>
+<li>guac_protocol_send_nest()
+: <a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">protocol.h</a>
+</li>
+<li>guac_protocol_send_nop()
+: <a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">protocol.h</a>
+</li>
+<li>guac_protocol_send_pipe()
+: <a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">protocol.h</a>
+</li>
+<li>guac_protocol_send_pop()
+: <a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">protocol.h</a>
+</li>
+<li>guac_protocol_send_push()
+: <a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">protocol.h</a>
+</li>
+<li>guac_protocol_send_ready()
+: <a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">protocol.h</a>
+</li>
+<li>guac_protocol_send_rect()
+: <a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">protocol.h</a>
+</li>
+<li>guac_protocol_send_reset()
+: <a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">protocol.h</a>
+</li>
+<li>guac_protocol_send_select()
+: <a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">protocol.h</a>
+</li>
+<li>guac_protocol_send_set()
+: <a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">protocol.h</a>
+</li>
+<li>guac_protocol_send_shade()
+: <a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">protocol.h</a>
+</li>
+<li>guac_protocol_send_size()
+: <a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">protocol.h</a>
+</li>
+<li>guac_protocol_send_start()
+: <a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">protocol.h</a>
+</li>
+<li>guac_protocol_send_sync()
+: <a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">protocol.h</a>
+</li>
+<li>guac_protocol_send_transfer()
+: <a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">protocol.h</a>
+</li>
+<li>guac_protocol_send_transform()
+: <a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">protocol.h</a>
+</li>
+<li>guac_protocol_send_undefine()
+: <a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">protocol.h</a>
+</li>
+<li>guac_protocol_send_video()
+: <a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">protocol.h</a>
+</li>
+<li>guac_protocol_status
+: <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">protocol-types.h</a>
+</li>
+<li>vguac_protocol_send_log()
+: <a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">protocol.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_s.html b/doc/1.1.0/libguac/globals_s.html
new file mode 100644
index 0000000..e7603c5
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_s.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_alloc()
+: <a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">socket.h</a>
+</li>
+<li>guac_socket_broadcast()
+: <a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">socket.h</a>
+</li>
+<li>guac_socket_flush()
+: <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">socket.h</a>
+</li>
+<li>guac_socket_flush_base64()
+: <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">socket.h</a>
+</li>
+<li>guac_socket_flush_handler
+: <a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">socket-fntypes.h</a>
+</li>
+<li>guac_socket_free()
+: <a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">socket.h</a>
+</li>
+<li>guac_socket_free_handler
+: <a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">socket-fntypes.h</a>
+</li>
+<li>guac_socket_instruction_begin()
+: <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">socket.h</a>
+</li>
+<li>guac_socket_instruction_end()
+: <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">socket.h</a>
+</li>
+<li>guac_socket_lock_handler
+: <a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">socket-fntypes.h</a>
+</li>
+<li>guac_socket_nest()
+: <a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">socket.h</a>
+</li>
+<li>guac_socket_open()
+: <a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">socket.h</a>
+</li>
+<li>guac_socket_open_secure()
+: <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">socket-ssl.h</a>
+</li>
+<li>guac_socket_open_wsa()
+: <a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">socket-wsa.h</a>
+</li>
+<li>guac_socket_read()
+: <a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">socket.h</a>
+</li>
+<li>guac_socket_read_handler
+: <a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">socket-fntypes.h</a>
+</li>
+<li>guac_socket_require_keep_alive()
+: <a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">socket.h</a>
+</li>
+<li>guac_socket_select()
+: <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">socket.h</a>
+</li>
+<li>guac_socket_select_handler
+: <a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">socket-fntypes.h</a>
+</li>
+<li>guac_socket_state
+: <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">socket-types.h</a>
+</li>
+<li>guac_socket_tee()
+: <a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">socket.h</a>
+</li>
+<li>guac_socket_unlock_handler
+: <a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write()
+: <a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">socket.h</a>
+</li>
+<li>guac_socket_write_base64()
+: <a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">socket.h</a>
+</li>
+<li>guac_socket_write_handler
+: <a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write_int()
+: <a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">socket.h</a>
+</li>
+<li>guac_socket_write_string()
+: <a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">socket.h</a>
+</li>
+<li>guac_status
+: <a class="el" href="error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86">error-types.h</a>
+</li>
+<li>guac_status_string()
+: <a class="el" href="error_8h.html#a39a2290527ea7c3f0acb07f002c397b1">error.h</a>
+</li>
+<li>guac_strlcat()
+: <a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">string.h</a>
+</li>
+<li>guac_strlcpy()
+: <a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">string.h</a>
+</li>
+<li>guac_strljoin()
+: <a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">string.h</a>
+</li>
+<li>guac_surface_cmp()
+: <a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">hash.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_t.html b/doc/1.1.0/libguac/globals_t.html
new file mode 100644
index 0000000..9a2cf09
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_t.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp
+: <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">timestamp-types.h</a>
+</li>
+<li>guac_timestamp_current()
+: <a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">timestamp.h</a>
+</li>
+<li>guac_timestamp_msleep()
+: <a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">timestamp.h</a>
+</li>
+<li>guac_transfer_function
+: <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">protocol-types.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_type.html b/doc/1.1.0/libguac/globals_type.html
new file mode 100644
index 0000000..3895cb3
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_type.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a id="index_a"></a>- a -</h3><ul>
+<li>guac_audio_encoder_begin_handler
+: <a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_end_handler
+: <a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_flush_handler
+: <a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_join_handler
+: <a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">audio-fntypes.h</a>
+</li>
+<li>guac_audio_encoder_write_handler
+: <a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">audio-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_c"></a>- c -</h3><ul>
+<li>guac_client_free_handler
+: <a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">client-fntypes.h</a>
+</li>
+<li>guac_client_init_handler
+: <a class="el" href="client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c">client-fntypes.h</a>
+</li>
+<li>guac_client_log_handler
+: <a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">client-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_s"></a>- s -</h3><ul>
+<li>guac_socket_flush_handler
+: <a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">socket-fntypes.h</a>
+</li>
+<li>guac_socket_free_handler
+: <a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">socket-fntypes.h</a>
+</li>
+<li>guac_socket_lock_handler
+: <a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">socket-fntypes.h</a>
+</li>
+<li>guac_socket_read_handler
+: <a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">socket-fntypes.h</a>
+</li>
+<li>guac_socket_select_handler
+: <a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">socket-fntypes.h</a>
+</li>
+<li>guac_socket_unlock_handler
+: <a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">socket-fntypes.h</a>
+</li>
+<li>guac_socket_write_handler
+: <a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">socket-fntypes.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_t"></a>- t -</h3><ul>
+<li>guac_timestamp
+: <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">timestamp-types.h</a>
+</li>
+</ul>
+
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_ack_handler
+: <a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">user-fntypes.h</a>
+</li>
+<li>guac_user_argv_handler
+: <a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">user-fntypes.h</a>
+</li>
+<li>guac_user_audio_handler
+: <a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">user-fntypes.h</a>
+</li>
+<li>guac_user_blob_handler
+: <a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">user-fntypes.h</a>
+</li>
+<li>guac_user_callback
+: <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">user-fntypes.h</a>
+</li>
+<li>guac_user_clipboard_handler
+: <a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">user-fntypes.h</a>
+</li>
+<li>guac_user_end_handler
+: <a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">user-fntypes.h</a>
+</li>
+<li>guac_user_file_handler
+: <a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">user-fntypes.h</a>
+</li>
+<li>guac_user_get_handler
+: <a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">user-fntypes.h</a>
+</li>
+<li>guac_user_join_handler
+: <a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">user-fntypes.h</a>
+</li>
+<li>guac_user_key_handler
+: <a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">user-fntypes.h</a>
+</li>
+<li>guac_user_leave_handler
+: <a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">user-fntypes.h</a>
+</li>
+<li>guac_user_mouse_handler
+: <a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">user-fntypes.h</a>
+</li>
+<li>guac_user_pipe_handler
+: <a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">user-fntypes.h</a>
+</li>
+<li>guac_user_put_handler
+: <a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">user-fntypes.h</a>
+</li>
+<li>guac_user_size_handler
+: <a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">user-fntypes.h</a>
+</li>
+<li>guac_user_sync_handler
+: <a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">user-fntypes.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_u.html b/doc/1.1.0/libguac/globals_u.html
new file mode 100644
index 0000000..addac6d
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_u.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:</div>
+
+<h3><a id="index_u"></a>- u -</h3><ul>
+<li>guac_user_abort()
+: <a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">user.h</a>
+</li>
+<li>guac_user_ack_handler
+: <a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">user-fntypes.h</a>
+</li>
+<li>guac_user_alloc()
+: <a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">user.h</a>
+</li>
+<li>guac_user_alloc_object()
+: <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">user.h</a>
+</li>
+<li>guac_user_alloc_stream()
+: <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">user.h</a>
+</li>
+<li>guac_user_argv_handler
+: <a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">user-fntypes.h</a>
+</li>
+<li>guac_user_audio_handler
+: <a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">user-fntypes.h</a>
+</li>
+<li>guac_user_blob_handler
+: <a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">user-fntypes.h</a>
+</li>
+<li>guac_user_callback
+: <a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">user-fntypes.h</a>
+</li>
+<li>guac_user_clipboard_handler
+: <a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">user-fntypes.h</a>
+</li>
+<li>guac_user_end_handler
+: <a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">user-fntypes.h</a>
+</li>
+<li>guac_user_file_handler
+: <a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">user-fntypes.h</a>
+</li>
+<li>guac_user_free()
+: <a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">user.h</a>
+</li>
+<li>guac_user_free_object()
+: <a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">user.h</a>
+</li>
+<li>guac_user_free_stream()
+: <a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">user.h</a>
+</li>
+<li>guac_user_get_handler
+: <a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">user-fntypes.h</a>
+</li>
+<li>guac_user_handle_connection()
+: <a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">user.h</a>
+</li>
+<li>guac_user_handle_instruction()
+: <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">user.h</a>
+</li>
+<li>guac_user_join_handler
+: <a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">user-fntypes.h</a>
+</li>
+<li>guac_user_key_handler
+: <a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">user-fntypes.h</a>
+</li>
+<li>guac_user_leave_handler
+: <a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">user-fntypes.h</a>
+</li>
+<li>guac_user_log()
+: <a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">user.h</a>
+</li>
+<li>guac_user_mouse_handler
+: <a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">user-fntypes.h</a>
+</li>
+<li>guac_user_parse_args_boolean()
+: <a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">user.h</a>
+</li>
+<li>guac_user_parse_args_int()
+: <a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">user.h</a>
+</li>
+<li>guac_user_parse_args_string()
+: <a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">user.h</a>
+</li>
+<li>guac_user_pipe_handler
+: <a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">user-fntypes.h</a>
+</li>
+<li>guac_user_put_handler
+: <a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">user-fntypes.h</a>
+</li>
+<li>guac_user_size_handler
+: <a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">user-fntypes.h</a>
+</li>
+<li>guac_user_stop()
+: <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">user.h</a>
+</li>
+<li>guac_user_stream_argv()
+: <a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">user.h</a>
+</li>
+<li>guac_user_stream_jpeg()
+: <a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">user.h</a>
+</li>
+<li>guac_user_stream_png()
+: <a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">user.h</a>
+</li>
+<li>guac_user_stream_webp()
+: <a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">user.h</a>
+</li>
+<li>guac_user_supports_webp()
+: <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">user.h</a>
+</li>
+<li>guac_user_sync_handler
+: <a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">user-fntypes.h</a>
+</li>
+<li>guac_utf8_charsize()
+: <a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">unicode.h</a>
+</li>
+<li>guac_utf8_read()
+: <a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">unicode.h</a>
+</li>
+<li>guac_utf8_strlen()
+: <a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">unicode.h</a>
+</li>
+<li>guac_utf8_write()
+: <a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">unicode.h</a>
+</li>
+<li>vguac_user_abort()
+: <a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">user.h</a>
+</li>
+<li>vguac_user_log()
+: <a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">user.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/globals_vars.html b/doc/1.1.0/libguac/globals_vars.html
new file mode 100644
index 0000000..21a82f0
--- /dev/null
+++ b/doc/1.1.0/libguac/globals_vars.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>GUAC_DEFAULT_LAYER
+: <a class="el" href="client_8h.html#a336a485c006394d5eea88bf6d8d422d8">client.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/hash_8h.html b/doc/1.1.0/libguac/hash_8h.html
new file mode 100644
index 0000000..15545e5
--- /dev/null
+++ b/doc/1.1.0/libguac/hash_8h.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/hash.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">hash.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for producing likely-to-be-unique hash values for images.  
+<a href="#details">More...</a></p>
+
+<p><a href="hash_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a> (cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Produces a 24-bit hash value from all pixels of the given surface.  <a href="#ae8243122fb0b158a22058f9dbd2bbc0c">More...</a><br /></td></tr>
+<tr class="separator:ae8243122fb0b158a22058f9dbd2bbc0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a377c701a920281a98cbcf0842124aaac"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a> (cairo_surface_t *a, cairo_surface_t *b)</td></tr>
+<tr class="memdesc:a377c701a920281a98cbcf0842124aaac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively.  <a href="#a377c701a920281a98cbcf0842124aaac">More...</a><br /></td></tr>
+<tr class="separator:a377c701a920281a98cbcf0842124aaac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for producing likely-to-be-unique hash values for images. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ae8243122fb0b158a22058f9dbd2bbc0c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae8243122fb0b158a22058f9dbd2bbc0c">&#9670;&nbsp;</a></span>guac_hash_surface()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">unsigned int guac_hash_surface </td>
+          <td>(</td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Produces a 24-bit hash value from all pixels of the given surface. </p>
+<p>The surface provided must be RGB or ARGB with each pixel stored in 32 bits. The hashing algorithm used is a variant of the cyclic polynomial rolling hash.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">surface</td><td>The Cairo surface to hash. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary 24-bit unsigned integer value intended to be well distributed across different images. </dd></dl>
+
+</div>
+</div>
+<a id="a377c701a920281a98cbcf0842124aaac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a377c701a920281a98cbcf0842124aaac">&#9670;&nbsp;</a></span>guac_surface_cmp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_surface_cmp </td>
+          <td>(</td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>b</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">a</td><td>The first Cairo surface to compare. </td></tr>
+    <tr><td class="paramname">b</td><td>The Cairo surface to compare the first surface against. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/hash_8h_source.html b/doc/1.1.0/libguac/hash_8h_source.html
new file mode 100644
index 0000000..77fef48
--- /dev/null
+++ b/doc/1.1.0/libguac/hash_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/hash.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">hash.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="hash_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_HASH_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_HASH_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a>(cairo_surface_t* surface);</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="keywordtype">int</span> <a class="code" href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a>(cairo_surface_t* a, cairo_surface_t* b);</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="ttc" id="hash_8h_html_a377c701a920281a98cbcf0842124aaac"><div class="ttname"><a href="hash_8h.html#a377c701a920281a98cbcf0842124aaac">guac_surface_cmp</a></div><div class="ttdeci">int guac_surface_cmp(cairo_surface_t *a, cairo_surface_t *b)</div><div class="ttdoc">Given two Cairo surfaces, returns zero if the data contained within each is identical, and a positive or negative value if the value of the first is found to be lexically greater or less than the second respectively. </div></div>
+<div class="ttc" id="hash_8h_html_ae8243122fb0b158a22058f9dbd2bbc0c"><div class="ttname"><a href="hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c">guac_hash_surface</a></div><div class="ttdeci">unsigned int guac_hash_surface(cairo_surface_t *surface)</div><div class="ttdoc">Produces a 24-bit hash value from all pixels of the given surface. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/index.html b/doc/1.1.0/libguac/index.html
new file mode 100644
index 0000000..56ee916
--- /dev/null
+++ b/doc/1.1.0/libguac/index.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">libguac Documentation</div>  </div>
+</div><!--header-->
+<div class="contents">
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/jquery.js b/doc/1.1.0/libguac/jquery.js
new file mode 100644
index 0000000..2771c74
--- /dev/null
+++ b/doc/1.1.0/libguac/jquery.js
@@ -0,0 +1,115 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ Permission is hereby granted, free of charge, to any person obtaining
+ a copy of this software and associated documentation files (the
+ "Software"), to deal in the Software without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Software, and to
+ permit persons to whom the Software is furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+/*!
+ * jQuery JavaScript Library v1.7.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Nov 21 21:11:03 2011 -0500
+ */
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.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(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*!
+ * Sizzle CSS Selector Engine
+ *  Copyright 2011, The Dojo Foundation
+ *  Released under the MIT, BSD, and GPL Licenses.
+ *  More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ *	jquery.ui.widget.js
+ */
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);/*!
+ PowerTip - v1.2.0 - 2013-04-03
+ http://stevenbenner.github.com/jquery-powertip/
+ Copyright (c) 2013 Steven Benner (http://stevenbenner.com/).
+ Released under MIT license.
+ https://raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
+*/
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{a(jQuery)}}(function(k){var A=k(document),s=k(window),w=k("body");var n="displayController",e="hasActiveHover",d="forcedOpen",u="hasMouseMove",f="mouseOnToPopup",g="originalTitle",y="powertip",o="powertipjq",l="powertiptarget",E=180/Math.PI;var c={isTipOpen:false,isFixedTipOpen:false,isClosing:false,tipOpenImminent:false,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:false,delayInProgress:false,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0};var p={none:0,top:1,bottom:2,left:4,right:8};k.fn.powerTip=function(F,N){if(!this.length){return this}if(k.type(F)==="string"&&k.powerTip[F]){return k.powerTip[F].call(this,this,N)}var O=k.extend({},k.fn.powerTip.defaults,F),G=new x(O);h();this.each(function M(){var R=k(this),Q=R.data(y),P=R.data(o),T=R.data(l),S;if(R.data(n)){k.powerTip.destroy(R)}S=R.attr("title");if(!Q&&!T&&!P&&S){R.data(y,S);R.data(g,S);R.removeAttr("title")}R.data(n,new t(R,O,G))});if(!O.manual){this.on({"mouseenter.powertip":function J(P){k.powerTip.show(this,P)},"mouseleave.powertip":function L(){k.powerTip.hide(this)},"focus.powertip":function K(){k.powerTip.show(this)},"blur.powertip":function H(){k.powerTip.hide(this,true)},"keydown.powertip":function I(P){if(P.keyCode===27){k.powerTip.hide(this,true)}}})}return this};k.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false};k.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};k.powerTip={show:function z(F,G){if(G){i(G);c.previousX=G.pageX;c.previousY=G.pageY;k(F).data(n).show()}else{k(F).first().data(n).show(true,true)}return F},reposition:function r(F){k(F).first().data(n).resetPosition();return F},hide:function D(G,F){if(G){k(G).first().data(n).hide(F)}else{if(c.activeHover){c.activeHover.data(n).hide(true)}}return G},destroy:function C(G){k(G).off(".powertip").each(function F(){var I=k(this),H=[g,n,e,d];if(I.data(g)){I.attr("title",I.data(g));H.push(y)}I.removeData(H)});return G}};k.powerTip.showTip=k.powerTip.show;k.powerTip.closeTip=k.powerTip.hide;function b(){var F=this;F.top="auto";F.left="auto";F.right="auto";F.bottom="auto";F.set=function(H,G){if(k.isNumeric(G)){F[H]=Math.round(G)}}}function t(K,N,F){var J=null;function L(P,Q){M();if(!K.data(e)){if(!P){c.tipOpenImminent=true;J=setTimeout(function O(){J=null;I()},N.intentPollInterval)}else{if(Q){K.data(d,true)}F.showTip(K)}}}function G(P){M();c.tipOpenImminent=false;if(K.data(e)){K.data(d,false);if(!P){c.delayInProgress=true;J=setTimeout(function O(){J=null;F.hideTip(K);c.delayInProgress=false},N.closeDelay)}else{F.hideTip(K)}}}function I(){var Q=Math.abs(c.previousX-c.currentX),O=Math.abs(c.previousY-c.currentY),P=Q+O;if(P<N.intentSensitivity){F.showTip(K)}else{c.previousX=c.currentX;c.previousY=c.currentY;L()}}function M(){J=clearTimeout(J);c.delayInProgress=false}function H(){F.resetPosition(K)}this.show=L;this.hide=G;this.cancel=M;this.resetPosition=H}function j(){function G(M,L,J,O,P){var K=L.split("-")[0],N=new b(),I;if(q(M)){I=H(M,K)}else{I=F(M,K)}switch(L){case"n":N.set("left",I.left-(J/2));N.set("bottom",c.windowHeight-I.top+P);break;case"e":N.set("left",I.left+P);N.set("top",I.top-(O/2));break;case"s":N.set("left",I.left-(J/2));N.set("top",I.top+P);break;case"w":N.set("top",I.top-(O/2));N.set("right",c.windowWidth-I.left+P);break;case"nw":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"nw-alt":N.set("left",I.left);N.set("bottom",c.windowHeight-I.top+P);break;case"ne":N.set("left",I.left-20);N.set("bottom",c.windowHeight-I.top+P);break;case"ne-alt":N.set("bottom",c.windowHeight-I.top+P);N.set("right",c.windowWidth-I.left);break;case"sw":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left-20);break;case"sw-alt":N.set("left",I.left);N.set("top",I.top+P);break;case"se":N.set("left",I.left-20);N.set("top",I.top+P);break;case"se-alt":N.set("top",I.top+P);N.set("right",c.windowWidth-I.left);break}return N}function F(K,J){var O=K.offset(),N=K.outerWidth(),I=K.outerHeight(),M,L;switch(J){case"n":M=O.left+N/2;L=O.top;break;case"e":M=O.left+N;L=O.top+I/2;break;case"s":M=O.left+N/2;L=O.top+I;break;case"w":M=O.left;L=O.top+I/2;break;case"nw":M=O.left;L=O.top;break;case"ne":M=O.left+N;L=O.top;break;case"sw":M=O.left;L=O.top+I;break;case"se":M=O.left+N;L=O.top+I;break}return{top:L,left:M}}function H(O,K){var S=O.closest("svg")[0],N=O[0],W=S.createSVGPoint(),L=N.getBBox(),V=N.getScreenCTM(),M=L.width/2,Q=L.height/2,P=[],I=["nw","n","ne","e","se","s","sw","w"],U,X,R,T;function J(){P.push(W.matrixTransform(V))}W.x=L.x;W.y=L.y;J();W.x+=M;J();W.x+=M;J();W.y+=Q;J();W.y+=Q;J();W.x-=M;J();W.x-=M;J();W.y-=Q;J();if(P[0].y!==P[1].y||P[0].x!==P[7].x){X=Math.atan2(V.b,V.a)*E;R=Math.ceil(((X%360)-22.5)/45);if(R<1){R+=8}while(R--){I.push(I.shift())}}for(T=0;T<P.length;T++){if(I[T]===K){U=P[T];break}}return{top:U.y+c.scrollTop,left:U.x+c.scrollLeft}}this.compute=G}function x(Q){var P=new j(),O=k("#"+Q.popupId);if(O.length===0){O=k("<div/>",{id:Q.popupId});if(w.length===0){w=k("body")}w.append(O)}if(Q.followMouse){if(!O.data(u)){A.on("mousemove",M);s.on("scroll",M);O.data(u,true)}}if(Q.mouseOnToPopup){O.on({mouseenter:function L(){if(O.data(f)){if(c.activeHover){c.activeHover.data(n).cancel()}}},mouseleave:function N(){if(c.activeHover){c.activeHover.data(n).hide()}}})}function I(S){S.data(e,true);O.queue(function R(T){H(S);T()})}function H(S){var U;if(!S.data(e)){return}if(c.isTipOpen){if(!c.isClosing){K(c.activeHover)}O.delay(100).queue(function R(V){H(S);V()});return}S.trigger("powerTipPreRender");U=B(S);if(U){O.empty().append(U)}else{return}S.trigger("powerTipRender");c.activeHover=S;c.isTipOpen=true;O.data(f,Q.mouseOnToPopup);if(!Q.followMouse){G(S);c.isFixedTipOpen=true}else{M()}O.fadeIn(Q.fadeInTime,function T(){if(!c.desyncTimeout){c.desyncTimeout=setInterval(J,500)}S.trigger("powerTipOpen")})}function K(R){c.isClosing=true;c.activeHover=null;c.isTipOpen=false;c.desyncTimeout=clearInterval(c.desyncTimeout);R.data(e,false);R.data(d,false);O.fadeOut(Q.fadeOutTime,function S(){var T=new b();c.isClosing=false;c.isFixedTipOpen=false;O.removeClass();T.set("top",c.currentY+Q.offset);T.set("left",c.currentX+Q.offset);O.css(T);R.trigger("powerTipClose")})}function M(){if(!c.isFixedTipOpen&&(c.isTipOpen||(c.tipOpenImminent&&O.data(u)))){var R=O.outerWidth(),V=O.outerHeight(),U=new b(),S,T;U.set("top",c.currentY+Q.offset);U.set("left",c.currentX+Q.offset);S=m(U,R,V);if(S!==p.none){T=a(S);if(T===1){if(S===p.right){U.set("left",c.windowWidth-R)}else{if(S===p.bottom){U.set("top",c.scrollTop+c.windowHeight-V)}}}else{U.set("left",c.currentX-R-Q.offset);U.set("top",c.currentY-V-Q.offset)}}O.css(U)}}function G(S){var R,T;if(Q.smartPlacement){R=k.fn.powerTip.smartPlacementLists[Q.placement];k.each(R,function(U,W){var V=m(F(S,W),O.outerWidth(),O.outerHeight());T=W;if(V===p.none){return false}})}else{F(S,Q.placement);T=Q.placement}O.addClass(T)}function F(U,T){var R=0,S,W,V=new b();V.set("top",0);V.set("left",0);O.css(V);do{S=O.outerWidth();W=O.outerHeight();V=P.compute(U,T,S,W,Q.offset);O.css(V)}while(++R<=5&&(S!==O.outerWidth()||W!==O.outerHeight()));return V}function J(){var R=false;if(c.isTipOpen&&!c.isClosing&&!c.delayInProgress){if(c.activeHover.data(e)===false||c.activeHover.is(":disabled")){R=true}else{if(!v(c.activeHover)&&!c.activeHover.is(":focus")&&!c.activeHover.data(d)){if(O.data(f)){if(!v(O)){R=true}}else{R=true}}}if(R){K(c.activeHover)}}}this.showTip=I;this.hideTip=K;this.resetPosition=G}function q(F){return window.SVGElement&&F[0] instanceof SVGElement}function h(){if(!c.mouseTrackingActive){c.mouseTrackingActive=true;k(function H(){c.scrollLeft=s.scrollLeft();c.scrollTop=s.scrollTop();c.windowWidth=s.width();c.windowHeight=s.height()});A.on("mousemove",i);s.on({resize:function G(){c.windowWidth=s.width();c.windowHeight=s.height()},scroll:function F(){var I=s.scrollLeft(),J=s.scrollTop();if(I!==c.scrollLeft){c.currentX+=I-c.scrollLeft;c.scrollLeft=I}if(J!==c.scrollTop){c.currentY+=J-c.scrollTop;c.scrollTop=J}}})}}function i(F){c.currentX=F.pageX;c.currentY=F.pageY}function v(F){var H=F.offset(),J=F[0].getBoundingClientRect(),I=J.right-J.left,G=J.bottom-J.top;return c.currentX>=H.left&&c.currentX<=H.left+I&&c.currentY>=H.top&&c.currentY<=H.top+G}function B(I){var G=I.data(y),F=I.data(o),K=I.data(l),H,J;if(G){if(k.isFunction(G)){G=G.call(I[0])}J=G}else{if(F){if(k.isFunction(F)){F=F.call(I[0])}if(F.length>0){J=F.clone(true,true)}}else{if(K){H=k("#"+K);if(H.length>0){J=H.html()}}}}return J}function m(M,L,K){var G=c.scrollTop,J=c.scrollLeft,I=G+c.windowHeight,F=J+c.windowWidth,H=p.none;if(M.top<G||Math.abs(M.bottom-c.windowHeight)-K<G){H|=p.top}if(M.top+K>I||Math.abs(M.bottom-c.windowHeight)>I){H|=p.bottom}if(M.left<J||M.right+L>F){H|=p.left}if(M.left+L>F||M.right<J){H|=p.right}return H}function a(G){var F=0;while(G){G&=G-1;F++}return F}}));/*!
+ * jQuery UI Touch Punch 0.2.3
+ *
+ * Copyright 2011–2014, Dave Furfero
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ *
+ * Depends:
+ *  jquery.ui.widget.js
+ *  jquery.ui.mouse.js
+ */
+(function(b){b.support.touch="ontouchend" in document;if(!b.support.touch){return}var d=b.ui.mouse.prototype,f=d._mouseInit,c=d._mouseDestroy,a;function e(h,i){if(h.originalEvent.touches.length>1){return}h.preventDefault();var j=h.originalEvent.changedTouches[0],g=document.createEvent("MouseEvents");g.initMouseEvent(i,true,true,window,1,j.screenX,j.screenY,j.clientX,j.clientY,false,false,false,false,0,null);h.target.dispatchEvent(g)}d._touchStart=function(h){var g=this;if(a||!g._mouseCapture(h.originalEvent.changedTouches[0])){return}a=true;g._touchMoved=false;e(h,"mouseover");e(h,"mousemove");e(h,"mousedown")};d._touchMove=function(g){if(!a){return}this._touchMoved=true;e(g,"mousemove")};d._touchEnd=function(g){if(!a){return}e(g,"mouseup");e(g,"mouseout");if(!this._touchMoved){e(g,"click")}a=false};d._mouseInit=function(){var g=this;g.element.bind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});f.call(g)};d._mouseDestroy=function(){var g=this;g.element.unbind({touchstart:b.proxy(g,"_touchStart"),touchmove:b.proxy(g,"_touchMove"),touchend:b.proxy(g,"_touchEnd")});c.call(g)}})(jQuery);/*!
+ * SmartMenus jQuery Plugin - v1.0.0 - January 27, 2016
+ * http://www.smartmenus.org/
+ *
+ * Copyright Vasil Dinkov, Vadikom Web Ltd.
+ * http://vadikom.com
+ *
+ * Licensed MIT
+ */
+(function(a){if(typeof define==="function"&&define.amd){define(["jquery"],a)}else{if(typeof module==="object"&&typeof module.exports==="object"){module.exports=a(require("jquery"))}else{a(jQuery)}}}(function(a){var b=[],e=!!window.createPopup,f=false,d="ontouchstart" in window,h=false,g=window.requestAnimationFrame||function(l){return setTimeout(l,1000/60)},c=window.cancelAnimationFrame||function(l){clearTimeout(l)};function k(m){var n=".smartmenus_mouse";if(!h&&!m){var o=true,l=null;a(document).bind(i([["mousemove",function(s){var t={x:s.pageX,y:s.pageY,timeStamp:new Date().getTime()};if(l){var q=Math.abs(l.x-t.x),p=Math.abs(l.y-t.y);if((q>0||p>0)&&q<=2&&p<=2&&t.timeStamp-l.timeStamp<=300){f=true;if(o){var r=a(s.target).closest("a");if(r.is("a")){a.each(b,function(){if(a.contains(this.$root[0],r[0])){this.itemEnter({currentTarget:r[0]});return false}})}o=false}}}l=t}],[d?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(p){if(j(p.originalEvent)){f=false}}]],n));h=true}else{if(h&&m){a(document).unbind(n);h=false}}}function j(l){return !/^(4|mouse)$/.test(l.pointerType)}function i(l,n){if(!n){n=""}var m={};a.each(l,function(o,p){m[p[0].split(" ").join(n+" ")+n]=p[1]});return m}a.SmartMenus=function(m,l){this.$root=a(m);this.opts=l;this.rootId="";this.accessIdPrefix="";this.$subArrow=null;this.activatedItems=[];this.visibleSubMenus=[];this.showTimeout=0;this.hideTimeout=0;this.scrollTimeout=0;this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.idInc=0;this.$firstLink=null;this.$firstSub=null;this.disabled=false;this.$disableOverlay=null;this.$touchScrollingSub=null;this.cssTransforms3d="perspective" in m.style||"webkitPerspective" in m.style;this.wasCollapsible=false;this.init()};a.extend(a.SmartMenus,{hideAll:function(){a.each(b,function(){this.menuHideAll()})},destroy:function(){while(b.length){b[0].destroy()}k(true)},prototype:{init:function(n){var l=this;if(!n){b.push(this);this.rootId=(new Date().getTime()+Math.random()+"").replace(/\D/g,"");this.accessIdPrefix="sm-"+this.rootId+"-";if(this.$root.hasClass("sm-rtl")){this.opts.rightToLeftSubMenus=true}var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(i([["mouseover focusin",a.proxy(this.rootOver,this)],["mouseout focusout",a.proxy(this.rootOut,this)],["keydown",a.proxy(this.rootKeyDown,this)]],r)).delegate("a",i([["mouseenter",a.proxy(this.itemEnter,this)],["mouseleave",a.proxy(this.itemLeave,this)],["mousedown",a.proxy(this.itemDown,this)],["focus",a.proxy(this.itemFocus,this)],["blur",a.proxy(this.itemBlur,this)],["click",a.proxy(this.itemClick,this)]],r));r+=this.rootId;if(this.opts.hideOnClick){a(document).bind(i([["touchstart",a.proxy(this.docTouchStart,this)],["touchmove",a.proxy(this.docTouchMove,this)],["touchend",a.proxy(this.docTouchEnd,this)],["click",a.proxy(this.docClick,this)]],r))}a(window).bind(i([["resize orientationchange",a.proxy(this.winResize,this)]],r));if(this.opts.subIndicators){this.$subArrow=a("<span/>").addClass("sub-arrow");if(this.opts.subIndicatorsText){this.$subArrow.html(this.opts.subIndicatorsText)}}k()}this.$firstSub=this.$root.find("ul").each(function(){l.menuInit(a(this))}).eq(0);this.$firstLink=this.$root.find("a").eq(0);if(this.opts.markCurrentItem){var p=/(index|default)\.[^#\?\/]*/i,m=/#.*/,q=window.location.href.replace(p,""),o=q.replace(m,"");this.$root.find("a").each(function(){var s=this.href.replace(p,""),t=a(this);if(s==q||s==o){t.addClass("current");if(l.opts.markCurrentTree){t.parentsUntil("[data-smartmenus-id]","ul").each(function(){a(this).dataSM("parent-a").addClass("current")})}}})}this.wasCollapsible=this.isCollapsible()},destroy:function(m){if(!m){var n=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(n).undelegate(n);n+=this.rootId;a(document).unbind(n);a(window).unbind(n);if(this.opts.subIndicators){this.$subArrow=null}}this.menuHideAll();var l=this;this.$root.find("ul").each(function(){var o=a(this);if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}if(o.dataSM("shown-before")){if(l.opts.subMenusMinWidth||l.opts.subMenusMaxWidth){o.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap")}if(o.dataSM("scroll-arrows")){o.dataSM("scroll-arrows").remove()}o.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})}if((o.attr("id")||"").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded");this.$root.find("a.has-submenu").each(function(){var o=a(this);if(o.attr("id").indexOf(l.accessIdPrefix)==0){o.removeAttr("id")}}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub");if(this.opts.subIndicators){this.$root.find("span.sub-arrow").remove()}if(this.opts.markCurrentItem){this.$root.find("a.current").removeClass("current")}if(!m){this.$root=null;this.$firstLink=null;this.$firstSub=null;if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}b.splice(a.inArray(this,b),1)}},disable:function(l){if(!this.disabled){this.menuHideAll();if(!l&&!this.opts.isPopup&&this.$root.is(":visible")){var m=this.$root.offset();this.$disableOverlay=a('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:m.top,left:m.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(true),opacity:0}).appendTo(document.body)}this.disabled=true}},docClick:function(l){if(this.$touchScrollingSub){this.$touchScrollingSub=null;return}if(this.visibleSubMenus.length&&!a.contains(this.$root[0],l.target)||a(l.target).is("a")){this.menuHideAll()}},docTouchEnd:function(m){if(!this.lastTouch){return}if(this.visibleSubMenus.length&&(this.lastTouch.x2===undefined||this.lastTouch.x1==this.lastTouch.x2)&&(this.lastTouch.y2===undefined||this.lastTouch.y1==this.lastTouch.y2)&&(!this.lastTouch.target||!a.contains(this.$root[0],this.lastTouch.target))){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},350)}this.lastTouch=null},docTouchMove:function(m){if(!this.lastTouch){return}var l=m.originalEvent.touches[0];this.lastTouch.x2=l.pageX;this.lastTouch.y2=l.pageY},docTouchStart:function(m){var l=m.originalEvent.touches[0];this.lastTouch={x1:l.pageX,y1:l.pageY,target:l.target}},enable:function(){if(this.disabled){if(this.$disableOverlay){this.$disableOverlay.remove();this.$disableOverlay=null}this.disabled=false}},getClosestMenu:function(m){var l=a(m).closest("ul");while(l.dataSM("in-mega")){l=l.parent().closest("ul")}return l[0]||null},getHeight:function(l){return this.getOffset(l,true)},getOffset:function(n,l){var m;if(n.css("display")=="none"){m={position:n[0].style.position,visibility:n[0].style.visibility};n.css({position:"absolute",visibility:"hidden"}).show()}var o=n[0].getBoundingClientRect&&n[0].getBoundingClientRect(),p=o&&(l?o.height||o.bottom-o.top:o.width||o.right-o.left);if(!p&&p!==0){p=l?n[0].offsetHeight:n[0].offsetWidth}if(m){n.hide().css(m)}return p},getStartZIndex:function(l){var m=parseInt(this[l?"$root":"$firstSub"].css("z-index"));if(!l&&isNaN(m)){m=parseInt(this.$root.css("z-index"))}return !isNaN(m)?m:1},getTouchPoint:function(l){return l.touches&&l.touches[0]||l.changedTouches&&l.changedTouches[0]||l},getViewport:function(l){var m=l?"Height":"Width",o=document.documentElement["client"+m],n=window["inner"+m];if(n){o=Math.min(o,n)}return o},getViewportHeight:function(){return this.getViewport(true)},getViewportWidth:function(){return this.getViewport()},getWidth:function(l){return this.getOffset(l)},handleEvents:function(){return !this.disabled&&this.isCSSOn()},handleItemEvents:function(l){return this.handleEvents()&&!this.isLinkInMegaMenu(l)},isCollapsible:function(){return this.$firstSub.css("position")=="static"},isCSSOn:function(){return this.$firstLink.css("display")=="block"},isFixed:function(){var l=this.$root.css("position")=="fixed";if(!l){this.$root.parentsUntil("body").each(function(){if(a(this).css("position")=="fixed"){l=true;return false}})}return l},isLinkInMegaMenu:function(l){return a(this.getClosestMenu(l[0])).hasClass("mega-menu")},isTouchMode:function(){return !f||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(p,l){var n=p.closest("ul"),q=n.dataSM("level");if(q>1&&(!this.activatedItems[q-2]||this.activatedItems[q-2][0]!=n.dataSM("parent-a")[0])){var m=this;a(n.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(n).each(function(){m.itemActivate(a(this).dataSM("parent-a"))})}if(!this.isCollapsible()||l){this.menuHideSubMenus(!this.activatedItems[q-1]||this.activatedItems[q-1][0]!=p[0]?q-1:q)}this.activatedItems[q-1]=p;if(this.$root.triggerHandler("activate.smapi",p[0])===false){return}var o=p.dataSM("sub");if(o&&(this.isTouchMode()||(!this.opts.showOnClick||this.clickActivated))){this.menuShow(o)}},itemBlur:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}this.$root.triggerHandler("blur.smapi",l[0])},itemClick:function(o){var n=a(o.currentTarget);if(!this.handleItemEvents(n)){return}if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==n.closest("ul")[0]){this.$touchScrollingSub=null;o.stopPropagation();return false}if(this.$root.triggerHandler("click.smapi",n[0])===false){return false}var p=a(o.target).is("span.sub-arrow"),m=n.dataSM("sub"),l=m?m.dataSM("level")==2:false;if(m&&!m.is(":visible")){if(this.opts.showOnClick&&l){this.clickActivated=true}this.itemActivate(n);if(m.is(":visible")){this.focusActivated=true;return false}}else{if(this.isCollapsible()&&p){this.itemActivate(n);this.menuHide(m);return false}}if(this.opts.showOnClick&&l||n.hasClass("disabled")||this.$root.triggerHandler("select.smapi",n[0])===false){return false}},itemDown:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}l.dataSM("mousedown",true)},itemEnter:function(n){var m=a(n.currentTarget);if(!this.handleItemEvents(m)){return}if(!this.isTouchMode()){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var l=this;this.showTimeout=setTimeout(function(){l.itemActivate(m)},this.opts.showOnClick&&m.closest("ul").dataSM("level")==1?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",m[0])},itemFocus:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(this.focusActivated&&(!this.isTouchMode()||!l.dataSM("mousedown"))&&(!this.activatedItems.length||this.activatedItems[this.activatedItems.length-1][0]!=l[0])){this.itemActivate(l,true)}this.$root.triggerHandler("focus.smapi",l[0])},itemLeave:function(m){var l=a(m.currentTarget);if(!this.handleItemEvents(l)){return}if(!this.isTouchMode()){l[0].blur();if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}}l.removeDataSM("mousedown");this.$root.triggerHandler("mouseleave.smapi",l[0])},menuHide:function(m){if(this.$root.triggerHandler("beforehide.smapi",m[0])===false){return}m.stop(true,true);if(m.css("display")!="none"){var l=function(){m.css("z-index","")};if(this.isCollapsible()){if(this.opts.collapsibleHideFunction){this.opts.collapsibleHideFunction.call(this,m,l)}else{m.hide(this.opts.collapsibleHideDuration,l)}}else{if(this.opts.hideFunction){this.opts.hideFunction.call(this,m,l)}else{m.hide(this.opts.hideDuration,l)}}if(m.dataSM("ie-shim")){m.dataSM("ie-shim").remove().css({"-webkit-transform":"",transform:""})}if(m.dataSM("scroll")){this.menuScrollStop(m);m.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()}m.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false");m.attr({"aria-expanded":"false","aria-hidden":"true"});var n=m.dataSM("level");this.activatedItems.splice(n-1,1);this.visibleSubMenus.splice(a.inArray(m,this.visibleSubMenus),1);this.$root.triggerHandler("hide.smapi",m[0])}},menuHideAll:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}var m=this.opts.isPopup?1:0;for(var l=this.visibleSubMenus.length-1;l>=m;l--){this.menuHide(this.visibleSubMenus[l])}if(this.opts.isPopup){this.$root.stop(true,true);if(this.$root.is(":visible")){if(this.opts.hideFunction){this.opts.hideFunction.call(this,this.$root)}else{this.$root.hide(this.opts.hideDuration)}if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").remove()}}}this.activatedItems=[];this.visibleSubMenus=[];this.clickActivated=false;this.focusActivated=false;this.zIndexInc=0;this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(n){for(var l=this.activatedItems.length-1;l>=n;l--){var m=this.activatedItems[l].dataSM("sub");if(m){this.menuHide(m)}}},menuIframeShim:function(l){if(e&&this.opts.overlapControlsInIE&&!l.dataSM("ie-shim")){l.dataSM("ie-shim",a("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))}},menuInit:function(l){if(!l.dataSM("in-mega")){if(l.hasClass("mega-menu")){l.find("ul").dataSM("in-mega",true)}var q=2,m=l[0];while((m=m.parentNode.parentNode)!=this.$root[0]){q++}var n=l.prevAll("a").eq(-1);if(!n.length){n=l.prevAll().find("a").eq(-1)}n.addClass("has-submenu").dataSM("sub",l);l.dataSM("parent-a",n).dataSM("level",q).parent().dataSM("sub",l);var o=n.attr("id")||this.accessIdPrefix+(++this.idInc),p=l.attr("id")||this.accessIdPrefix+(++this.idInc);n.attr({id:o,"aria-haspopup":"true","aria-controls":p,"aria-expanded":"false"});l.attr({id:p,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"});if(this.opts.subIndicators){n[this.opts.subIndicatorsPos](this.$subArrow.clone())}}},menuPosition:function(K){var r=K.dataSM("parent-a"),D=r.closest("li"),E=D.parent(),l=K.dataSM("level"),t=this.getWidth(K),J=this.getHeight(K),u=r.offset(),o=u.left,m=u.top,q=this.getWidth(r),F=this.getHeight(r),H=a(window),v=H.scrollLeft(),s=H.scrollTop(),z=this.getViewportWidth(),L=this.getViewportHeight(),w=E.parent().is("[data-sm-horizontal-sub]")||l==2&&!E.hasClass("sm-vertical"),B=this.opts.rightToLeftSubMenus&&!D.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&D.is("[data-sm-reverse]"),p=l==2?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,n=l==2?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY,C,A;if(w){C=B?q-t-p:p;A=this.opts.bottomToTopSubMenus?-J-n:F+n}else{C=B?p-t:q-p;A=this.opts.bottomToTopSubMenus?F-n-J:n}if(this.opts.keepInViewport){var N=o+C,M=m+A;if(B&&N<v){C=w?v-N+C:q-p}else{if(!B&&N+t>v+z){C=w?v+z-t-N+C:p-t}}if(!w){if(J<L&&M+J>s+L){A+=s+L-J-M}else{if(J>=L||M<s){A+=s-M}}}if(w&&(M+J>s+L+0.49||M<s)||!w&&J>L+0.49){var G=this;if(!K.dataSM("scroll-arrows")){K.dataSM("scroll-arrows",a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){K.dataSM("scroll").up=a(this).hasClass("scroll-up");G.menuScroll(K)},mouseleave:function(x){G.menuScrollStop(K);G.menuScrollOut(K,x)},"mousewheel DOMMouseScroll":function(x){x.preventDefault()}}).insertAfter(K))}var I=".smartmenus_scroll";K.dataSM("scroll",{y:this.cssTransforms3d?0:A-F,step:1,itemH:F,subH:J,arrowDownH:this.getHeight(K.dataSM("scroll-arrows").eq(1))}).bind(i([["mouseover",function(x){G.menuScrollOver(K,x)}],["mouseout",function(x){G.menuScrollOut(K,x)}],["mousewheel DOMMouseScroll",function(x){G.menuScrollMousewheel(K,x)}]],I)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:C+(parseInt(K.css("border-left-width"))||0),width:t-(parseInt(K.css("border-left-width"))||0)-(parseInt(K.css("border-right-width"))||0),zIndex:K.css("z-index")}).eq(w&&this.opts.bottomToTopSubMenus?0:1).show();if(this.isFixed()){K.css({"touch-action":"none","-ms-touch-action":"none"}).bind(i([[d?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(x){G.menuScrollTouch(K,x)}]],I))}}}K.css({top:"auto",left:"0",marginLeft:C,marginTop:A-F});this.menuIframeShim(K);if(K.dataSM("ie-shim")){K.dataSM("ie-shim").css({zIndex:K.css("z-index"),width:t,height:J,marginLeft:C,marginTop:A-F})}},menuScroll:function(r,m,n){var p=r.dataSM("scroll"),q=r.dataSM("scroll-arrows"),o=p.up?p.upEnd:p.downEnd,s;if(!m&&p.momentum){p.momentum*=0.92;s=p.momentum;if(s<0.5){this.menuScrollStop(r);return}}else{s=n||(m||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(p.step))}var l=r.dataSM("level");if(this.activatedItems[l-1]&&this.activatedItems[l-1].dataSM("sub")&&this.activatedItems[l-1].dataSM("sub").is(":visible")){this.menuHideSubMenus(l-1)}p.y=p.up&&o<=p.y||!p.up&&o>=p.y?p.y:(Math.abs(o-p.y)>s?p.y+(p.up?s:-s):o);r.add(r.dataSM("ie-shim")).css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+p.y+"px, 0)",transform:"translate3d(0, "+p.y+"px, 0)"}:{marginTop:p.y});if(f&&(p.up&&p.y>p.downEnd||!p.up&&p.y<p.upEnd)){q.eq(p.up?1:0).show()}if(p.y==o){if(f){q.eq(p.up?0:1).hide()}this.menuScrollStop(r)}else{if(!m){if(this.opts.scrollAccelerate&&p.step<this.opts.scrollStep){p.step+=0.2}var t=this;this.scrollTimeout=g(function(){t.menuScroll(r)})}}},menuScrollMousewheel:function(m,n){if(this.getClosestMenu(n.target)==m[0]){n=n.originalEvent;var l=(n.wheelDelta||-n.detail)>0;if(m.dataSM("scroll-arrows").eq(l?0:1).is(":visible")){m.dataSM("scroll").up=l;this.menuScroll(m,true)}}n.preventDefault()},menuScrollOut:function(l,m){if(f){if(!/^scroll-(up|down)/.test((m.relatedTarget||"").className)&&(l[0]!=m.relatedTarget&&!a.contains(l[0],m.relatedTarget)||this.getClosestMenu(m.relatedTarget)!=l[0])){l.dataSM("scroll-arrows").css("visibility","hidden")}}},menuScrollOver:function(n,o){if(f){if(!/^scroll-(up|down)/.test(o.target.className)&&this.getClosestMenu(o.target)==n[0]){this.menuScrollRefreshData(n);var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;n.dataSM("scroll-arrows").eq(0).css("margin-top",l).end().eq(1).css("margin-top",l+this.getViewportHeight()-m.arrowDownH).end().css("visibility","visible")}}},menuScrollRefreshData:function(n){var m=n.dataSM("scroll"),l=a(window).scrollTop()-n.dataSM("parent-a").offset().top-m.itemH;if(this.cssTransforms3d){l=-(parseFloat(n.css("margin-top"))-l)}a.extend(m,{upEnd:l,downEnd:l+this.getViewportHeight()-m.subH})},menuScrollStop:function(l){if(this.scrollTimeout){c(this.scrollTimeout);this.scrollTimeout=0;l.dataSM("scroll").step=1;return true}},menuScrollTouch:function(p,q){q=q.originalEvent;if(j(q)){var m=this.getTouchPoint(q);if(this.getClosestMenu(m.target)==p[0]){var o=p.dataSM("scroll");if(/(start|down)$/i.test(q.type)){if(this.menuScrollStop(p)){q.preventDefault();this.$touchScrollingSub=p}else{this.$touchScrollingSub=null}this.menuScrollRefreshData(p);a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}else{if(/move$/i.test(q.type)){var n=o.touchY!==undefined?o.touchY:o.touchStartY;if(n!==undefined&&n!=m.pageY){this.$touchScrollingSub=p;var l=n<m.pageY;if(o.up!==undefined&&o.up!=l){a.extend(o,{touchStartY:m.pageY,touchStartTime:q.timeStamp})}a.extend(o,{up:l,touchY:m.pageY});this.menuScroll(p,true,Math.abs(m.pageY-n))}q.preventDefault()}else{if(o.touchY!==undefined){if(o.momentum=Math.pow(Math.abs(m.pageY-o.touchStartY)/(q.timeStamp-o.touchStartTime),2)*15){this.menuScrollStop(p);this.menuScroll(p);q.preventDefault()}delete o.touchY}}}}}},menuShow:function(n){if(!n.dataSM("beforefirstshowfired")){n.dataSM("beforefirstshowfired",true);if(this.$root.triggerHandler("beforefirstshow.smapi",n[0])===false){return}}if(this.$root.triggerHandler("beforeshow.smapi",n[0])===false){return}n.dataSM("shown-before",true).stop(true,true);if(!n.is(":visible")){var m=n.dataSM("parent-a");if(this.opts.keepHighlighted||this.isCollapsible()){m.addClass("highlighted")}if(this.isCollapsible()){n.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""})}else{n.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1);if(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth){n.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap");if(this.opts.subMenusMinWidth){n.css("min-width",this.opts.subMenusMinWidth)}if(this.opts.subMenusMaxWidth){var o=this.getWidth(n);n.css("max-width",this.opts.subMenusMaxWidth);if(o>this.getWidth(n)){n.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}}}this.menuPosition(n);if(n.dataSM("ie-shim")){n.dataSM("ie-shim").insertBefore(n)}}var l=function(){n.css("overflow","")};if(this.isCollapsible()){if(this.opts.collapsibleShowFunction){this.opts.collapsibleShowFunction.call(this,n,l)}else{n.show(this.opts.collapsibleShowDuration,l)}}else{if(this.opts.showFunction){this.opts.showFunction.call(this,n,l)}else{n.show(this.opts.showDuration,l)}}m.attr("aria-expanded","true");n.attr({"aria-expanded":"true","aria-hidden":"false"});this.visibleSubMenus.push(n);this.$root.triggerHandler("show.smapi",n[0])}},popupHide:function(l){if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}var m=this;this.hideTimeout=setTimeout(function(){m.menuHideAll()},l?1:this.opts.hideTimeout)},popupShow:function(o,n){if(!this.opts.isPopup){alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}this.$root.dataSM("shown-before",true).stop(true,true);if(!this.$root.is(":visible")){this.$root.css({left:o,top:n});this.menuIframeShim(this.$root);if(this.$root.dataSM("ie-shim")){this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:o,top:n}).insertBefore(this.$root)}var m=this,l=function(){m.$root.css("overflow","")};if(this.opts.showFunction){this.opts.showFunction.call(this,this.$root,l)}else{this.$root.show(this.opts.showDuration,l)}this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(true);this.init(true)},rootKeyDown:function(o){if(!this.handleEvents()){return}switch(o.keyCode){case 27:var m=this.activatedItems[0];if(m){this.menuHideAll();m[0].focus();var n=m.dataSM("sub");if(n){this.menuHide(n)}}break;case 32:var l=a(o.target);if(l.is("a")&&this.handleItemEvents(l)){var n=l.dataSM("sub");if(n&&!n.is(":visible")){this.itemClick({currentTarget:o.target});o.preventDefault()}}break}},rootOut:function(m){if(!this.handleEvents()||this.isTouchMode()||m.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}if(!this.opts.showOnClick||!this.opts.hideOnClick){var l=this;this.hideTimeout=setTimeout(function(){l.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(l){if(!this.handleEvents()||this.isTouchMode()||l.target==this.$root[0]){return}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},winResize:function(m){if(!this.handleEvents()){if(this.$disableOverlay){var n=this.$root.offset();this.$disableOverlay.css({top:n.top,left:n.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}return}if(!("onorientationchange" in window)||m.type=="orientationchange"){var l=this.isCollapsible();if(!(this.wasCollapsible&&l)){if(this.activatedItems.length){this.activatedItems[this.activatedItems.length-1][0].blur()}this.menuHideAll()}this.wasCollapsible=l}}}});a.fn.dataSM=function(l,m){if(m){return this.data(l+"_smartmenus",m)}return this.data(l+"_smartmenus")};a.fn.removeDataSM=function(l){return this.removeData(l+"_smartmenus")};a.fn.smartmenus=function(m){if(typeof m=="string"){var l=arguments,o=m;Array.prototype.shift.call(l);return this.each(function(){var p=a(this).data("smartmenus");if(p&&p[o]){p[o].apply(p,l)}})}var n=a.extend({},a.fn.smartmenus.defaults,m);return this.each(function(){new a.SmartMenus(this,n)})};a.fn.smartmenus.defaults={isPopup:false,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:true,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollAccelerate:true,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(m,l){m.fadeOut(200,l)},collapsibleShowDuration:0,collapsibleShowFunction:function(m,l){m.slideDown(200,l)},collapsibleHideDuration:0,collapsibleHideFunction:function(m,l){m.slideUp(200,l)},showOnClick:false,hideOnClick:true,noMouseOver:false,keepInViewport:true,keepHighlighted:true,markCurrentItem:false,markCurrentTree:true,rightToLeftSubMenus:false,bottomToTopSubMenus:false,overlapControlsInIE:true};return a}));
diff --git a/doc/1.1.0/libguac/layer-types_8h.html b/doc/1.1.0/libguac/layer-types_8h.html
new file mode 100644
index 0000000..855ef83
--- /dev/null
+++ b/doc/1.1.0/libguac/layer-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole layers.  
+<a href="#details">More...</a></p>
+
+<p><a href="layer-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole layers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/layer-types_8h_source.html b/doc/1.1.0/libguac/layer-types_8h_source.html
new file mode 100644
index 0000000..413e2b1
--- /dev/null
+++ b/doc/1.1.0/libguac/layer-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="layer-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_LAYER_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_LAYER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__layer.html">guac_layer</a> <a class="code" href="structguac__layer.html">guac_layer</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/layer_8h.html b/doc/1.1.0/libguac/layer_8h.html
new file mode 100644
index 0000000..420d817
--- /dev/null
+++ b/doc/1.1.0/libguac/layer_8h.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">layer.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using layers.  
+<a href="#details">More...</a></p>
+
+<p><a href="layer_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__layer.html">guac_layer</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single layer within the Guacamole protocol.  <a href="structguac__layer.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using layers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/layer_8h_source.html b/doc/1.1.0/libguac/layer_8h_source.html
new file mode 100644
index 0000000..ffe93c8
--- /dev/null
+++ b/doc/1.1.0/libguac/layer_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/layer.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">layer.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="layer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_LAYER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_LAYER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__layer.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__layer.html">guac_layer</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">   39</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">index</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="ttc" id="structguac__layer_html_a686a85d9d758ba5f2f4426a4c4ae13ba"><div class="ttname"><a href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">guac_layer::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this layer. </div><div class="ttdef"><b>Definition:</b> layer.h:39</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/menu.js b/doc/1.1.0/libguac/menu.js
new file mode 100644
index 0000000..89aaf57
--- /dev/null
+++ b/doc/1.1.0/libguac/menu.js
@@ -0,0 +1,50 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
+  function makeTree(data,relPath) {
+    var result='';
+    if ('children' in data) {
+      result+='<ul>';
+      for (var i in data.children) {
+        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+                                data.children[i].text+'</a>'+
+                                makeTree(data.children[i],relPath)+'</li>';
+      }
+      result+='</ul>';
+    }
+    return result;
+  }
+
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchEnabled) {
+    if (serverSide) {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+    } else {
+      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
+    }
+  }
+  $('#main-menu').smartmenus();
+}
+/* @license-end */
diff --git a/doc/1.1.0/libguac/menudata.js b/doc/1.1.0/libguac/menudata.js
new file mode 100644
index 0000000..a3c88ef
--- /dev/null
+++ b/doc/1.1.0/libguac/menudata.js
@@ -0,0 +1,107 @@
+/*
+@ @licstart  The following is the entire license notice for the
+JavaScript code in this file.
+
+Copyright (C) 1997-2017 by Dimitri van Heesch
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+@licend  The above is the entire license notice
+for the JavaScript code in this file
+*/
+var menudata={children:[
+{text:"Main Page",url:"index.html"},
+{text:"Related Pages",url:"pages.html"},
+{text:"Data Structures",url:"annotated.html",children:[
+{text:"Data Structures",url:"annotated.html"},
+{text:"Data Structure Index",url:"classes.html"},
+{text:"Data Fields",url:"functions.html",children:[
+{text:"All",url:"functions.html",children:[
+{text:"a",url:"functions.html#index_a"},
+{text:"b",url:"functions.html#index_b"},
+{text:"c",url:"functions.html#index_c"},
+{text:"d",url:"functions.html#index_d"},
+{text:"e",url:"functions.html#index_e"},
+{text:"f",url:"functions.html#index_f"},
+{text:"g",url:"functions.html#index_g"},
+{text:"i",url:"functions.html#index_i"},
+{text:"j",url:"functions.html#index_j"},
+{text:"k",url:"functions.html#index_k"},
+{text:"l",url:"functions.html#index_l"},
+{text:"m",url:"functions.html#index_m"},
+{text:"o",url:"functions.html#index_o"},
+{text:"p",url:"functions.html#index_p"},
+{text:"r",url:"functions.html#index_r"},
+{text:"s",url:"functions.html#index_s"},
+{text:"t",url:"functions.html#index_t"},
+{text:"u",url:"functions.html#index_u"},
+{text:"v",url:"functions.html#index_v"},
+{text:"w",url:"functions.html#index_w"}]},
+{text:"Variables",url:"functions_vars.html",children:[
+{text:"a",url:"functions_vars.html#index_a"},
+{text:"b",url:"functions_vars.html#index_b"},
+{text:"c",url:"functions_vars.html#index_c"},
+{text:"d",url:"functions_vars.html#index_d"},
+{text:"e",url:"functions_vars.html#index_e"},
+{text:"f",url:"functions_vars.html#index_f"},
+{text:"g",url:"functions_vars.html#index_g"},
+{text:"i",url:"functions_vars.html#index_i"},
+{text:"j",url:"functions_vars.html#index_j"},
+{text:"k",url:"functions_vars.html#index_k"},
+{text:"l",url:"functions_vars.html#index_l"},
+{text:"m",url:"functions_vars.html#index_m"},
+{text:"o",url:"functions_vars.html#index_o"},
+{text:"p",url:"functions_vars.html#index_p"},
+{text:"r",url:"functions_vars.html#index_r"},
+{text:"s",url:"functions_vars.html#index_s"},
+{text:"t",url:"functions_vars.html#index_t"},
+{text:"u",url:"functions_vars.html#index_u"},
+{text:"v",url:"functions_vars.html#index_v"},
+{text:"w",url:"functions_vars.html#index_w"}]}]}]},
+{text:"Files",url:"files.html",children:[
+{text:"File List",url:"files.html"},
+{text:"Globals",url:"globals.html",children:[
+{text:"All",url:"globals.html",children:[
+{text:"a",url:"globals.html#index_a"},
+{text:"c",url:"globals_c.html#index_c"},
+{text:"e",url:"globals_e.html#index_e"},
+{text:"g",url:"globals_g.html#index_g"},
+{text:"h",url:"globals_h.html#index_h"},
+{text:"l",url:"globals_l.html#index_l"},
+{text:"p",url:"globals_p.html#index_p"},
+{text:"s",url:"globals_s.html#index_s"},
+{text:"t",url:"globals_t.html#index_t"},
+{text:"u",url:"globals_u.html#index_u"}]},
+{text:"Functions",url:"globals_func.html",children:[
+{text:"a",url:"globals_func.html#index_a"},
+{text:"c",url:"globals_func.html#index_c"},
+{text:"h",url:"globals_func.html#index_h"},
+{text:"p",url:"globals_func.html#index_p"},
+{text:"s",url:"globals_func.html#index_s"},
+{text:"t",url:"globals_func.html#index_t"},
+{text:"u",url:"globals_func.html#index_u"}]},
+{text:"Variables",url:"globals_vars.html"},
+{text:"Typedefs",url:"globals_type.html",children:[
+{text:"a",url:"globals_type.html#index_a"},
+{text:"c",url:"globals_type.html#index_c"},
+{text:"s",url:"globals_type.html#index_s"},
+{text:"t",url:"globals_type.html#index_t"},
+{text:"u",url:"globals_type.html#index_u"}]},
+{text:"Enumerations",url:"globals_enum.html"},
+{text:"Enumerator",url:"globals_eval.html",children:[
+{text:"g",url:"globals_eval.html#index_g"}]},
+{text:"Macros",url:"globals_defs.html",children:[
+{text:"e",url:"globals_defs.html#index_e"},
+{text:"g",url:"globals_defs.html#index_g"}]}]}]}]}
diff --git a/doc/1.1.0/libguac/nav_f.png b/doc/1.1.0/libguac/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/doc/1.1.0/libguac/nav_f.png
Binary files differ
diff --git a/doc/1.1.0/libguac/nav_g.png b/doc/1.1.0/libguac/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/doc/1.1.0/libguac/nav_g.png
Binary files differ
diff --git a/doc/1.1.0/libguac/nav_h.png b/doc/1.1.0/libguac/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/doc/1.1.0/libguac/nav_h.png
Binary files differ
diff --git a/doc/1.1.0/libguac/object-types_8h.html b/doc/1.1.0/libguac/object-types_8h.html
new file mode 100644
index 0000000..5f54f6b
--- /dev/null
+++ b/doc/1.1.0/libguac/object-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="object-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol objects. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/object-types_8h_source.html b/doc/1.1.0/libguac/object-types_8h_source.html
new file mode 100644
index 0000000..61b11d9
--- /dev/null
+++ b/doc/1.1.0/libguac/object-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="object-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_OBJECT_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_OBJECT_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__object.html">guac_object</a> <a class="code" href="structguac__object.html">guac_object</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/object_8h.html b/doc/1.1.0/libguac/object_8h.html
new file mode 100644
index 0000000..8749e92
--- /dev/null
+++ b/doc/1.1.0/libguac/object_8h.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">object.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="object_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html">guac_object</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single object within the Guacamole protocol.  <a href="structguac__object.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using objects. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/object_8h_source.html b/doc/1.1.0/libguac/object_8h_source.html
new file mode 100644
index 0000000..30f5e14
--- /dev/null
+++ b/doc/1.1.0/libguac/object_8h_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/object.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">object.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_OBJECT_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_OBJECT_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structguac__object.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__object.html">guac_object</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">   37</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">index</a>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">   42</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">data</a>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">   65</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">   88</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="structguac__object_html_a33771a9a72c560b8ea99f940c4c412a6"><div class="ttname"><a href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">guac_object::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> object.h:88</div></div>
+<div class="ttc" id="structguac__object_html_ac9ca62cec5ba1124f8272da3adf7c44e"><div class="ttname"><a href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">guac_object::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary data associated with this object. </div><div class="ttdef"><b>Definition:</b> object.h:42</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="structguac__object_html_a643f03695d246bbf73b5c4942755a4b4"><div class="ttname"><a href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">guac_object::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this object. </div><div class="ttdef"><b>Definition:</b> object.h:37</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="structguac__object_html_a0e86747e4f1265935310f0df3a7f4b21"><div class="ttname"><a href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">guac_object::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> object.h:65</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/open.png b/doc/1.1.0/libguac/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/doc/1.1.0/libguac/open.png
Binary files differ
diff --git a/doc/1.1.0/libguac/pages.html b/doc/1.1.0/libguac/pages.html
new file mode 100644
index 0000000..bb18d16
--- /dev/null
+++ b/doc/1.1.0/libguac/pages.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: Related Pages</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Related Pages</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-constants_8h.html b/doc/1.1.0/libguac/parser-constants_8h.html
new file mode 100644
index 0000000..33de506
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-constants_8h.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">parser-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole protocol parser.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a6cb4157503008653c5200ea640fe8744"><td class="memItemLeft" align="right" valign="top"><a id="a6cb4157503008653c5200ea640fe8744"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">GUAC_INSTRUCTION_MAX_LENGTH</a>&#160;&#160;&#160;8192</td></tr>
+<tr class="memdesc:a6cb4157503008653c5200ea640fe8744"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters per instruction. <br /></td></tr>
+<tr class="separator:a6cb4157503008653c5200ea640fe8744"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a408e5069154be109ad3dcf45cbc0b00f"><td class="memItemLeft" align="right" valign="top"><a id="a408e5069154be109ad3dcf45cbc0b00f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">GUAC_INSTRUCTION_MAX_DIGITS</a>&#160;&#160;&#160;5</td></tr>
+<tr class="memdesc:a408e5069154be109ad3dcf45cbc0b00f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of digits to allow per length prefix. <br /></td></tr>
+<tr class="separator:a408e5069154be109ad3dcf45cbc0b00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f314dc5700812ca93ff132a15b86a46"><td class="memItemLeft" align="right" valign="top"><a id="a6f314dc5700812ca93ff132a15b86a46"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a>&#160;&#160;&#160;128</td></tr>
+<tr class="memdesc:a6f314dc5700812ca93ff132a15b86a46"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of elements per instruction, including the opcode. <br /></td></tr>
+<tr class="separator:a6f314dc5700812ca93ff132a15b86a46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole protocol parser. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-constants_8h_source.html b/doc/1.1.0/libguac/parser-constants_8h_source.html
new file mode 100644
index 0000000..ad242d8
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744">   32</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_LENGTH 8192</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f">   37</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_DIGITS 5</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">   42</a></span>&#160;<span class="preprocessor">#define GUAC_INSTRUCTION_MAX_ELEMENTS 128</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-types_8h.html b/doc/1.1.0/libguac/parser-types_8h.html
new file mode 100644
index 0000000..4e86ccf
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-types_8h.html
@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">parser-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to parsing the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a842bb8c1d5569ebebae3fdadb2527f30"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> { <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a>, 
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a>
+ }</td></tr>
+<tr class="memdesc:a842bb8c1d5569ebebae3fdadb2527f30"><td class="mdescLeft">&#160;</td><td class="mdescRight">All possible states of the instruction parser.  <a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">More...</a><br /></td></tr>
+<tr class="separator:a842bb8c1d5569ebebae3fdadb2527f30"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to parsing the Guacamole protocol. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a842bb8c1d5569ebebae3fdadb2527f30"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a842bb8c1d5569ebebae3fdadb2527f30">&#9670;&nbsp;</a></span>guac_parse_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>All possible states of the instruction parser. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc"></a>GUAC_PARSE_LENGTH&#160;</td><td class="fielddoc"><p>The parser is currently waiting for data to complete the length prefix of the current element of the instruction. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e"></a>GUAC_PARSE_CONTENT&#160;</td><td class="fielddoc"><p>The parser has finished reading the length prefix and is currently waiting for data to complete the content of the instruction. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf"></a>GUAC_PARSE_COMPLETE&#160;</td><td class="fielddoc"><p>The instruction has been fully parsed. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc"></a>GUAC_PARSE_ERROR&#160;</td><td class="fielddoc"><p>The instruction cannot be parsed because of a protocol error. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser-types_8h_source.html b/doc/1.1.0/libguac/parser-types_8h_source.html
new file mode 100644
index 0000000..4eed4a8
--- /dev/null
+++ b/doc/1.1.0/libguac/parser-types_8h_source.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_TYPES_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">   33</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> {</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">   39</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a>,</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">   45</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a>,</div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">   50</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a>,</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">   55</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;} <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__parser.html">guac_parser</a> <a class="code" href="structguac__parser.html">guac_parser</a>;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf">GUAC_PARSE_COMPLETE</a></div><div class="ttdoc">The instruction has been fully parsed. </div><div class="ttdef"><b>Definition:</b> parser-types.h:50</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc">GUAC_PARSE_LENGTH</a></div><div class="ttdoc">The parser is currently waiting for data to complete the length prefix of the current element of the ...</div><div class="ttdef"><b>Definition:</b> parser-types.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></div><div class="ttdeci">guac_parse_state</div><div class="ttdoc">All possible states of the instruction parser. </div><div class="ttdef"><b>Definition:</b> parser-types.h:33</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc">GUAC_PARSE_ERROR</a></div><div class="ttdoc">The instruction cannot be parsed because of a protocol error. </div><div class="ttdef"><b>Definition:</b> parser-types.h:55</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e">GUAC_PARSE_CONTENT</a></div><div class="ttdoc">The parser has finished reading the length prefix and is currently waiting for data to complete the c...</div><div class="ttdef"><b>Definition:</b> parser-types.h:45</div></div>
+<div class="ttc" id="structguac__parser_html"><div class="ttname"><a href="structguac__parser.html">guac_parser</a></div><div class="ttdoc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...</div><div class="ttdef"><b>Definition:</b> parser.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser_8h.html b/doc/1.1.0/libguac/parser_8h.html
new file mode 100644
index 0000000..7510e3b
--- /dev/null
+++ b/doc/1.1.0/libguac/parser_8h.html
@@ -0,0 +1,399 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">parser.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for parsing the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="parser_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html">guac_parser</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data.  <a href="structguac__parser.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a69dc498eb4d71d353bff07b88ec21cad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a> ()</td></tr>
+<tr class="memdesc:a69dc498eb4d71d353bff07b88ec21cad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new parser.  <a href="#a69dc498eb4d71d353bff07b88ec21cad">More...</a><br /></td></tr>
+<tr class="separator:a69dc498eb4d71d353bff07b88ec21cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, void *buffer, int length)</td></tr>
+<tr class="memdesc:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends data from the given buffer to the given parser.  <a href="#ab1ca22b7bf9c232cce0d122f03dc183d">More...</a><br /></td></tr>
+<tr class="separator:ab1ca22b7bf9c232cce0d122f03dc183d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8899dd607997fcffd78517947b17760b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser)</td></tr>
+<tr class="memdesc:a8899dd607997fcffd78517947b17760b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of unparsed bytes stored in the given parser's internal buffers.  <a href="#a8899dd607997fcffd78517947b17760b">More...</a><br /></td></tr>
+<tr class="separator:a8899dd607997fcffd78517947b17760b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, void *buffer, int length)</td></tr>
+<tr class="memdesc:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer.  <a href="#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">More...</a><br /></td></tr>
+<tr class="separator:a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser)</td></tr>
+<tr class="memdesc:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees all memory allocated to the given parser.  <a href="#ad3b7d4df1ca25c5bced1c08b329f0a0f">More...</a><br /></td></tr>
+<tr class="separator:ad3b7d4df1ca25c5bced1c08b329f0a0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8a1169f5040732e4f4b55ee6c1e1fe93">More...</a><br /></td></tr>
+<tr class="separator:a8a1169f5040732e4f4b55ee6c1e1fe93"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac54c94465aead463ce10e9a090b9b701"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a> (<a class="el" href="structguac__parser.html">guac_parser</a> *parser, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout, const char *opcode)</td></tr>
+<tr class="memdesc:ac54c94465aead463ce10e9a090b9b701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="#ac54c94465aead463ce10e9a090b9b701">More...</a><br /></td></tr>
+<tr class="separator:ac54c94465aead463ce10e9a090b9b701"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for parsing the Guacamole protocol. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a69dc498eb4d71d353bff07b88ec21cad"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a69dc498eb4d71d353bff07b88ec21cad">&#9670;&nbsp;</a></span>guac_parser_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__parser.html">guac_parser</a>* guac_parser_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new parser. </p>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated parser, or NULL if an error occurs during allocation, in which case guac_error will be set appropriately. </dd></dl>
+
+</div>
+</div>
+<a id="ab1ca22b7bf9c232cce0d122f03dc183d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1ca22b7bf9c232cce0d122f03dc183d">&#9670;&nbsp;</a></span>guac_parser_append()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_append </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Appends data from the given buffer to the given parser. </p>
+<p>The data will be appended, if possible, to the in-progress instruction as a reference and thus the buffer must remain valid throughout the life of the current instruction. This function may modify the contents of the buffer when those contents are part of an element within the instruction being read.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to append data to. </td></tr>
+    <tr><td class="paramname">buffer</td><td>A buffer containing data that should be appended to this parser. </td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes available for appending within the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes appended to this parser, which may be zero if more data is needed. </dd></dl>
+
+</div>
+</div>
+<a id="ac54c94465aead463ce10e9a090b9b701"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac54c94465aead463ce10e9a090b9b701">&#9670;&nbsp;</a></span>guac_parser_expect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_expect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>opcode</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>This operates identically to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection. ">guac_parser_read()</a>, except that an error is returned if the expected opcode is not received.</p>
+<p>If an error occurs reading the instruction, NULL is returned, and guac_error is set appropriately.</p>
+<p>If the instruction read is not the expected instruction, NULL is returned, and guac_error is set to GUAC_STATUS_BAD_STATE.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The <a class="el" href="structguac__parser.html" title="A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...">guac_parser</a> to read instruction data from. </td></tr>
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait before giving up. </td></tr>
+    <tr><td class="paramname">opcode</td><td>The opcode of the instruction to read. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if an instruction with the given opcode was read, non-zero otherwise. If an instruction was read, but the instruction had a different opcode, non-zero is returned and guac_error is set to GUAC_STATUS_BAD_STATE. </dd></dl>
+
+</div>
+</div>
+<a id="ad3b7d4df1ca25c5bced1c08b329f0a0f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad3b7d4df1ca25c5bced1c08b329f0a0f">&#9670;&nbsp;</a></span>guac_parser_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_parser_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees all memory allocated to the given parser. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a8899dd607997fcffd78517947b17760b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8899dd607997fcffd78517947b17760b">&#9670;&nbsp;</a></span>guac_parser_length()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_length </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the number of unparsed bytes stored in the given parser's internal buffers. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to return the length of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of unparsed bytes stored in the given parser. </dd></dl>
+
+</div>
+</div>
+<a id="a8a1169f5040732e4f4b55ee6c1e1fe93"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8a1169f5040732e4f4b55ee6c1e1fe93">&#9670;&nbsp;</a></span>guac_parser_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_read </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Reads a single instruction from the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>This may result in additional data being read from the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, stored internally within a buffer for future parsing. Future calls to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection. ">guac_parser_read()</a> will read from the interal buffer before reading from the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. Data from the internal buffer can be removed and used elsewhere through <a class="el" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3" title="Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer...">guac_parser_shift()</a>.</p>
+<p>If an error occurs reading the instruction, non-zero is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The <a class="el" href="structguac__parser.html" title="A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...">guac_parser</a> to read instruction data from. </td></tr>
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait before giving up. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if an instruction was read within the time allowed, or non-zero if no instruction could be read. If the instruction could not be read completely because the timeout elapsed, in which case guac_error will be set to GUAC_STATUS_INPUT_TIMEOUT and additional calls to <a class="el" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93" title="Reads a single instruction from the given guac_socket connection. ">guac_parser_read()</a> will be required. </dd></dl>
+
+</div>
+</div>
+<a id="a56e7b2a85abdb6cb4ec4bd6e47a92ed3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">&#9670;&nbsp;</a></span>guac_parser_shift()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_parser_shift </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__parser.html">guac_parser</a> *&#160;</td>
+          <td class="paramname"><em>parser</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buffer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parser</td><td>The parser to remove unparsed bytes from. </td></tr>
+    <tr><td class="paramname">buffer</td><td>The buffer to store the unparsed bytes within. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the given buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes stored in the given buffer. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/parser_8h_source.html b/doc/1.1.0/libguac/parser_8h_source.html
new file mode 100644
index 0000000..1452172
--- /dev/null
+++ b/doc/1.1.0/libguac/parser_8h_source.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/parser.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">parser.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="parser_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_PARSER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_PARSER_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parser-types_8h.html">parser-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="parser-constants_8h.html">parser-constants.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__parser.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__parser.html">guac_parser</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">   39</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">opcode</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">   44</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">argc</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">   49</a></span>&#160;    <span class="keywordtype">char</span>** <a class="code" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">argv</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">   54</a></span>&#160;    <a class="code" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a> <a class="code" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">state</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keywordtype">int</span> __element_length;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">int</span> __elementc;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordtype">char</span>* __elementv[<a class="code" href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a>];</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keywordtype">char</span>* __instructionbuf_unparsed_start;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordtype">char</span>* __instructionbuf_unparsed_end;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keywordtype">char</span> __instructionbuf[32768];</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<a class="code" href="structguac__parser.html">guac_parser</a>* <a class="code" href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a>();</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <span class="keywordtype">void</span>* buffer, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser);</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <span class="keywordtype">void</span>* buffer, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="keywordtype">void</span> <a class="code" href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser);</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="keywordtype">int</span> <a class="code" href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a>(<a class="code" href="structguac__parser.html">guac_parser</a>* parser, <a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode);</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="ttc" id="structguac__parser_html_a9bd5362b9de8cf2adfcdff2c86bb4701"><div class="ttname"><a href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">guac_parser::argv</a></div><div class="ttdeci">char ** argv</div><div class="ttdoc">Array of all arguments passed to this instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:49</div></div>
+<div class="ttc" id="parser_8h_html_a69dc498eb4d71d353bff07b88ec21cad"><div class="ttname"><a href="parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad">guac_parser_alloc</a></div><div class="ttdeci">guac_parser * guac_parser_alloc()</div><div class="ttdoc">Allocates a new parser. </div></div>
+<div class="ttc" id="parser_8h_html_a8a1169f5040732e4f4b55ee6c1e1fe93"><div class="ttname"><a href="parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93">guac_parser_read</a></div><div class="ttdeci">int guac_parser_read(guac_parser *parser, guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Reads a single instruction from the given guac_socket connection. </div></div>
+<div class="ttc" id="parser_8h_html_ac54c94465aead463ce10e9a090b9b701"><div class="ttname"><a href="parser_8h.html#ac54c94465aead463ce10e9a090b9b701">guac_parser_expect</a></div><div class="ttdeci">int guac_parser_expect(guac_parser *parser, guac_socket *socket, int usec_timeout, const char *opcode)</div><div class="ttdoc">Reads a single instruction from the given guac_socket. </div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="parser_8h_html_ab1ca22b7bf9c232cce0d122f03dc183d"><div class="ttname"><a href="parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d">guac_parser_append</a></div><div class="ttdeci">int guac_parser_append(guac_parser *parser, void *buffer, int length)</div><div class="ttdoc">Appends data from the given buffer to the given parser. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html"><div class="ttname"><a href="parser-types_8h.html">parser-types.h</a></div><div class="ttdoc">Type definitions related to parsing the Guacamole protocol. </div></div>
+<div class="ttc" id="parser_8h_html_a8899dd607997fcffd78517947b17760b"><div class="ttname"><a href="parser_8h.html#a8899dd607997fcffd78517947b17760b">guac_parser_length</a></div><div class="ttdeci">int guac_parser_length(guac_parser *parser)</div><div class="ttdoc">Returns the number of unparsed bytes stored in the given parser&amp;#39;s internal buffers. </div></div>
+<div class="ttc" id="parser_8h_html_ad3b7d4df1ca25c5bced1c08b329f0a0f"><div class="ttname"><a href="parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f">guac_parser_free</a></div><div class="ttdeci">void guac_parser_free(guac_parser *parser)</div><div class="ttdoc">Frees all memory allocated to the given parser. </div></div>
+<div class="ttc" id="structguac__parser_html_a725767c57dc6f157afe2d7dd6ce281e1"><div class="ttname"><a href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">guac_parser::opcode</a></div><div class="ttdeci">char * opcode</div><div class="ttdoc">The opcode of the instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:39</div></div>
+<div class="ttc" id="parser-types_8h_html_a842bb8c1d5569ebebae3fdadb2527f30"><div class="ttname"><a href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a></div><div class="ttdeci">guac_parse_state</div><div class="ttdoc">All possible states of the instruction parser. </div><div class="ttdef"><b>Definition:</b> parser-types.h:33</div></div>
+<div class="ttc" id="structguac__parser_html_a2773500f91b3cdb7de7bdea280228054"><div class="ttname"><a href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">guac_parser::state</a></div><div class="ttdeci">guac_parse_state state</div><div class="ttdoc">The parse state of the instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:54</div></div>
+<div class="ttc" id="structguac__parser_html_a718ce9e60c8414c367ce393cc4e0cffe"><div class="ttname"><a href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">guac_parser::argc</a></div><div class="ttdeci">int argc</div><div class="ttdoc">The number of arguments passed to this instruction. </div><div class="ttdef"><b>Definition:</b> parser.h:44</div></div>
+<div class="ttc" id="parser_8h_html_a56e7b2a85abdb6cb4ec4bd6e47a92ed3"><div class="ttname"><a href="parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3">guac_parser_shift</a></div><div class="ttdeci">int guac_parser_shift(guac_parser *parser, void *buffer, int length)</div><div class="ttdoc">Removes up to length bytes from internal buffer of unparsed bytes, storing them in the given buffer...</div></div>
+<div class="ttc" id="parser-constants_8h_html_a6f314dc5700812ca93ff132a15b86a46"><div class="ttname"><a href="parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46">GUAC_INSTRUCTION_MAX_ELEMENTS</a></div><div class="ttdeci">#define GUAC_INSTRUCTION_MAX_ELEMENTS</div><div class="ttdoc">The maximum number of elements per instruction, including the opcode. </div><div class="ttdef"><b>Definition:</b> parser-constants.h:42</div></div>
+<div class="ttc" id="structguac__parser_html"><div class="ttname"><a href="structguac__parser.html">guac_parser</a></div><div class="ttdoc">A Guacamole protocol parser, which reads individual instructions, filling its own internal structure ...</div><div class="ttdef"><b>Definition:</b> parser.h:34</div></div>
+<div class="ttc" id="parser-constants_8h_html"><div class="ttname"><a href="parser-constants_8h.html">parser-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole protocol parser. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin-constants_8h.html b/doc/1.1.0/libguac/plugin-constants_8h.html
new file mode 100644
index 0000000..cd0ce4b
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin-constants_8h.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">plugin-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to client plugins.  
+<a href="#details">More...</a></p>
+
+<p><a href="plugin-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ac328a06358d3e07e10999e556f77c05a"><td class="memItemLeft" align="right" valign="top"><a id="ac328a06358d3e07e10999e556f77c05a"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a>&#160;&#160;&#160;&quot;libguac-client-&quot;</td></tr>
+<tr class="memdesc:ac328a06358d3e07e10999e556f77c05a"><td class="mdescLeft">&#160;</td><td class="mdescRight">String prefix which begins the library filename of all client plugins. <br /></td></tr>
+<tr class="separator:ac328a06358d3e07e10999e556f77c05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3601bb5aaa3ca309987f70bd48005fd"><td class="memItemLeft" align="right" valign="top"><a id="af3601bb5aaa3ca309987f70bd48005fd"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a>&#160;&#160;&#160;&quot;.so&quot;</td></tr>
+<tr class="memdesc:af3601bb5aaa3ca309987f70bd48005fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">String suffix which ends the library filename of all client plugins. <br /></td></tr>
+<tr class="separator:af3601bb5aaa3ca309987f70bd48005fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="memItemLeft" align="right" valign="top"><a id="a4ce2e3a2b6be66e9ab382fb8d2ab2621"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a>&#160;&#160;&#160;256</td></tr>
+<tr class="memdesc:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters (COUNTING NULL TERMINATOR) to allow for protocol names within the library filename of client plugins. <br /></td></tr>
+<tr class="separator:a4ce2e3a2b6be66e9ab382fb8d2ab2621"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">GUAC_PROTOCOL_LIBRARY_LIMIT</a></td></tr>
+<tr class="memdesc:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of characters (INCLUDING NULL TERMINATOR) that a character array containing the concatenation of the library prefix, protocol name, and suffix can contain, assuming the protocol name is limited to GUAC_PROTOCOL_NAME_LIMIT characters.  <a href="#a03c00580f4455d35c1ed33ed4dcfe2fe">More...</a><br /></td></tr>
+<tr class="separator:a03c00580f4455d35c1ed33ed4dcfe2fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to client plugins. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="a03c00580f4455d35c1ed33ed4dcfe2fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a03c00580f4455d35c1ed33ed4dcfe2fe">&#9670;&nbsp;</a></span>GUAC_PROTOCOL_LIBRARY_LIMIT</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_PROTOCOL_LIBRARY_LIMIT</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<b>Value:</b><div class="fragment"><div class="line">(                                  \</div><div class="line">                                                                       \</div><div class="line">      sizeof(<a class="code" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a>) - 1 <span class="comment">/* &quot;libguac-client-&quot; */</span> \</div><div class="line">    +        <a class="code" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a>      - 1 <span class="comment">/* [up to 256 chars] */</span> \</div><div class="line">    + <span class="keyword">sizeof</span>(<a class="code" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a>) - 1 <span class="comment">/* &quot;.so&quot;             */</span> \</div><div class="line">    + 1                                        <span class="comment">/* NULL terminator   */</span> \</div><div class="line">                                                                       \</div><div class="line">)</div><div class="ttc" id="plugin-constants_8h_html_af3601bb5aaa3ca309987f70bd48005fd"><div class="ttname"><a href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">GUAC_PROTOCOL_LIBRARY_SUFFIX</a></div><div class="ttdeci">#define GUAC_PROTOCOL_LIBRARY_SUFFIX</div><div class="ttdoc">String suffix which ends the library filename of all client plugins. </div><div class="ttdef"><b>Definition:</b> plugin-constants.h:37</div></div>
+<div class="ttc" id="plugin-constants_8h_html_a4ce2e3a2b6be66e9ab382fb8d2ab2621"><div class="ttname"><a href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">GUAC_PROTOCOL_NAME_LIMIT</a></div><div class="ttdeci">#define GUAC_PROTOCOL_NAME_LIMIT</div><div class="ttdoc">The maximum number of characters (COUNTING NULL TERMINATOR) to allow for protocol names within the li...</div><div class="ttdef"><b>Definition:</b> plugin-constants.h:43</div></div>
+<div class="ttc" id="plugin-constants_8h_html_ac328a06358d3e07e10999e556f77c05a"><div class="ttname"><a href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">GUAC_PROTOCOL_LIBRARY_PREFIX</a></div><div class="ttdeci">#define GUAC_PROTOCOL_LIBRARY_PREFIX</div><div class="ttdoc">String prefix which begins the library filename of all client plugins. </div><div class="ttdef"><b>Definition:</b> plugin-constants.h:32</div></div>
+</div><!-- fragment -->
+<p>The maximum number of characters (INCLUDING NULL TERMINATOR) that a character array containing the concatenation of the library prefix, protocol name, and suffix can contain, assuming the protocol name is limited to GUAC_PROTOCOL_NAME_LIMIT characters. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin-constants_8h_source.html b/doc/1.1.0/libguac/plugin-constants_8h_source.html
new file mode 100644
index 0000000..89508ba
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="plugin-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PLUGIN_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PLUGIN_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a">   32</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_PREFIX &quot;libguac-client-&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd">   37</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_SUFFIX &quot;.so&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621">   43</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_NAME_LIMIT 256</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe">   51</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_LIBRARY_LIMIT (                                  \</span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">                                                                       \</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="preprocessor">      sizeof(GUAC_PROTOCOL_LIBRARY_PREFIX) - 1 </span><span class="comment">/* &quot;libguac-client-&quot; */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="preprocessor">    +        GUAC_PROTOCOL_NAME_LIMIT      - 1 </span><span class="comment">/* [up to 256 chars] */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="preprocessor">    + sizeof(GUAC_PROTOCOL_LIBRARY_SUFFIX) - 1 </span><span class="comment">/* &quot;.so&quot;             */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">    + 1                                        </span><span class="comment">/* NULL terminator   */</span><span class="preprocessor"> \</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">                                                                       \</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">)</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin_8h.html b/doc/1.1.0/libguac/plugin_8h.html
new file mode 100644
index 0000000..4ef1f20
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for handling a client plugin.  
+<a href="#details">More...</a></p>
+
+<p><a href="plugin_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for handling a client plugin. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/plugin_8h_source.html b/doc/1.1.0/libguac/plugin_8h_source.html
new file mode 100644
index 0000000..60b1731
--- /dev/null
+++ b/doc/1.1.0/libguac/plugin_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/plugin.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">plugin.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="plugin_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PLUGIN_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PLUGIN_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="plugin-constants_8h.html">plugin-constants.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="plugin-constants_8h_html"><div class="ttname"><a href="plugin-constants_8h.html">plugin-constants.h</a></div><div class="ttdoc">Constants related to client plugins. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool-types_8h.html b/doc/1.1.0/libguac/pool-types_8h.html
new file mode 100644
index 0000000..ee2799d
--- /dev/null
+++ b/doc/1.1.0/libguac/pool-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers.  
+<a href="#details">More...</a></p>
+
+<p><a href="pool-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> pool of unique integers. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool-types_8h_source.html b/doc/1.1.0/libguac/pool-types_8h_source.html
new file mode 100644
index 0000000..9db1eb2
--- /dev/null
+++ b/doc/1.1.0/libguac/pool-types_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="pool-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_POOL_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_POOL_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__pool__int.html">guac_pool_int</a> <a class="code" href="structguac__pool__int.html">guac_pool_int</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__pool.html">guac_pool</a> <a class="code" href="structguac__pool.html">guac_pool</a>;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="ttc" id="structguac__pool__int_html"><div class="ttname"><a href="structguac__pool__int.html">guac_pool_int</a></div><div class="ttdoc">Represents a single integer within a larger pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:71</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool_8h.html b/doc/1.1.0/libguac/pool_8h.html
new file mode 100644
index 0000000..1a8c377
--- /dev/null
+++ b/doc/1.1.0/libguac/pool_8h.html
@@ -0,0 +1,246 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">pool.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for maintaining dynamically allocated and freed pools of integers.  
+<a href="#details">More...</a></p>
+
+<p><a href="pool_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html">guac_pool</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pool of integers.  <a href="structguac__pool.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool__int.html">guac_pool_int</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single integer within a larger pool of integers.  <a href="structguac__pool__int.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a3e7589997fdd734a6d6155badebd042f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a> (int size)</td></tr>
+<tr class="memdesc:a3e7589997fdd734a6d6155badebd042f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> having the given minimum size.  <a href="#a3e7589997fdd734a6d6155badebd042f">More...</a><br /></td></tr>
+<tr class="separator:a3e7589997fdd734a6d6155badebd042f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7015e5939617ab7e55477ba0a4f85bdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool)</td></tr>
+<tr class="memdesc:a7015e5939617ab7e55477ba0a4f85bdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>.  <a href="#a7015e5939617ab7e55477ba0a4f85bdb">More...</a><br /></td></tr>
+<tr class="separator:a7015e5939617ab7e55477ba0a4f85bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool)</td></tr>
+<tr class="memdesc:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the next available integer from the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>.  <a href="#abe3c79e0fec121e3d1b1d3ce37aa45f4">More...</a><br /></td></tr>
+<tr class="separator:abe3c79e0fec121e3d1b1d3ce37aa45f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad90069a41689cf319f46af44bb113579"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a> (<a class="el" href="structguac__pool.html">guac_pool</a> *pool, int value)</td></tr>
+<tr class="memdesc:ad90069a41689cf319f46af44bb113579"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given integer back into the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>.  <a href="#ad90069a41689cf319f46af44bb113579">More...</a><br /></td></tr>
+<tr class="separator:ad90069a41689cf319f46af44bb113579"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for maintaining dynamically allocated and freed pools of integers. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a3e7589997fdd734a6d6155badebd042f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3e7589997fdd734a6d6155badebd042f">&#9670;&nbsp;</a></span>guac_pool_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__pool.html">guac_pool</a>* guac_pool_alloc </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>size</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> having the given minimum size. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">size</td><td>The minimum number of integers which must have been returned by guac_pool_next_int before freed integers (previously used integers) are allowed to be returned. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A new, empty <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>, having the given minimum size. </dd></dl>
+
+</div>
+</div>
+<a id="a7015e5939617ab7e55477ba0a4f85bdb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7015e5939617ab7e55477ba0a4f85bdb">&#9670;&nbsp;</a></span>guac_pool_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_pool_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="ad90069a41689cf319f46af44bb113579"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad90069a41689cf319f46af44bb113579">&#9670;&nbsp;</a></span>guac_pool_free_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_pool_free_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given integer back into the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>. </p>
+<p>The integer given will be available for future calls to guac_pool_next_int. This operation is threadsafe.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> to free the given integer into.</td></tr>
+    <tr><td class="paramname">value</td><td>The integer which should be returned to the given pool, such that it can be received by a future call to guac_pool_next_int. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="abe3c79e0fec121e3d1b1d3ce37aa45f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe3c79e0fec121e3d1b1d3ce37aa45f4">&#9670;&nbsp;</a></span>guac_pool_next_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_pool_next_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__pool.html">guac_pool</a> *&#160;</td>
+          <td class="paramname"><em>pool</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the next available integer from the given <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a>. </p>
+<p>All integers returned are non-negative, and are returned in sequences, starting from 0. This operation is threadsafe.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">pool</td><td>The <a class="el" href="structguac__pool.html" title="A pool of integers. ">guac_pool</a> to retrieve an integer from.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available integer, which may be either an integer not yet returned by a call to guac_pool_next_int, or an integer which was previously returned, but has since been freed. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/pool_8h_source.html b/doc/1.1.0/libguac/pool_8h_source.html
new file mode 100644
index 0000000..52f420f
--- /dev/null
+++ b/doc/1.1.0/libguac/pool_8h_source.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/pool.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">pool.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="pool_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_POOL_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_POOL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="structguac__pool.html">   34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__pool.html">guac_pool</a> {</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">   41</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">min_size</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">   46</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">active</a>;</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    <span class="keywordtype">int</span> __next_value;</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __head;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __tail;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    pthread_mutex_t __lock;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structguac__pool__int.html">   71</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__pool__int.html">guac_pool_int</a> {</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">   76</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">value</a>;</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <a class="code" href="structguac__pool__int.html">guac_pool_int</a>* __next;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<a class="code" href="structguac__pool.html">guac_pool</a>* <a class="code" href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a>(<span class="keywordtype">int</span> size);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keywordtype">void</span> <a class="code" href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool);</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="keywordtype">int</span> <a class="code" href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="keywordtype">void</span> <a class="code" href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a>(<a class="code" href="structguac__pool.html">guac_pool</a>* pool, <span class="keywordtype">int</span> value);</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="ttc" id="pool_8h_html_abe3c79e0fec121e3d1b1d3ce37aa45f4"><div class="ttname"><a href="pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4">guac_pool_next_int</a></div><div class="ttdeci">int guac_pool_next_int(guac_pool *pool)</div><div class="ttdoc">Returns the next available integer from the given guac_pool. </div></div>
+<div class="ttc" id="pool_8h_html_a3e7589997fdd734a6d6155badebd042f"><div class="ttname"><a href="pool_8h.html#a3e7589997fdd734a6d6155badebd042f">guac_pool_alloc</a></div><div class="ttdeci">guac_pool * guac_pool_alloc(int size)</div><div class="ttdoc">Allocates a new guac_pool having the given minimum size. </div></div>
+<div class="ttc" id="structguac__pool_html_a71ed274c2481dbcd5e06bf7d8d74d71e"><div class="ttname"><a href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">guac_pool::min_size</a></div><div class="ttdeci">int min_size</div><div class="ttdoc">The minimum number of integers which must have been returned by guac_pool_next_int before previously-...</div><div class="ttdef"><b>Definition:</b> pool.h:41</div></div>
+<div class="ttc" id="structguac__pool__int_html"><div class="ttname"><a href="structguac__pool__int.html">guac_pool_int</a></div><div class="ttdoc">Represents a single integer within a larger pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:71</div></div>
+<div class="ttc" id="pool_8h_html_a7015e5939617ab7e55477ba0a4f85bdb"><div class="ttname"><a href="pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb">guac_pool_free</a></div><div class="ttdeci">void guac_pool_free(guac_pool *pool)</div><div class="ttdoc">Frees the given guac_pool. </div></div>
+<div class="ttc" id="structguac__pool_html_ac22871d5c476ca9a6dd25a2446fa0fd3"><div class="ttname"><a href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">guac_pool::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">The number of integers currently in use. </div><div class="ttdef"><b>Definition:</b> pool.h:46</div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="pool_8h_html_ad90069a41689cf319f46af44bb113579"><div class="ttname"><a href="pool_8h.html#ad90069a41689cf319f46af44bb113579">guac_pool_free_int</a></div><div class="ttdeci">void guac_pool_free_int(guac_pool *pool, int value)</div><div class="ttdoc">Frees the given integer back into the given guac_pool. </div></div>
+<div class="ttc" id="structguac__pool__int_html_af76ff5f21c6e0f69d95cdd1385ea24a4"><div class="ttname"><a href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">guac_pool_int::value</a></div><div class="ttdeci">int value</div><div class="ttdoc">The integer value of this pool entry. </div><div class="ttdef"><b>Definition:</b> pool.h:76</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-constants_8h.html b/doc/1.1.0/libguac/protocol-constants_8h.html
new file mode 100644
index 0000000..f682082
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-constants_8h.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ab1706e67b56808564438ef853a8d2821"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">GUACAMOLE_PROTOCOL_VERSION</a>&#160;&#160;&#160;&quot;VERSION_1_1_0&quot;</td></tr>
+<tr class="memdesc:ab1706e67b56808564438ef853a8d2821"><td class="mdescLeft">&#160;</td><td class="mdescRight">This defines the overall protocol version that this build of libguac supports.  <a href="#ab1706e67b56808564438ef853a8d2821">More...</a><br /></td></tr>
+<tr class="separator:ab1706e67b56808564438ef853a8d2821"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5dd5c766aeebead268d0daa6c8c2166"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">GUAC_PROTOCOL_BLOB_MAX_LENGTH</a>&#160;&#160;&#160;6048</td></tr>
+<tr class="memdesc:af5dd5c766aeebead268d0daa6c8c2166"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction does not exceed the maximum allowed instruction size.  <a href="#af5dd5c766aeebead268d0daa6c8c2166">More...</a><br /></td></tr>
+<tr class="separator:af5dd5c766aeebead268d0daa6c8c2166"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole protocol. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af5dd5c766aeebead268d0daa6c8c2166"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5dd5c766aeebead268d0daa6c8c2166">&#9670;&nbsp;</a></span>GUAC_PROTOCOL_BLOB_MAX_LENGTH</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_PROTOCOL_BLOB_MAX_LENGTH&#160;&#160;&#160;6048</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction does not exceed the maximum allowed instruction size. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744" title="The maximum number of characters per instruction. ">GUAC_INSTRUCTION_MAX_LENGTH</a> </dd></dl>
+
+</div>
+</div>
+<a id="ab1706e67b56808564438ef853a8d2821"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab1706e67b56808564438ef853a8d2821">&#9670;&nbsp;</a></span>GUACAMOLE_PROTOCOL_VERSION</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUACAMOLE_PROTOCOL_VERSION&#160;&#160;&#160;&quot;VERSION_1_1_0&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>This defines the overall protocol version that this build of libguac supports. </p>
+<p>The protocol version is used to provide compatibility between potentially different versions of Guacamole server and clients. The version number is a MAJOR_MINOR_PATCH version that matches the versioning used throughout the components of the Guacamole project. This version will not necessarily increment with the other components, unless additional functionality is introduced that affects compatibility.</p>
+<p>This version is passed by the __guac_protocol_send_args() function from the server to the client during the client/server handshake. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-constants_8h_source.html b/doc/1.1.0/libguac/protocol-constants_8h_source.html
new file mode 100644
index 0000000..729ac28
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_PROTOCOL_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821">   41</a></span>&#160;<span class="preprocessor">#define GUACAMOLE_PROTOCOL_VERSION &quot;VERSION_1_1_0&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166">   50</a></span>&#160;<span class="preprocessor">#define GUAC_PROTOCOL_BLOB_MAX_LENGTH 6048</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-types_8h.html b/doc/1.1.0/libguac/protocol-types_8h.html
new file mode 100644
index 0000000..d12cf97
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-types_8h.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the Guacamole protocol.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:af946f7f843fa5935dbeeb08f85dec9e2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> { <br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a> = 0x0000, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a> = 0x0100, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a> = 0x0200, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a> = 0x0201, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a> = 0x0202, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a> = 0x0203, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a> = 0x0204, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a> = 0x0205, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a> = 0x0206, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a> = 0x0207, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a> = 0x0208, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a> = 0x0209, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a> = 0x020A, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a> = 0x020B, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a> = 0x300, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a> = 0x0301, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a> = 0x0303, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a> = 0x308, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a> = 0x30D, 
+<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a> = 0x30F, 
+<br />
+&#160;&#160;<a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a> = 0x31D
+<br />
+ }</td></tr>
+<tr class="memdesc:af946f7f843fa5935dbeeb08f85dec9e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set of all possible status codes returned by protocol operations.  <a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">More...</a><br /></td></tr>
+<tr class="separator:af946f7f843fa5935dbeeb08f85dec9e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93612063886db58071d02b5393abf186"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> { <br />
+&#160;&#160;<b>GUAC_COMP_ROUT</b> = 0x2, 
+<b>GUAC_COMP_ATOP</b> = 0x6, 
+<b>GUAC_COMP_XOR</b> = 0xA, 
+<b>GUAC_COMP_ROVER</b> = 0xB, 
+<br />
+&#160;&#160;<b>GUAC_COMP_OVER</b> = 0xE, 
+<b>GUAC_COMP_PLUS</b> = 0xF, 
+<b>GUAC_COMP_RIN</b> = 0x1, 
+<b>GUAC_COMP_IN</b> = 0x4, 
+<br />
+&#160;&#160;<b>GUAC_COMP_OUT</b> = 0x8, 
+<b>GUAC_COMP_RATOP</b> = 0x9, 
+<b>GUAC_COMP_SRC</b> = 0xC
+<br />
+ }</td></tr>
+<tr class="memdesc:a93612063886db58071d02b5393abf186"><td class="mdescLeft">&#160;</td><td class="mdescRight">Composite modes used by Guacamole draw instructions.  <a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">More...</a><br /></td></tr>
+<tr class="separator:a93612063886db58071d02b5393abf186"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> { <br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_BLACK</b> = 0x0, 
+<b>GUAC_TRANSFER_BINARY_WHITE</b> = 0xF, 
+<b>GUAC_TRANSFER_BINARY_SRC</b> = 0x3, 
+<b>GUAC_TRANSFER_BINARY_DEST</b> = 0x5, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NSRC</b> = 0xC, 
+<b>GUAC_TRANSFER_BINARY_NDEST</b> = 0xA, 
+<b>GUAC_TRANSFER_BINARY_AND</b> = 0x1, 
+<b>GUAC_TRANSFER_BINARY_NAND</b> = 0xE, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_OR</b> = 0x7, 
+<b>GUAC_TRANSFER_BINARY_NOR</b> = 0x8, 
+<b>GUAC_TRANSFER_BINARY_XOR</b> = 0x6, 
+<b>GUAC_TRANSFER_BINARY_XNOR</b> = 0x9, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NSRC_AND</b> = 0x4, 
+<b>GUAC_TRANSFER_BINARY_NSRC_NAND</b> = 0xB, 
+<b>GUAC_TRANSFER_BINARY_NSRC_OR</b> = 0xD, 
+<b>GUAC_TRANSFER_BINARY_NSRC_NOR</b> = 0x2, 
+<br />
+&#160;&#160;<b>GUAC_TRANSFER_BINARY_NDEST_AND</b> = 0x2, 
+<b>GUAC_TRANSFER_BINARY_NDEST_NAND</b> = 0xD, 
+<b>GUAC_TRANSFER_BINARY_NDEST_OR</b> = 0xB, 
+<b>GUAC_TRANSFER_BINARY_NDEST_NOR</b> = 0x4
+<br />
+ }</td></tr>
+<tr class="memdesc:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default transfer functions.  <a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">More...</a><br /></td></tr>
+<tr class="separator:a9c85e3f22f5dea8b2f38de6b4f75b1ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="memItemLeft" align="right" valign="top"><a id="a4a0205f8ee2e29e1a4d78da74ab58efc"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> { <b>GUAC_LINE_CAP_BUTT</b> = 0x0, 
+<b>GUAC_LINE_CAP_ROUND</b> = 0x1, 
+<b>GUAC_LINE_CAP_SQUARE</b> = 0x2
+ }</td></tr>
+<tr class="memdesc:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported line cap styles. <br /></td></tr>
+<tr class="separator:a4a0205f8ee2e29e1a4d78da74ab58efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6333200b3ff1634e0cb1826b271438b1"><td class="memItemLeft" align="right" valign="top"><a id="a6333200b3ff1634e0cb1826b271438b1"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> { <b>GUAC_LINE_JOIN_BEVEL</b> = 0x0, 
+<b>GUAC_LINE_JOIN_MITER</b> = 0x1, 
+<b>GUAC_LINE_JOIN_ROUND</b> = 0x2
+ }</td></tr>
+<tr class="memdesc:a6333200b3ff1634e0cb1826b271438b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Supported line join styles. <br /></td></tr>
+<tr class="separator:a6333200b3ff1634e0cb1826b271438b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the Guacamole protocol. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a93612063886db58071d02b5393abf186"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a93612063886db58071d02b5393abf186">&#9670;&nbsp;</a></span>guac_composite_mode</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Composite modes used by Guacamole draw instructions. </p>
+<p>Each composite mode maps to a unique channel mask integer. </p>
+
+</div>
+</div>
+<a id="af946f7f843fa5935dbeeb08f85dec9e2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af946f7f843fa5935dbeeb08f85dec9e2">&#9670;&nbsp;</a></span>guac_protocol_status</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Set of all possible status codes returned by protocol operations. </p>
+<p>These codes relate to Guacamole server/client communication, and not to internal communication of errors within libguac and linked software.</p>
+<p>In general: </p><pre class="fragment">0x0000 - 0x00FF: Successful operations.
+0x0100 - 0x01FF: Operations that failed due to implementation status.
+0x0200 - 0x02FF: Operations that failed due to remote state/environment.
+0x0300 - 0x03FF: Operations that failed due to user/client action.
+</pre><p>There is a general correspondence of these status codes with HTTP response codes. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac"></a>GUAC_PROTOCOL_STATUS_SUCCESS&#160;</td><td class="fielddoc"><p>The operation succeeded. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75"></a>GUAC_PROTOCOL_STATUS_UNSUPPORTED&#160;</td><td class="fielddoc"><p>The requested operation is unsupported. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff"></a>GUAC_PROTOCOL_STATUS_SERVER_ERROR&#160;</td><td class="fielddoc"><p>The operation could not be performed due to an internal failure. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6"></a>GUAC_PROTOCOL_STATUS_SERVER_BUSY&#160;</td><td class="fielddoc"><p>The operation could not be performed due as the server is busy. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server is not responding. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR&#160;</td><td class="fielddoc"><p>The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream server. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22"></a>GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource does not exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9"></a>GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource is already in use. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da"></a>GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED&#160;</td><td class="fielddoc"><p>The operation could not be performed as the requested resource is now closed. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server does not appear to exist. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814"></a>GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE&#160;</td><td class="fielddoc"><p>The operation could not be performed because the upstream server is not available to service the request. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7"></a>GUAC_PROTOCOL_STATUS_SESSION_CONFLICT&#160;</td><td class="fielddoc"><p>The session within the upstream server has ended because it conflicted with another session. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23"></a>GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT&#160;</td><td class="fielddoc"><p>The session within the upstream server has ended because it appeared to be inactive. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab"></a>GUAC_PROTOCOL_STATUS_SESSION_CLOSED&#160;</td><td class="fielddoc"><p>The session within the upstream server has been forcibly terminated. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7"></a>GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST&#160;</td><td class="fielddoc"><p>The operation could not be performed because bad parameters were given. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca"></a>GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in, for example). </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5"></a>GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN&#160;</td><td class="fielddoc"><p>Permission was denied to perform the operation, and this permission will not be granted even if the user is authorized. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff"></a>GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT&#160;</td><td class="fielddoc"><p>The client took too long to respond. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13"></a>GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN&#160;</td><td class="fielddoc"><p>The client sent too much data. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a"></a>GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE&#160;</td><td class="fielddoc"><p>The client sent data of an unsupported or unexpected type. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc"></a>GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY&#160;</td><td class="fielddoc"><p>The operation failed because the current client is already using too many resources. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a id="a9c85e3f22f5dea8b2f38de6b4f75b1ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9c85e3f22f5dea8b2f38de6b4f75b1ff">&#9670;&nbsp;</a></span>guac_transfer_function</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Default transfer functions. </p>
+<p>There is no current facility in the Guacamole protocol to define custom transfer functions. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol-types_8h_source.html b/doc/1.1.0/libguac/protocol-types_8h_source.html
new file mode 100644
index 0000000..8a0c027
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol-types_8h_source.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PROTOCOL_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PROTOCOL_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">   44</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> {</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">   49</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a> = 0x0000,</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">   54</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a> = 0x0100,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">   59</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a> = 0x0200,</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">   64</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a> = 0x0201,</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">   70</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a> = 0x0202,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">   76</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a> = 0x0203,</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">   82</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a> = 0x0204,</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">   88</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a> = 0x0205,</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">   94</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a> = 0x0206,</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">  100</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a> = 0x0207,</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">  106</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a> = 0x0208,</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">  112</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a> = 0x0209,</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">  118</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a> = 0x020A,</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">  123</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a> = 0x020B,</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">  129</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a> = 0x300,</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">  135</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a> = 0x0301,</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">  141</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a> = 0x0303,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">  146</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a> = 0x308,</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">  151</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a> = 0x30D,</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">  156</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a> = 0x30F,</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">  162</a></span>&#160;    <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a> = 0x31D</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;} <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">  170</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> {</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<span class="comment">     * A: Source where destination transparent = S n D&#39;</span></div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="comment">     * B: Source where destination opaque      = S n D</span></div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="comment">     * C: Destination where source transparent = D n S&#39;</span></div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="comment">     * D: Destination where source opaque      = D n S</span></div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="comment">     *</span></div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="comment">     * 0 = Active, 1 = Inactive</span></div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                           <span class="comment">/* ABCD */</span></div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    GUAC_COMP_ROUT  = 0x2, <span class="comment">/* 0010 - Clears destination where source opaque  */</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    GUAC_COMP_ATOP  = 0x6, <span class="comment">/* 0110 - Fill where destination opaque only      */</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    GUAC_COMP_XOR   = 0xA, <span class="comment">/* 1010 - XOR                                     */</span></div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    GUAC_COMP_ROVER = 0xB, <span class="comment">/* 1011 - Fill where destination transparent only */</span></div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;    GUAC_COMP_OVER  = 0xE, <span class="comment">/* 1110 - Draw normally                           */</span></div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    GUAC_COMP_PLUS  = 0xF, <span class="comment">/* 1111 - Add                                     */</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="comment">/* Unimplemented in client: */</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0000 - Clear          */</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0011 - No operation   */</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0101 - Additive IN    */</span></div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       0111 - Additive ATOP  */</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="comment">/* NOT IMPLEMENTED:       1101 - Additive RATOP */</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="comment">/* Buggy in webkit browsers, as they keep channel C on in all cases: */</span></div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    GUAC_COMP_RIN   = 0x1, <span class="comment">/* 0001 */</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    GUAC_COMP_IN    = 0x4, <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    GUAC_COMP_OUT   = 0x8, <span class="comment">/* 1000 */</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    GUAC_COMP_RATOP = 0x9, <span class="comment">/* 1001 */</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    GUAC_COMP_SRC   = 0xC  <span class="comment">/* 1100 */</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="comment">/* Bitwise composite operations (binary) */</span></div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="comment">/*</span></div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="comment">     * A: S&#39; &amp; D&#39;</span></div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="comment">     * B: S&#39; &amp; D</span></div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;<span class="comment">     * C: S  &amp; D&#39;</span></div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="comment">     * D: S  &amp; D</span></div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="comment">     *</span></div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="comment">     * 0 = Active, 1 = Inactive</span></div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="comment">     */</span></div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;} <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">  219</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="comment">/* Constant functions */</span>               <span class="comment">/* ABCD */</span></div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;    GUAC_TRANSFER_BINARY_BLACK      = 0x0, <span class="comment">/* 0000 */</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    GUAC_TRANSFER_BINARY_WHITE      = 0xF, <span class="comment">/* 1111 */</span></div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="comment">/* Copy functions */</span></div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    GUAC_TRANSFER_BINARY_SRC        = 0x3, <span class="comment">/* 0011 */</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    GUAC_TRANSFER_BINARY_DEST       = 0x5, <span class="comment">/* 0101 */</span></div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    GUAC_TRANSFER_BINARY_NSRC       = 0xC, <span class="comment">/* 1100 */</span></div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    GUAC_TRANSFER_BINARY_NDEST      = 0xA, <span class="comment">/* 1010 */</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="comment">/* AND / NAND */</span></div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    GUAC_TRANSFER_BINARY_AND        = 0x1, <span class="comment">/* 0001 */</span></div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    GUAC_TRANSFER_BINARY_NAND       = 0xE, <span class="comment">/* 1110 */</span></div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;    <span class="comment">/* OR / NOR */</span></div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    GUAC_TRANSFER_BINARY_OR         = 0x7, <span class="comment">/* 0111 */</span></div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    GUAC_TRANSFER_BINARY_NOR        = 0x8, <span class="comment">/* 1000 */</span></div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="comment">/* XOR / XNOR */</span></div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    GUAC_TRANSFER_BINARY_XOR        = 0x6, <span class="comment">/* 0110 */</span></div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    GUAC_TRANSFER_BINARY_XNOR       = 0x9, <span class="comment">/* 1001 */</span></div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    <span class="comment">/* AND / NAND with inverted source */</span></div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_AND   = 0x4, <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_NAND  = 0xB, <span class="comment">/* 1011 */</span></div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    <span class="comment">/* OR / NOR with inverted source */</span></div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_OR    = 0xD, <span class="comment">/* 1101 */</span></div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;    GUAC_TRANSFER_BINARY_NSRC_NOR   = 0x2, <span class="comment">/* 0010 */</span></div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    <span class="comment">/* AND / NAND with inverted destination */</span></div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_AND  = 0x2, <span class="comment">/* 0010 */</span></div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_NAND = 0xD, <span class="comment">/* 1101 */</span></div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="comment">/* OR / NOR with inverted destination */</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_OR   = 0xB, <span class="comment">/* 1011 */</span></div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    GUAC_TRANSFER_BINARY_NDEST_NOR  = 0x4  <span class="comment">/* 0100 */</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;} <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">  264</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> {</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    GUAC_LINE_CAP_BUTT   = 0x0,</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    GUAC_LINE_CAP_ROUND  = 0x1,</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    GUAC_LINE_CAP_SQUARE = 0x2</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;} <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">  273</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> {</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    GUAC_LINE_JOIN_BEVEL = 0x0,</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    GUAC_LINE_JOIN_MITER = 0x1,</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    GUAC_LINE_JOIN_ROUND = 0x2</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;} <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;</div><div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6">GUAC_PROTOCOL_STATUS_SERVER_BUSY</a></div><div class="ttdoc">The operation could not be performed due as the server is busy. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:64</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5">GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN</a></div><div class="ttdoc">Permission was denied to perform the operation, and this permission will not be granted even if the u...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:141</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7">GUAC_PROTOCOL_STATUS_SESSION_CONFLICT</a></div><div class="ttdoc">The session within the upstream server has ended because it conflicted with another session...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:112</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca">GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED</a></div><div class="ttdoc">Permission was denied to perform the operation, as the user is not yet authorized (not yet logged in...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:135</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7">GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST</a></div><div class="ttdoc">The operation could not be performed because bad parameters were given. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:129</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc">GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY</a></div><div class="ttdoc">The operation failed because the current client is already using too many resources. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:162</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23">GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT</a></div><div class="ttdoc">The session within the upstream server has ended because it appeared to be inactive. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:118</div></div>
+<div class="ttc" id="protocol-types_8h_html_a6333200b3ff1634e0cb1826b271438b1"><div class="ttname"><a href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a></div><div class="ttdeci">guac_line_join_style</div><div class="ttdoc">Supported line join styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:273</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab">GUAC_PROTOCOL_STATUS_SESSION_CLOSED</a></div><div class="ttdoc">The session within the upstream server has been forcibly terminated. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:123</div></div>
+<div class="ttc" id="protocol-types_8h_html_a9c85e3f22f5dea8b2f38de6b4f75b1ff"><div class="ttname"><a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></div><div class="ttdeci">guac_transfer_function</div><div class="ttdoc">Default transfer functions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:219</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75">GUAC_PROTOCOL_STATUS_UNSUPPORTED</a></div><div class="ttdoc">The requested operation is unsupported. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:54</div></div>
+<div class="ttc" id="protocol-types_8h_html_a4a0205f8ee2e29e1a4d78da74ab58efc"><div class="ttname"><a href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a></div><div class="ttdeci">guac_line_cap_style</div><div class="ttdoc">Supported line cap styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:264</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13">GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN</a></div><div class="ttdoc">The client sent too much data. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:151</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814">GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE</a></div><div class="ttdoc">The operation could not be performed because the upstream server is not available to service the requ...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:106</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff">GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT</a></div><div class="ttdoc">The client took too long to respond. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:146</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78">GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR</a></div><div class="ttdoc">The operation was unsuccessful due to an error or otherwise unexpected condition of the upstream serv...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:76</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a">GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE</a></div><div class="ttdoc">The client sent data of an unsupported or unexpected type. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:156</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22">GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed as the requested resource does not exist. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:82</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f">GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT</a></div><div class="ttdoc">The operation could not be performed because the upstream server is not responding. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:70</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da">GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED</a></div><div class="ttdoc">The operation could not be performed as the requested resource is now closed. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:94</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e">GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND</a></div><div class="ttdoc">The operation could not be performed because the upstream server does not appear to exist...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:100</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff">GUAC_PROTOCOL_STATUS_SERVER_ERROR</a></div><div class="ttdoc">The operation could not be performed due to an internal failure. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:59</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9">GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT</a></div><div class="ttdoc">The operation could not be performed as the requested resource is already in use. ...</div><div class="ttdef"><b>Definition:</b> protocol-types.h:88</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac">GUAC_PROTOCOL_STATUS_SUCCESS</a></div><div class="ttdoc">The operation succeeded. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:49</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol_8h.html b/doc/1.1.0/libguac/protocol_8h.html
new file mode 100644
index 0000000..eb1558d
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol_8h.html
@@ -0,0 +1,3178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">protocol.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects.  
+<a href="#details">More...</a></p>
+
+<p><a href="protocol_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an ack instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ab02be6102d9f4aaa2bbb0b249f09d63e">More...</a><br /></td></tr>
+<tr class="separator:ab02be6102d9f4aaa2bbb0b249f09d63e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6047d380b097ebc7d5f35b167e3419e6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char **args)</td></tr>
+<tr class="memdesc:a6047d380b097ebc7d5f35b167e3419e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an args instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a6047d380b097ebc7d5f35b167e3419e6">More...</a><br /></td></tr>
+<tr class="separator:a6047d380b097ebc7d5f35b167e3419e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char **args)</td></tr>
+<tr class="memdesc:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a connect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ac8dea4393e2ec69d5d27fd0759a70fcb">More...</a><br /></td></tr>
+<tr class="separator:ac8dea4393e2ec69d5d27fd0759a70fcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd463766036afda4798edbe788d29524"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:afd463766036afda4798edbe788d29524"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a disconnect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afd463766036afda4798edbe788d29524">More...</a><br /></td></tr>
+<tr class="separator:afd463766036afda4798edbe788d29524"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abe696ca7c9841883c5d5bea513d4ee9a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:abe696ca7c9841883c5d5bea513d4ee9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an error instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#abe696ca7c9841883c5d5bea513d4ee9a">More...</a><br /></td></tr>
+<tr class="separator:abe696ca7c9841883c5d5bea513d4ee9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2d276595cea8a2d382240d868487f077"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int keysym, int pressed, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:a2d276595cea8a2d382240d868487f077"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a key instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a2d276595cea8a2d382240d868487f077">More...</a><br /></td></tr>
+<tr class="separator:a2d276595cea8a2d382240d868487f077"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6f832f5b814129d2819f115d84da3cd0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *format,...)</td></tr>
+<tr class="memdesc:a6f832f5b814129d2819f115d84da3cd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a6f832f5b814129d2819f115d84da3cd0">More...</a><br /></td></tr>
+<tr class="separator:a6f832f5b814129d2819f115d84da3cd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a783d771e1727ba2a82b2298acf4ee4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *format, va_list args)</td></tr>
+<tr class="memdesc:a3a783d771e1727ba2a82b2298acf4ee4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a3a783d771e1727ba2a82b2298acf4ee4">More...</a><br /></td></tr>
+<tr class="separator:a3a783d771e1727ba2a82b2298acf4ee4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8947056262da2f3263b9851370597622"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int x, int y, int button_mask, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:a8947056262da2f3263b9851370597622"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a mouse instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8947056262da2f3263b9851370597622">More...</a><br /></td></tr>
+<tr class="separator:a8947056262da2f3263b9851370597622"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a94efa63c9895383e142a3f7ce559300b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int index, const char *data)</td></tr>
+<tr class="memdesc:a94efa63c9895383e142a3f7ce559300b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a nest instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a94efa63c9895383e142a3f7ce559300b">More...</a><br /></td></tr>
+<tr class="separator:a94efa63c9895383e142a3f7ce559300b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8fa17d3aa1270b806ac6a386798c6d41"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a8fa17d3aa1270b806ac6a386798c6d41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a nop instruction (null-operation) over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8fa17d3aa1270b806ac6a386798c6d41">More...</a><br /></td></tr>
+<tr class="separator:a8fa17d3aa1270b806ac6a386798c6d41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *id)</td></tr>
+<tr class="memdesc:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a ready instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a102b7719fbd9c8ea0eb2dc4f51e26359">More...</a><br /></td></tr>
+<tr class="separator:a102b7719fbd9c8ea0eb2dc4f51e26359"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *name, const char *value)</td></tr>
+<tr class="memdesc:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a set instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aa3750a6c0fbf190fb71a6ab0955cb31a">More...</a><br /></td></tr>
+<tr class="separator:aa3750a6c0fbf190fb71a6ab0955cb31a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8757c7870e648b220dbc76b8292fe5cf"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *protocol)</td></tr>
+<tr class="memdesc:a8757c7870e648b220dbc76b8292fe5cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a select instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a8757c7870e648b220dbc76b8292fe5cf">More...</a><br /></td></tr>
+<tr class="separator:a8757c7870e648b220dbc76b8292fe5cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa11f8798abca85fd2b47b5f9a027fa73"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:aa11f8798abca85fd2b47b5f9a027fa73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a sync instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aa11f8798abca85fd2b47b5f9a027fa73">More...</a><br /></td></tr>
+<tr class="separator:aa11f8798abca85fd2b47b5f9a027fa73"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca9fb516e730233c33da297819f7ae7e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:aca9fb516e730233c33da297819f7ae7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a body instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aca9fb516e730233c33da297819f7ae7e">More...</a><br /></td></tr>
+<tr class="separator:aca9fb516e730233c33da297819f7ae7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3779c2287625af70fb001afbcc739da5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object, const char *name)</td></tr>
+<tr class="memdesc:a3779c2287625af70fb001afbcc739da5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a filesystem instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a3779c2287625af70fb001afbcc739da5">More...</a><br /></td></tr>
+<tr class="separator:a3779c2287625af70fb001afbcc739da5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aefa251505e61332e8e1c27ade0478e64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__object.html">guac_object</a> *object)</td></tr>
+<tr class="memdesc:aefa251505e61332e8e1c27ade0478e64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an undefine instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aefa251505e61332e8e1c27ade0478e64">More...</a><br /></td></tr>
+<tr class="separator:aefa251505e61332e8e1c27ade0478e64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab92edb38a4df2db402a013422cee6b42"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype)</td></tr>
+<tr class="memdesc:ab92edb38a4df2db402a013422cee6b42"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an audio instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ab92edb38a4df2db402a013422cee6b42">More...</a><br /></td></tr>
+<tr class="separator:ab92edb38a4df2db402a013422cee6b42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a file instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a453e1b22d63a9d07ba23b3a6726c2f06">More...</a><br /></td></tr>
+<tr class="separator:a453e1b22d63a9d07ba23b3a6726c2f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a18b2c462077b7c51d211f3db09c30292"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:a18b2c462077b7c51d211f3db09c30292"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a pipe instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a18b2c462077b7c51d211f3db09c30292">More...</a><br /></td></tr>
+<tr class="separator:a18b2c462077b7c51d211f3db09c30292"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const void *data, int count)</td></tr>
+<tr class="memdesc:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a block of data to the currently in-progress blob which was already created.  <a href="#a798d57ec3f3cdfa0d9bb4906f02d5127">More...</a><br /></td></tr>
+<tr class="separator:a798d57ec3f3cdfa0d9bb4906f02d5127"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad4b3d3b5741b377a197c02384e4b870e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const void *data, int count)</td></tr>
+<tr class="memdesc:ad4b3d3b5741b377a197c02384e4b870e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a series of blob instructions, splitting the given data across the number of instructions required to ensure the size of each blob does not exceed GUAC_PROTOCOL_BLOB_MAX_LENGTH.  <a href="#ad4b3d3b5741b377a197c02384e4b870e">More...</a><br /></td></tr>
+<tr class="separator:ad4b3d3b5741b377a197c02384e4b870e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae1bb569878a14efecccc0c05757d1cae"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:ae1bb569878a14efecccc0c05757d1cae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an end instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ae1bb569878a14efecccc0c05757d1cae">More...</a><br /></td></tr>
+<tr class="separator:ae1bb569878a14efecccc0c05757d1cae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a657216f2e63d2d42e8624f96def84bf8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *mimetype)</td></tr>
+<tr class="memdesc:a657216f2e63d2d42e8624f96def84bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a video instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a657216f2e63d2d42e8624f96def84bf8">More...</a><br /></td></tr>
+<tr class="separator:a657216f2e63d2d42e8624f96def84bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad74bc43b5f03b79027bf02d873cd77b3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, int radius, double startAngle, double endAngle, int negative)</td></tr>
+<tr class="memdesc:ad74bc43b5f03b79027bf02d873cd77b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an arc instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ad74bc43b5f03b79027bf02d873cd77b3">More...</a><br /></td></tr>
+<tr class="separator:ad74bc43b5f03b79027bf02d873cd77b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afda3a1a8285e323fca6aef50cb2feb5e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int r, int g, int b, int a)</td></tr>
+<tr class="memdesc:afda3a1a8285e323fca6aef50cb2feb5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afda3a1a8285e323fca6aef50cb2feb5e">More...</a><br /></td></tr>
+<tr class="separator:afda3a1a8285e323fca6aef50cb2feb5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acbd1869635b752bbf52998613804df00"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:acbd1869635b752bbf52998613804df00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a clip instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#acbd1869635b752bbf52998613804df00">More...</a><br /></td></tr>
+<tr class="separator:acbd1869635b752bbf52998613804df00"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a45a3e4e32900594e17c49db6939fc10a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a45a3e4e32900594e17c49db6939fc10a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a close instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a45a3e4e32900594e17c49db6939fc10a">More...</a><br /></td></tr>
+<tr class="separator:a45a3e4e32900594e17c49db6939fc10a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad035df3781dc19ba2330b02ef1dd6eda"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *dstl, int dstx, int dsty)</td></tr>
+<tr class="memdesc:ad035df3781dc19ba2330b02ef1dd6eda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a copy instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ad035df3781dc19ba2330b02ef1dd6eda">More...</a><br /></td></tr>
+<tr class="separator:ad035df3781dc19ba2330b02ef1dd6eda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, int thickness, int r, int g, int b, int a)</td></tr>
+<tr class="memdesc:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ac6f28f1beb2fa07e1b3f6fa774789fd9">More...</a><br /></td></tr>
+<tr class="separator:ac6f28f1beb2fa07e1b3f6fa774789fd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17da53514189083fa84aa3cc0bf6883a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int x, int y, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h)</td></tr>
+<tr class="memdesc:a17da53514189083fa84aa3cc0bf6883a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a cursor instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a17da53514189083fa84aa3cc0bf6883a">More...</a><br /></td></tr>
+<tr class="separator:a17da53514189083fa84aa3cc0bf6883a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int cp1x, int cp1y, int cp2x, int cp2y, int x, int y)</td></tr>
+<tr class="memdesc:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a curve instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a1b9985b080a339dcd14b95f5e46e8ab5">More...</a><br /></td></tr>
+<tr class="separator:a1b9985b080a339dcd14b95f5e46e8ab5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac205e52801a875bfbef02ae237b6b15"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:aac205e52801a875bfbef02ae237b6b15"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an identity instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aac205e52801a875bfbef02ae237b6b15">More...</a><br /></td></tr>
+<tr class="separator:aac205e52801a875bfbef02ae237b6b15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9271e3b6cc0030b833d18137969a4018"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl)</td></tr>
+<tr class="memdesc:a9271e3b6cc0030b833d18137969a4018"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an lfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a9271e3b6cc0030b833d18137969a4018">More...</a><br /></td></tr>
+<tr class="separator:a9271e3b6cc0030b833d18137969a4018"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afac3f57649c20b5e39c484a52d264005"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y)</td></tr>
+<tr class="memdesc:afac3f57649c20b5e39c484a52d264005"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a line instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afac3f57649c20b5e39c484a52d264005">More...</a><br /></td></tr>
+<tr class="separator:afac3f57649c20b5e39c484a52d264005"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b7d621d534126e26178789800a1a5d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, <a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, int thickness, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl)</td></tr>
+<tr class="memdesc:a5b7d621d534126e26178789800a1a5d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an lstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a5b7d621d534126e26178789800a1a5d5">More...</a><br /></td></tr>
+<tr class="separator:a5b7d621d534126e26178789800a1a5d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afda8074f65d35795203f392f6688163e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const char *mimetype, int x, int y)</td></tr>
+<tr class="memdesc:afda8074f65d35795203f392f6688163e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an img instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#afda8074f65d35795203f392f6688163e">More...</a><br /></td></tr>
+<tr class="separator:afda8074f65d35795203f392f6688163e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab29ab6edd91e954fd686742c92eab6d4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:ab29ab6edd91e954fd686742c92eab6d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a pop instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ab29ab6edd91e954fd686742c92eab6d4">More...</a><br /></td></tr>
+<tr class="separator:ab29ab6edd91e954fd686742c92eab6d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db04720cbb2bc972f48f2e9332f23a8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a9db04720cbb2bc972f48f2e9332f23a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a push instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a9db04720cbb2bc972f48f2e9332f23a8">More...</a><br /></td></tr>
+<tr class="separator:a9db04720cbb2bc972f48f2e9332f23a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42dc3db797b83accd3418b76648adac5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, int width, int height)</td></tr>
+<tr class="memdesc:a42dc3db797b83accd3418b76648adac5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a rect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a42dc3db797b83accd3418b76648adac5">More...</a><br /></td></tr>
+<tr class="separator:a42dc3db797b83accd3418b76648adac5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f6433cc21bc043c57fb7c468428373a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a5f6433cc21bc043c57fb7c468428373a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a reset instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a5f6433cc21bc043c57fb7c468428373a">More...</a><br /></td></tr>
+<tr class="separator:a5f6433cc21bc043c57fb7c468428373a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a60d33439eb4b5a11535a9a77e57c4126"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y)</td></tr>
+<tr class="memdesc:a60d33439eb4b5a11535a9a77e57c4126"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a start instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a60d33439eb4b5a11535a9a77e57c4126">More...</a><br /></td></tr>
+<tr class="separator:a60d33439eb4b5a11535a9a77e57c4126"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aecdce272ed4c317c5b7291e42239a1f9"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *srcl, int srcx, int srcy, int w, int h, <a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> fn, const <a class="el" href="structguac__layer.html">guac_layer</a> *dstl, int dstx, int dsty)</td></tr>
+<tr class="memdesc:aecdce272ed4c317c5b7291e42239a1f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a transfer instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aecdce272ed4c317c5b7291e42239a1f9">More...</a><br /></td></tr>
+<tr class="separator:aecdce272ed4c317c5b7291e42239a1f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a17058795c93be51c82a9df95eca8e62b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, double a, double b, double c, double d, double e, double f)</td></tr>
+<tr class="memdesc:a17058795c93be51c82a9df95eca8e62b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a transform instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a17058795c93be51c82a9df95eca8e62b">More...</a><br /></td></tr>
+<tr class="separator:a17058795c93be51c82a9df95eca8e62b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b2456a017f772a39be6d33a5da9149d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer)</td></tr>
+<tr class="memdesc:a7b2456a017f772a39be6d33a5da9149d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a dispose instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a7b2456a017f772a39be6d33a5da9149d">More...</a><br /></td></tr>
+<tr class="separator:a7b2456a017f772a39be6d33a5da9149d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, double a, double b, double c, double d, double e, double f)</td></tr>
+<tr class="memdesc:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a distort instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">More...</a><br /></td></tr>
+<tr class="separator:a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7409451b0f2b18dc870d347545c9afd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, const <a class="el" href="structguac__layer.html">guac_layer</a> *parent, int x, int y, int z)</td></tr>
+<tr class="memdesc:ac7409451b0f2b18dc870d347545c9afd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a move instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#ac7409451b0f2b18dc870d347545c9afd">More...</a><br /></td></tr>
+<tr class="separator:ac7409451b0f2b18dc870d347545c9afd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int a)</td></tr>
+<tr class="memdesc:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a shade instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a0e72a4122a3a7c45fa21e0d5607cc4d5">More...</a><br /></td></tr>
+<tr class="separator:a0e72a4122a3a7c45fa21e0d5607cc4d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:affc4cf09c3337bd860439da99bdfef98"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int w, int h)</td></tr>
+<tr class="memdesc:affc4cf09c3337bd860439da99bdfef98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a size instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#affc4cf09c3337bd860439da99bdfef98">More...</a><br /></td></tr>
+<tr class="separator:affc4cf09c3337bd860439da99bdfef98"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype, const char *name)</td></tr>
+<tr class="memdesc:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends an argv instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#aaddd6d7c6ab1289efb3dd38c39bde531">More...</a><br /></td></tr>
+<tr class="separator:aaddd6d7c6ab1289efb3dd38c39bde531"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const <a class="el" href="structguac__stream.html">guac_stream</a> *stream, const char *mimetype)</td></tr>
+<tr class="memdesc:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a clipboard instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a7e8a055e57afbcd9c9b520767d9a1c64">More...</a><br /></td></tr>
+<tr class="separator:a7e8a055e57afbcd9c9b520767d9a1c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a481fbaab3b8e72505df752ac2f6cc59e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *name)</td></tr>
+<tr class="memdesc:a481fbaab3b8e72505df752ac2f6cc59e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sends a name instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection.  <a href="#a481fbaab3b8e72505df752ac2f6cc59e">More...</a><br /></td></tr>
+<tr class="separator:a481fbaab3b8e72505df752ac2f6cc59e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a> (char *base64)</td></tr>
+<tr class="memdesc:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decodes the given base64-encoded string in-place.  <a href="#a0ad7d9b8b205d6fc368eff2d9e8e40ec">More...</a><br /></td></tr>
+<tr class="separator:a0ad7d9b8b205d6fc368eff2d9e8e40ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for communicating using the Guacamole protocol over a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection, such as that provided by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> objects. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0ad7d9b8b205d6fc368eff2d9e8e40ec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ad7d9b8b205d6fc368eff2d9e8e40ec">&#9670;&nbsp;</a></span>guac_protocol_decode_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_decode_base64 </td>
+          <td>(</td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>base64</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Decodes the given base64-encoded string in-place. </p>
+<p>The base64 string must be NULL-terminated.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">base64</td><td>The base64-encoded string to decode. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes resulting from the decode operation. </dd></dl>
+
+</div>
+</div>
+<a id="ab02be6102d9f4aaa2bbb0b249f09d63e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab02be6102d9f4aaa2bbb0b249f09d63e">&#9670;&nbsp;</a></span>guac_protocol_send_ack()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_ack </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>error</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an ack instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> associated with the operation this ack is acknowledging. </td></tr>
+    <tr><td class="paramname">error</td><td>The human-readable description associated with the error or status update. </td></tr>
+    <tr><td class="paramname">status</td><td>The status code related to the error or status. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad74bc43b5f03b79027bf02d873cd77b3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad74bc43b5f03b79027bf02d873cd77b3">&#9670;&nbsp;</a></span>guac_protocol_send_arc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_arc </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>radius</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>startAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>endAngle</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>negative</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an arc instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the center of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the center of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">radius</td><td>The radius of the circle containing the arc. </td></tr>
+    <tr><td class="paramname">startAngle</td><td>The starting angle, in radians. </td></tr>
+    <tr><td class="paramname">endAngle</td><td>The ending angle, in radians. </td></tr>
+    <tr><td class="paramname">negative</td><td>Zero if the arc should be drawn in order of increasing angle, non-zero otherwise. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6047d380b097ebc7d5f35b167e3419e6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6047d380b097ebc7d5f35b167e3419e6">&#9670;&nbsp;</a></span>guac_protocol_send_args()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_args </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an args instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">args</td><td>The NULL-terminated array of argument names (strings). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aaddd6d7c6ab1289efb3dd38c39bde531"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaddd6d7c6ab1289efb3dd38c39bde531">&#9670;&nbsp;</a></span>guac_protocol_send_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an argv instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use to send the connection parameter value.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use to send the connection parameter value.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter whose current value is being sent.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ab92edb38a4df2db402a013422cee6b42"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab92edb38a4df2db402a013422cee6b42">&#9670;&nbsp;</a></span>guac_protocol_send_audio()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_audio </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an audio instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use when sending the audio instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use for future audio data.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the audio data which will be sent over the given stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a798d57ec3f3cdfa0d9bb4906f02d5127"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a798d57ec3f3cdfa0d9bb4906f02d5127">&#9670;&nbsp;</a></span>guac_protocol_send_blob()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_blob </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a block of data to the currently in-progress blob which was already created. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">data</td><td>The file data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes within the given buffer of file data that must be written. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad4b3d3b5741b377a197c02384e4b870e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad4b3d3b5741b377a197c02384e4b870e">&#9670;&nbsp;</a></span>guac_protocol_send_blobs()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_blobs </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>data</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a series of blob instructions, splitting the given data across the number of instructions required to ensure the size of each blob does not exceed GUAC_PROTOCOL_BLOB_MAX_LENGTH. </p>
+<p>If the size of data provided is zero, no blob instructions are sent.</p>
+<p>If an error occurs sending any blob instruction, a non-zero value is returned, guac_error is set appropriately, and no further blobs are sent.</p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166" title="The maximum number of bytes that should be sent in any one blob instruction to ensure the instruction...">GUAC_PROTOCOL_BLOB_MAX_LENGTH</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use to send the blob instructions.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to associate with each blob sent.</td></tr>
+    <tr><td class="paramname">data</td><td>The data which should be sent using the required number of blob instructions.</td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes within the given buffer of data that must be written.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aca9fb516e730233c33da297819f7ae7e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca9fb516e730233c33da297819f7ae7e">&#9670;&nbsp;</a></span>guac_protocol_send_body()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_body </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a body instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object to associated with the stream being used.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream whose body is being sent, as requested by a "get" instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afda3a1a8285e323fca6aef50cb2feb5e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afda3a1a8285e323fca6aef50cb2feb5e">&#9670;&nbsp;</a></span>guac_protocol_send_cfill()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cfill </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>g</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">r</td><td>The red component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">g</td><td>The green component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">b</td><td>The blue component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha (transparency) component of the color of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="acbd1869635b752bbf52998613804df00"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acbd1869635b752bbf52998613804df00">&#9670;&nbsp;</a></span>guac_protocol_send_clip()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_clip </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a clip instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a7e8a055e57afbcd9c9b520767d9a1c64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e8a055e57afbcd9c9b520767d9a1c64">&#9670;&nbsp;</a></span>guac_protocol_send_clipboard()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_clipboard </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a clipboard instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the clipboard data being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a45a3e4e32900594e17c49db6939fc10a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a45a3e4e32900594e17c49db6939fc10a">&#9670;&nbsp;</a></span>guac_protocol_send_close()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_close </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a close instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac8dea4393e2ec69d5d27fd0759a70fcb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac8dea4393e2ec69d5d27fd0759a70fcb">&#9670;&nbsp;</a></span>guac_protocol_send_connect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_connect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a connect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">args</td><td>The NULL-terminated array of argument values (strings). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ad035df3781dc19ba2330b02ef1dd6eda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad035df3781dc19ba2330b02ef1dd6eda">&#9670;&nbsp;</a></span>guac_protocol_send_copy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_copy </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>dstl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dstx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dsty</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a copy instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">dstl</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">dstx</td><td>The X coordinate of the destination, where the source rectangle should be copied. </td></tr>
+    <tr><td class="paramname">dsty</td><td>The Y coordinate of the destination, where the source rectangle should be copied. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac6f28f1beb2fa07e1b3f6fa774789fd9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6f28f1beb2fa07e1b3f6fa774789fd9">&#9670;&nbsp;</a></span>guac_protocol_send_cstroke()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cstroke </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>&#160;</td>
+          <td class="paramname"><em>cap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>&#160;</td>
+          <td class="paramname"><em>join</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>thickness</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>r</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>g</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cap</td><td>The style of line cap to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">join</td><td>The style of line join to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">thickness</td><td>The thickness of the stroke in pixels. </td></tr>
+    <tr><td class="paramname">r</td><td>The red component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">g</td><td>The green component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">b</td><td>The blue component of the color of the rectangle. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha (transparency) component of the color of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a17da53514189083fa84aa3cc0bf6883a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17da53514189083fa84aa3cc0bf6883a">&#9670;&nbsp;</a></span>guac_protocol_send_cursor()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_cursor </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a cursor instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the cursor hotspot. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the cursor hotspot. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a1b9985b080a339dcd14b95f5e46e8ab5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b9985b080a339dcd14b95f5e46e8ab5">&#9670;&nbsp;</a></span>guac_protocol_send_curve()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_curve </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp1x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp1y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp2x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>cp2y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a curve instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cp1x</td><td>The X coordinate of the first control point. </td></tr>
+    <tr><td class="paramname">cp1y</td><td>The Y coordinate of the first control point. </td></tr>
+    <tr><td class="paramname">cp2x</td><td>The X coordinate of the second control point. </td></tr>
+    <tr><td class="paramname">cp2y</td><td>The Y coordinate of the second control point. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the endpoint of the curve. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the endpoint of the curve. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afd463766036afda4798edbe788d29524"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd463766036afda4798edbe788d29524">&#9670;&nbsp;</a></span>guac_protocol_send_disconnect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_disconnect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a disconnect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a7b2456a017f772a39be6d33a5da9149d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7b2456a017f772a39be6d33a5da9149d">&#9670;&nbsp;</a></span>guac_protocol_send_dispose()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_dispose </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a dispose instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to dispose. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6b4cdd9133dbdca8cfc1e78a0d6bdf13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">&#9670;&nbsp;</a></span>guac_protocol_send_distort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_distort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>d</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a distort instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to distort with the given transform matrix. </td></tr>
+    <tr><td class="paramname">a</td><td>The first value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">b</td><td>The second value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">c</td><td>The third value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">d</td><td>The fourth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">e</td><td>The fifth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">f</td><td>The sixth value of the affine transform matrix. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ae1bb569878a14efecccc0c05757d1cae"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae1bb569878a14efecccc0c05757d1cae">&#9670;&nbsp;</a></span>guac_protocol_send_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_end </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an end instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="abe696ca7c9841883c5d5bea513d4ee9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abe696ca7c9841883c5d5bea513d4ee9a">&#9670;&nbsp;</a></span>guac_protocol_send_error()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_error </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>error</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an error instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">error</td><td>The human-readable description associated with the error. </td></tr>
+    <tr><td class="paramname">status</td><td>The status code related to the error. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a453e1b22d63a9d07ba23b3a6726c2f06"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a453e1b22d63a9d07ba23b3a6726c2f06">&#9670;&nbsp;</a></span>guac_protocol_send_file()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_file </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a file instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent. </td></tr>
+    <tr><td class="paramname">name</td><td>A name describing the file being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a3779c2287625af70fb001afbcc739da5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3779c2287625af70fb001afbcc739da5">&#9670;&nbsp;</a></span>guac_protocol_send_filesystem()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_filesystem </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a filesystem instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object representing the filesystem being exposed.</td></tr>
+    <tr><td class="paramname">name</td><td>A name describing the filesystem being exposed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aac205e52801a875bfbef02ae237b6b15"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aac205e52801a875bfbef02ae237b6b15">&#9670;&nbsp;</a></span>guac_protocol_send_identity()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_identity </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an identity instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afda8074f65d35795203f392f6688163e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afda8074f65d35795203f392f6688163e">&#9670;&nbsp;</a></span>guac_protocol_send_img()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_img </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an img instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use when sending the img instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream over which the image data will be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when drawing the image over the destination layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the image data being sent.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the destination layer, in pixels.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the destination layer, in pixels.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the instruction was successfully sent, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a2d276595cea8a2d382240d868487f077"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2d276595cea8a2d382240d868487f077">&#9670;&nbsp;</a></span>guac_protocol_send_key()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_key </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>keysym</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>pressed</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a key instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">keysym</td><td>The X11 keysym of the key that was pressed or released.</td></tr>
+    <tr><td class="paramname">pressed</td><td>Non-zero if the key represented by the given keysym is currently pressed, zero if it is released.</td></tr>
+    <tr><td class="paramname">timestamp</td><td>The server timestamp (in milliseconds) at the point in time this key event was acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a9271e3b6cc0030b833d18137969a4018"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9271e3b6cc0030b833d18137969a4018">&#9670;&nbsp;</a></span>guac_protocol_send_lfill()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_lfill </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an lfill instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="afac3f57649c20b5e39c484a52d264005"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afac3f57649c20b5e39c484a52d264005">&#9670;&nbsp;</a></span>guac_protocol_send_line()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_line </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a line instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the endpoint of the line. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the endpoint of the line. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a6f832f5b814129d2819f115d84da3cd0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6f832f5b814129d2819f115d84da3cd0">&#9670;&nbsp;</a></span>guac_protocol_send_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>This is mainly useful in debugging.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a5b7d621d534126e26178789800a1a5d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b7d621d534126e26178789800a1a5d5">&#9670;&nbsp;</a></span>guac_protocol_send_lstroke()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_lstroke </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a>&#160;</td>
+          <td class="paramname"><em>cap</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a>&#160;</td>
+          <td class="paramname"><em>join</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>thickness</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an lstroke instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">cap</td><td>The style of line cap to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">join</td><td>The style of line join to use when drawing the stroke. </td></tr>
+    <tr><td class="paramname">thickness</td><td>The thickness of the stroke in pixels. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8947056262da2f3263b9851370597622"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8947056262da2f3263b9851370597622">&#9670;&nbsp;</a></span>guac_protocol_send_mouse()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_mouse </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>button_mask</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a mouse instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the current mouse position.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the current mouse position.</td></tr>
+    <tr><td class="paramname">button_mask</td><td>An integer value representing the current state of each button, where the Nth bit within the integer is set to 1 if and only if the Nth mouse button is currently pressed. The lowest-order bit is the left mouse button, followed by the middle button, right button, and finally the up and down buttons of the scroll wheel.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2" title="The flag set in the mouse button mask when the left mouse button is down. ">GUAC_CLIENT_MOUSE_LEFT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124" title="The flag set in the mouse button mask when the middle mouse button is down. ">GUAC_CLIENT_MOUSE_MIDDLE</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f" title="The flag set in the mouse button mask when the right mouse button is down. ">GUAC_CLIENT_MOUSE_RIGHT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled up. ">GUAC_CLIENT_MOUSE_SCROLL_UP</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled down. ">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">timestamp</td><td>The server timestamp (in milliseconds) at the point in time this mouse position was acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ac7409451b0f2b18dc870d347545c9afd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7409451b0f2b18dc870d347545c9afd">&#9670;&nbsp;</a></span>guac_protocol_send_move()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_move </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>parent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>z</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a move instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to move. </td></tr>
+    <tr><td class="paramname">parent</td><td>The parent layer the specified layer will be positioned relative to. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the layer. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the layer. </td></tr>
+    <tr><td class="paramname">z</td><td>The Z index of the layer, relative to other layers in its parent. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a481fbaab3b8e72505df752ac2f6cc59e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a481fbaab3b8e72505df752ac2f6cc59e">&#9670;&nbsp;</a></span>guac_protocol_send_name()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_name </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a name instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">name</td><td>The name to send within the name instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a94efa63c9895383e142a3f7ce559300b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a94efa63c9895383e142a3f7ce559300b">&#9670;&nbsp;</a></span>guac_protocol_send_nest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_nest </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>data</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a nest instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">index</td><td>The integer index of the stram to send the protocol data over. </td></tr>
+    <tr><td class="paramname">data</td><td>A string containing protocol data, which must be UTF-8 encoded and null-terminated. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8fa17d3aa1270b806ac6a386798c6d41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8fa17d3aa1270b806ac6a386798c6d41">&#9670;&nbsp;</a></span>guac_protocol_send_nop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_nop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a nop instruction (null-operation) over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a18b2c462077b7c51d211f3db09c30292"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a18b2c462077b7c51d211f3db09c30292">&#9670;&nbsp;</a></span>guac_protocol_send_pipe()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_pipe </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a pipe instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use. </td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data being sent. </td></tr>
+    <tr><td class="paramname">name</td><td>An arbitrary name uniquely identifying this pipe. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="ab29ab6edd91e954fd686742c92eab6d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab29ab6edd91e954fd686742c92eab6d4">&#9670;&nbsp;</a></span>guac_protocol_send_pop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_pop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a pop instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a9db04720cbb2bc972f48f2e9332f23a8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9db04720cbb2bc972f48f2e9332f23a8">&#9670;&nbsp;</a></span>guac_protocol_send_push()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_push </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a push instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a102b7719fbd9c8ea0eb2dc4f51e26359"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a102b7719fbd9c8ea0eb2dc4f51e26359">&#9670;&nbsp;</a></span>guac_protocol_send_ready()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_ready </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>id</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a ready instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">id</td><td>The connection ID of the connection that is ready. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a42dc3db797b83accd3418b76648adac5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a42dc3db797b83accd3418b76648adac5">&#9670;&nbsp;</a></span>guac_protocol_send_rect()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_rect </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>width</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>height</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a rect instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the rectangle. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the rectangle. </td></tr>
+    <tr><td class="paramname">width</td><td>The width of the rectangle. </td></tr>
+    <tr><td class="paramname">height</td><td>The height of the rectangle. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a5f6433cc21bc043c57fb7c468428373a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f6433cc21bc043c57fb7c468428373a">&#9670;&nbsp;</a></span>guac_protocol_send_reset()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_reset </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a reset instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the clipping region of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a8757c7870e648b220dbc76b8292fe5cf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8757c7870e648b220dbc76b8292fe5cf">&#9670;&nbsp;</a></span>guac_protocol_send_select()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_select </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>protocol</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a select instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">protocol</td><td>The protocol to request. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aa3750a6c0fbf190fb71a6ab0955cb31a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3750a6c0fbf190fb71a6ab0955cb31a">&#9670;&nbsp;</a></span>guac_protocol_send_set()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_set </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a set instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to set the parameter of. </td></tr>
+    <tr><td class="paramname">name</td><td>The name of the parameter to set. </td></tr>
+    <tr><td class="paramname">value</td><td>The value to set the parameter to. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a0e72a4122a3a7c45fa21e0d5607cc4d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e72a4122a3a7c45fa21e0d5607cc4d5">&#9670;&nbsp;</a></span>guac_protocol_send_shade()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_shade </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>a</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a shade instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to shade. </td></tr>
+    <tr><td class="paramname">a</td><td>The alpha value of the layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="affc4cf09c3337bd860439da99bdfef98"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#affc4cf09c3337bd860439da99bdfef98">&#9670;&nbsp;</a></span>guac_protocol_send_size()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_size </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a size instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to resize. </td></tr>
+    <tr><td class="paramname">w</td><td>The new width of the layer. </td></tr>
+    <tr><td class="paramname">h</td><td>The new height of the layer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a60d33439eb4b5a11535a9a77e57c4126"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a60d33439eb4b5a11535a9a77e57c4126">&#9670;&nbsp;</a></span>guac_protocol_send_start()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_start </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a start instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the first point of the subpath. </td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the first point of the subpath. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aa11f8798abca85fd2b47b5f9a027fa73"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa11f8798abca85fd2b47b5f9a027fa73">&#9670;&nbsp;</a></span>guac_protocol_send_sync()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_sync </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td>
+          <td class="paramname"><em>timestamp</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a sync instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>The current time in milliseconds should be passed in as the timestamp.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">timestamp</td><td>The current timestamp (in milliseconds). </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aecdce272ed4c317c5b7291e42239a1f9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aecdce272ed4c317c5b7291e42239a1f9">&#9670;&nbsp;</a></span>guac_protocol_send_transfer()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_transfer </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>srcl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>srcy</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>w</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>h</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a>&#160;</td>
+          <td class="paramname"><em>fn</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>dstl</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dstx</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>dsty</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a transfer instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">srcl</td><td>The source layer. </td></tr>
+    <tr><td class="paramname">srcx</td><td>The X coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">srcy</td><td>The Y coordinate of the source rectangle. </td></tr>
+    <tr><td class="paramname">w</td><td>The width of the source rectangle. </td></tr>
+    <tr><td class="paramname">h</td><td>The height of the source rectangle. </td></tr>
+    <tr><td class="paramname">fn</td><td>The transfer function to use. </td></tr>
+    <tr><td class="paramname">dstl</td><td>The destination layer. </td></tr>
+    <tr><td class="paramname">dstx</td><td>The X coordinate of the destination, where the source rectangle should be copied. </td></tr>
+    <tr><td class="paramname">dsty</td><td>The Y coordinate of the destination, where the source rectangle should be copied. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a17058795c93be51c82a9df95eca8e62b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a17058795c93be51c82a9df95eca8e62b">&#9670;&nbsp;</a></span>guac_protocol_send_transform()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_transform </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>a</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>b</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>c</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>d</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>e</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">double&#160;</td>
+          <td class="paramname"><em>f</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a transform instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use. </td></tr>
+    <tr><td class="paramname">layer</td><td>The layer to apply the given transform matrix to. </td></tr>
+    <tr><td class="paramname">a</td><td>The first value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">b</td><td>The second value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">c</td><td>The third value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">d</td><td>The fourth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">e</td><td>The fifth value of the affine transform matrix. </td></tr>
+    <tr><td class="paramname">f</td><td>The sixth value of the affine transform matrix. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="aefa251505e61332e8e1c27ade0478e64"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aefa251505e61332e8e1c27ade0478e64">&#9670;&nbsp;</a></span>guac_protocol_send_undefine()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_undefine </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends an undefine instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">object</td><td>The object being undefined.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a657216f2e63d2d42e8624f96def84bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a657216f2e63d2d42e8624f96def84bf8">&#9670;&nbsp;</a></span>guac_protocol_send_video()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_protocol_send_video </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a video instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use when sending the video instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to use for future video data.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer on which the streamed video should be played.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the video data which will be sent over the given stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, non-zero on error. </dd></dl>
+
+</div>
+</div>
+<a id="a3a783d771e1727ba2a82b2298acf4ee4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3a783d771e1727ba2a82b2298acf4ee4">&#9670;&nbsp;</a></span>vguac_protocol_send_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int vguac_protocol_send_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>args</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sends a log instruction over the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection. </p>
+<p>This is mainly useful in debugging.</p>
+<p>If an error occurs sending the instruction, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> connection to use.</td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log.</td></tr>
+    <tr><td class="paramname">args</td><td>The va_list containing the arguments to be used when filling the format string for printing.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the instruction was sent successfully, non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/protocol_8h_source.html b/doc/1.1.0/libguac/protocol_8h_source.html
new file mode 100644
index 0000000..9d00194
--- /dev/null
+++ b/doc/1.1.0/libguac/protocol_8h_source.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/protocol.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">protocol.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="protocol_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_PROTOCOL_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_PROTOCOL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-constants_8h.html">protocol-constants.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="comment">/* CONTROL INSTRUCTIONS */</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>** args);</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>** args);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* error,</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed,</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* format,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;        va_list args);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordtype">int</span> button_mask, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> index,</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* data);</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">id</span>);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* protocol);</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;<span class="comment">/* OBJECT INSTRUCTIONS */</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment">/* MEDIA INSTRUCTIONS */</span></div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> count);</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> count);</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="comment">/* DRAWING INSTRUCTIONS */</span></div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> radius, <span class="keywordtype">double</span> startAngle, <span class="keywordtype">double</span> endAngle,</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;        <span class="keywordtype">int</span> negative);</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* dstl, <span class="keywordtype">int</span> dstx, <span class="keywordtype">int</span> dsty);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, <span class="keywordtype">int</span> thickness,</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;        <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h);</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;        <span class="keywordtype">int</span> cp1x, <span class="keywordtype">int</span> cp1y, <span class="keywordtype">int</span> cp2x, <span class="keywordtype">int</span> cp2y, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl);</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;        <a class="code" href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a> cap, <a class="code" href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a> join, <span class="keywordtype">int</span> thickness,</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl);</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00795"></a><span class="lineno">  795</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;        <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y);</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* srcl, <span class="keywordtype">int</span> srcx, <span class="keywordtype">int</span> srcy, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h,</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;        <a class="code" href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a> fn, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* dstl, <span class="keywordtype">int</span> dstx, <span class="keywordtype">int</span> dsty);</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;</div><div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;        <span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b, <span class="keywordtype">double</span> c,</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;        <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> e, <span class="keywordtype">double</span> f);</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;<span class="comment">/* LAYER INSTRUCTIONS */</span></div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer);</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, </div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;        <span class="keywordtype">double</span> a, <span class="keywordtype">double</span> b, <span class="keywordtype">double</span> c,</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;        <span class="keywordtype">double</span> d, <span class="keywordtype">double</span> e, <span class="keywordtype">double</span> f);</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;        <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* parent, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> z);</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;        <span class="keywordtype">int</span> a);</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer,</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;        <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h);</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;<span class="comment">/* TEXT INSTRUCTIONS */</span></div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="keywordtype">int</span> <a class="code" href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a>(<span class="keywordtype">char</span>* base64);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div><div class="ttc" id="protocol_8h_html_aa3750a6c0fbf190fb71a6ab0955cb31a"><div class="ttname"><a href="protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a">guac_protocol_send_set</a></div><div class="ttdeci">int guac_protocol_send_set(guac_socket *socket, const guac_layer *layer, const char *name, const char *value)</div><div class="ttdoc">Sends a set instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a6047d380b097ebc7d5f35b167e3419e6"><div class="ttname"><a href="protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6">guac_protocol_send_args</a></div><div class="ttdeci">int guac_protocol_send_args(guac_socket *socket, const char **args)</div><div class="ttdoc">Sends an args instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ae1bb569878a14efecccc0c05757d1cae"><div class="ttname"><a href="protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae">guac_protocol_send_end</a></div><div class="ttdeci">int guac_protocol_send_end(guac_socket *socket, const guac_stream *stream)</div><div class="ttdoc">Sends an end instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ad4b3d3b5741b377a197c02384e4b870e"><div class="ttname"><a href="protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e">guac_protocol_send_blobs</a></div><div class="ttdeci">int guac_protocol_send_blobs(guac_socket *socket, const guac_stream *stream, const void *data, int count)</div><div class="ttdoc">Sends a series of blob instructions, splitting the given data across the number of instructions requi...</div></div>
+<div class="ttc" id="protocol_8h_html_a6b4cdd9133dbdca8cfc1e78a0d6bdf13"><div class="ttname"><a href="protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13">guac_protocol_send_distort</a></div><div class="ttdeci">int guac_protocol_send_distort(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)</div><div class="ttdoc">Sends a distort instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a8757c7870e648b220dbc76b8292fe5cf"><div class="ttname"><a href="protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf">guac_protocol_send_select</a></div><div class="ttdeci">int guac_protocol_send_select(guac_socket *socket, const char *protocol)</div><div class="ttdoc">Sends a select instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a3779c2287625af70fb001afbcc739da5"><div class="ttname"><a href="protocol_8h.html#a3779c2287625af70fb001afbcc739da5">guac_protocol_send_filesystem</a></div><div class="ttdeci">int guac_protocol_send_filesystem(guac_socket *socket, const guac_object *object, const char *name)</div><div class="ttdoc">Sends a filesystem instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a5b7d621d534126e26178789800a1a5d5"><div class="ttname"><a href="protocol_8h.html#a5b7d621d534126e26178789800a1a5d5">guac_protocol_send_lstroke</a></div><div class="ttdeci">int guac_protocol_send_lstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, const guac_layer *srcl)</div><div class="ttdoc">Sends an lstroke instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a7e8a055e57afbcd9c9b520767d9a1c64"><div class="ttname"><a href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a></div><div class="ttdeci">int guac_protocol_send_clipboard(guac_socket *socket, const guac_stream *stream, const char *mimetype)</div><div class="ttdoc">Sends a clipboard instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a102b7719fbd9c8ea0eb2dc4f51e26359"><div class="ttname"><a href="protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359">guac_protocol_send_ready</a></div><div class="ttdeci">int guac_protocol_send_ready(guac_socket *socket, const char *id)</div><div class="ttdoc">Sends a ready instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="protocol_8h_html_ac6f28f1beb2fa07e1b3f6fa774789fd9"><div class="ttname"><a href="protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9">guac_protocol_send_cstroke</a></div><div class="ttdeci">int guac_protocol_send_cstroke(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, guac_line_cap_style cap, guac_line_join_style join, int thickness, int r, int g, int b, int a)</div><div class="ttdoc">Sends a cstroke instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a657216f2e63d2d42e8624f96def84bf8"><div class="ttname"><a href="protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8">guac_protocol_send_video</a></div><div class="ttdeci">int guac_protocol_send_video(guac_socket *socket, const guac_stream *stream, const guac_layer *layer, const char *mimetype)</div><div class="ttdoc">Sends a video instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a5f6433cc21bc043c57fb7c468428373a"><div class="ttname"><a href="protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a">guac_protocol_send_reset</a></div><div class="ttdeci">int guac_protocol_send_reset(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a reset instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a0ad7d9b8b205d6fc368eff2d9e8e40ec"><div class="ttname"><a href="protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec">guac_protocol_decode_base64</a></div><div class="ttdeci">int guac_protocol_decode_base64(char *base64)</div><div class="ttdoc">Decodes the given base64-encoded string in-place. </div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="protocol_8h_html_afda8074f65d35795203f392f6688163e"><div class="ttname"><a href="protocol_8h.html#afda8074f65d35795203f392f6688163e">guac_protocol_send_img</a></div><div class="ttdeci">int guac_protocol_send_img(guac_socket *socket, const guac_stream *stream, guac_composite_mode mode, const guac_layer *layer, const char *mimetype, int x, int y)</div><div class="ttdoc">Sends an img instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="protocol_8h_html_a8fa17d3aa1270b806ac6a386798c6d41"><div class="ttname"><a href="protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41">guac_protocol_send_nop</a></div><div class="ttdeci">int guac_protocol_send_nop(guac_socket *socket)</div><div class="ttdoc">Sends a nop instruction (null-operation) over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a481fbaab3b8e72505df752ac2f6cc59e"><div class="ttname"><a href="protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e">guac_protocol_send_name</a></div><div class="ttdeci">int guac_protocol_send_name(guac_socket *socket, const char *name)</div><div class="ttdoc">Sends a name instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aecdce272ed4c317c5b7291e42239a1f9"><div class="ttname"><a href="protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9">guac_protocol_send_transfer</a></div><div class="ttdeci">int guac_protocol_send_transfer(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_transfer_function fn, const guac_layer *dstl, int dstx, int dsty)</div><div class="ttdoc">Sends a transfer instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ab92edb38a4df2db402a013422cee6b42"><div class="ttname"><a href="protocol_8h.html#ab92edb38a4df2db402a013422cee6b42">guac_protocol_send_audio</a></div><div class="ttdeci">int guac_protocol_send_audio(guac_socket *socket, const guac_stream *stream, const char *mimetype)</div><div class="ttdoc">Sends an audio instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a6333200b3ff1634e0cb1826b271438b1"><div class="ttname"><a href="protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1">guac_line_join_style</a></div><div class="ttdeci">guac_line_join_style</div><div class="ttdoc">Supported line join styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:273</div></div>
+<div class="ttc" id="protocol_8h_html_afd463766036afda4798edbe788d29524"><div class="ttname"><a href="protocol_8h.html#afd463766036afda4798edbe788d29524">guac_protocol_send_disconnect</a></div><div class="ttdeci">int guac_protocol_send_disconnect(guac_socket *socket)</div><div class="ttdoc">Sends a disconnect instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-constants_8h_html"><div class="ttname"><a href="protocol-constants_8h.html">protocol-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole protocol. </div></div>
+<div class="ttc" id="protocol_8h_html_ad74bc43b5f03b79027bf02d873cd77b3"><div class="ttname"><a href="protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3">guac_protocol_send_arc</a></div><div class="ttdeci">int guac_protocol_send_arc(guac_socket *socket, const guac_layer *layer, int x, int y, int radius, double startAngle, double endAngle, int negative)</div><div class="ttdoc">Sends an arc instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a3a783d771e1727ba2a82b2298acf4ee4"><div class="ttname"><a href="protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4">vguac_protocol_send_log</a></div><div class="ttdeci">int vguac_protocol_send_log(guac_socket *socket, const char *format, va_list args)</div><div class="ttdoc">Sends a log instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ac7409451b0f2b18dc870d347545c9afd"><div class="ttname"><a href="protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd">guac_protocol_send_move</a></div><div class="ttdeci">int guac_protocol_send_move(guac_socket *socket, const guac_layer *layer, const guac_layer *parent, int x, int y, int z)</div><div class="ttdoc">Sends a move instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="protocol_8h_html_a798d57ec3f3cdfa0d9bb4906f02d5127"><div class="ttname"><a href="protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127">guac_protocol_send_blob</a></div><div class="ttdeci">int guac_protocol_send_blob(guac_socket *socket, const guac_stream *stream, const void *data, int count)</div><div class="ttdoc">Writes a block of data to the currently in-progress blob which was already created. </div></div>
+<div class="ttc" id="protocol_8h_html_a42dc3db797b83accd3418b76648adac5"><div class="ttname"><a href="protocol_8h.html#a42dc3db797b83accd3418b76648adac5">guac_protocol_send_rect</a></div><div class="ttdeci">int guac_protocol_send_rect(guac_socket *socket, const guac_layer *layer, int x, int y, int width, int height)</div><div class="ttdoc">Sends a rect instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a17da53514189083fa84aa3cc0bf6883a"><div class="ttname"><a href="protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a">guac_protocol_send_cursor</a></div><div class="ttdeci">int guac_protocol_send_cursor(guac_socket *socket, int x, int y, const guac_layer *srcl, int srcx, int srcy, int w, int h)</div><div class="ttdoc">Sends a cursor instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a6f832f5b814129d2819f115d84da3cd0"><div class="ttname"><a href="protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0">guac_protocol_send_log</a></div><div class="ttdeci">int guac_protocol_send_log(guac_socket *socket, const char *format,...)</div><div class="ttdoc">Sends a log instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aac205e52801a875bfbef02ae237b6b15"><div class="ttname"><a href="protocol_8h.html#aac205e52801a875bfbef02ae237b6b15">guac_protocol_send_identity</a></div><div class="ttdeci">int guac_protocol_send_identity(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends an identity instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a1b9985b080a339dcd14b95f5e46e8ab5"><div class="ttname"><a href="protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5">guac_protocol_send_curve</a></div><div class="ttdeci">int guac_protocol_send_curve(guac_socket *socket, const guac_layer *layer, int cp1x, int cp1y, int cp2x, int cp2y, int x, int y)</div><div class="ttdoc">Sends a curve instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a45a3e4e32900594e17c49db6939fc10a"><div class="ttname"><a href="protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a">guac_protocol_send_close</a></div><div class="ttdeci">int guac_protocol_send_close(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a close instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a9c85e3f22f5dea8b2f38de6b4f75b1ff"><div class="ttname"><a href="protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff">guac_transfer_function</a></div><div class="ttdeci">guac_transfer_function</div><div class="ttdoc">Default transfer functions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:219</div></div>
+<div class="ttc" id="protocol_8h_html_a7b2456a017f772a39be6d33a5da9149d"><div class="ttname"><a href="protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d">guac_protocol_send_dispose</a></div><div class="ttdeci">int guac_protocol_send_dispose(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a dispose instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a60d33439eb4b5a11535a9a77e57c4126"><div class="ttname"><a href="protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126">guac_protocol_send_start</a></div><div class="ttdeci">int guac_protocol_send_start(guac_socket *socket, const guac_layer *layer, int x, int y)</div><div class="ttdoc">Sends a start instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aa11f8798abca85fd2b47b5f9a027fa73"><div class="ttname"><a href="protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73">guac_protocol_send_sync</a></div><div class="ttdeci">int guac_protocol_send_sync(guac_socket *socket, guac_timestamp timestamp)</div><div class="ttdoc">Sends a sync instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a9271e3b6cc0030b833d18137969a4018"><div class="ttname"><a href="protocol_8h.html#a9271e3b6cc0030b833d18137969a4018">guac_protocol_send_lfill</a></div><div class="ttdeci">int guac_protocol_send_lfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, const guac_layer *srcl)</div><div class="ttdoc">Sends an lfill instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a4a0205f8ee2e29e1a4d78da74ab58efc"><div class="ttname"><a href="protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc">guac_line_cap_style</a></div><div class="ttdeci">guac_line_cap_style</div><div class="ttdoc">Supported line cap styles. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:264</div></div>
+<div class="ttc" id="protocol_8h_html_a94efa63c9895383e142a3f7ce559300b"><div class="ttname"><a href="protocol_8h.html#a94efa63c9895383e142a3f7ce559300b">guac_protocol_send_nest</a></div><div class="ttdeci">int guac_protocol_send_nest(guac_socket *socket, int index, const char *data)</div><div class="ttdoc">Sends a nest instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aca9fb516e730233c33da297819f7ae7e"><div class="ttname"><a href="protocol_8h.html#aca9fb516e730233c33da297819f7ae7e">guac_protocol_send_body</a></div><div class="ttdeci">int guac_protocol_send_body(guac_socket *socket, const guac_object *object, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a body instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_afac3f57649c20b5e39c484a52d264005"><div class="ttname"><a href="protocol_8h.html#afac3f57649c20b5e39c484a52d264005">guac_protocol_send_line</a></div><div class="ttdeci">int guac_protocol_send_line(guac_socket *socket, const guac_layer *layer, int x, int y)</div><div class="ttdoc">Sends a line instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol. </div></div>
+<div class="ttc" id="protocol_8h_html_ad035df3781dc19ba2330b02ef1dd6eda"><div class="ttname"><a href="protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda">guac_protocol_send_copy</a></div><div class="ttdeci">int guac_protocol_send_copy(guac_socket *socket, const guac_layer *srcl, int srcx, int srcy, int w, int h, guac_composite_mode mode, const guac_layer *dstl, int dstx, int dsty)</div><div class="ttdoc">Sends a copy instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a9db04720cbb2bc972f48f2e9332f23a8"><div class="ttname"><a href="protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8">guac_protocol_send_push</a></div><div class="ttdeci">int guac_protocol_send_push(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a push instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a8947056262da2f3263b9851370597622"><div class="ttname"><a href="protocol_8h.html#a8947056262da2f3263b9851370597622">guac_protocol_send_mouse</a></div><div class="ttdeci">int guac_protocol_send_mouse(guac_socket *socket, int x, int y, int button_mask, guac_timestamp timestamp)</div><div class="ttdoc">Sends a mouse instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="protocol_8h_html_a0e72a4122a3a7c45fa21e0d5607cc4d5"><div class="ttname"><a href="protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5">guac_protocol_send_shade</a></div><div class="ttdeci">int guac_protocol_send_shade(guac_socket *socket, const guac_layer *layer, int a)</div><div class="ttdoc">Sends a shade instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aaddd6d7c6ab1289efb3dd38c39bde531"><div class="ttname"><a href="protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531">guac_protocol_send_argv</a></div><div class="ttdeci">int guac_protocol_send_argv(guac_socket *socket, guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends an argv instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_acbd1869635b752bbf52998613804df00"><div class="ttname"><a href="protocol_8h.html#acbd1869635b752bbf52998613804df00">guac_protocol_send_clip</a></div><div class="ttdeci">int guac_protocol_send_clip(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a clip instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a453e1b22d63a9d07ba23b3a6726c2f06"><div class="ttname"><a href="protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06">guac_protocol_send_file</a></div><div class="ttdeci">int guac_protocol_send_file(guac_socket *socket, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a file instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_aefa251505e61332e8e1c27ade0478e64"><div class="ttname"><a href="protocol_8h.html#aefa251505e61332e8e1c27ade0478e64">guac_protocol_send_undefine</a></div><div class="ttdeci">int guac_protocol_send_undefine(guac_socket *socket, const guac_object *object)</div><div class="ttdoc">Sends an undefine instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ab29ab6edd91e954fd686742c92eab6d4"><div class="ttname"><a href="protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4">guac_protocol_send_pop</a></div><div class="ttdeci">int guac_protocol_send_pop(guac_socket *socket, const guac_layer *layer)</div><div class="ttdoc">Sends a pop instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_a17058795c93be51c82a9df95eca8e62b"><div class="ttname"><a href="protocol_8h.html#a17058795c93be51c82a9df95eca8e62b">guac_protocol_send_transform</a></div><div class="ttdeci">int guac_protocol_send_transform(guac_socket *socket, const guac_layer *layer, double a, double b, double c, double d, double e, double f)</div><div class="ttdoc">Sends a transform instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_affc4cf09c3337bd860439da99bdfef98"><div class="ttname"><a href="protocol_8h.html#affc4cf09c3337bd860439da99bdfef98">guac_protocol_send_size</a></div><div class="ttdeci">int guac_protocol_send_size(guac_socket *socket, const guac_layer *layer, int w, int h)</div><div class="ttdoc">Sends a size instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="protocol_8h_html_a18b2c462077b7c51d211f3db09c30292"><div class="ttname"><a href="protocol_8h.html#a18b2c462077b7c51d211f3db09c30292">guac_protocol_send_pipe</a></div><div class="ttdeci">int guac_protocol_send_pipe(guac_socket *socket, const guac_stream *stream, const char *mimetype, const char *name)</div><div class="ttdoc">Sends a pipe instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="protocol_8h_html_a2d276595cea8a2d382240d868487f077"><div class="ttname"><a href="protocol_8h.html#a2d276595cea8a2d382240d868487f077">guac_protocol_send_key</a></div><div class="ttdeci">int guac_protocol_send_key(guac_socket *socket, int keysym, int pressed, guac_timestamp timestamp)</div><div class="ttdoc">Sends a key instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ac8dea4393e2ec69d5d27fd0759a70fcb"><div class="ttname"><a href="protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb">guac_protocol_send_connect</a></div><div class="ttdeci">int guac_protocol_send_connect(guac_socket *socket, const char **args)</div><div class="ttdoc">Sends a connect instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_abe696ca7c9841883c5d5bea513d4ee9a"><div class="ttname"><a href="protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a">guac_protocol_send_error</a></div><div class="ttdeci">int guac_protocol_send_error(guac_socket *socket, const char *error, guac_protocol_status status)</div><div class="ttdoc">Sends an error instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_ab02be6102d9f4aaa2bbb0b249f09d63e"><div class="ttname"><a href="protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e">guac_protocol_send_ack</a></div><div class="ttdeci">int guac_protocol_send_ack(guac_socket *socket, guac_stream *stream, const char *error, guac_protocol_status status)</div><div class="ttdoc">Sends an ack instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="protocol_8h_html_afda3a1a8285e323fca6aef50cb2feb5e"><div class="ttname"><a href="protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e">guac_protocol_send_cfill</a></div><div class="ttdeci">int guac_protocol_send_cfill(guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int r, int g, int b, int a)</div><div class="ttdoc">Sends a cfill instruction over the given guac_socket connection. </div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_0.html b/doc/1.1.0/libguac/search/all_0.html
new file mode 100644
index 0000000..e2778be
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_0.js b/doc/1.1.0/libguac/search/all_0.js
new file mode 100644
index 0000000..4b3049b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_0.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+  ['ack_5fhandler',['ack_handler',['../structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff',1,'guac_stream::ack_handler()'],['../structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be',1,'guac_user::ack_handler()']]],
+  ['active',['active',['../structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3',1,'guac_pool::active()'],['../structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd',1,'guac_user::active()']]],
+  ['argc',['argc',['../structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe',1,'guac_parser']]],
+  ['args',['args',['../structguac__client.html#a0e07a8086579ede2c692460998a87cac',1,'guac_client']]],
+  ['argv',['argv',['../structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701',1,'guac_parser']]],
+  ['argv_5fhandler',['argv_handler',['../structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a',1,'guac_user']]],
+  ['audio_2dfntypes_2eh',['audio-fntypes.h',['../audio-fntypes_8h.html',1,'']]],
+  ['audio_2dtypes_2eh',['audio-types.h',['../audio-types_8h.html',1,'']]],
+  ['audio_2eh',['audio.h',['../audio_8h.html',1,'']]],
+  ['audio_5fhandler',['audio_handler',['../structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69',1,'guac_user']]],
+  ['audio_5fmimetypes',['audio_mimetypes',['../structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_1.html b/doc/1.1.0/libguac/search/all_1.html
new file mode 100644
index 0000000..69f4b9c
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_1.js b/doc/1.1.0/libguac/search/all_1.js
new file mode 100644
index 0000000..86c920a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['begin_5fhandler',['begin_handler',['../structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6',1,'guac_audio_encoder']]],
+  ['blob_5fhandler',['blob_handler',['../structguac__stream.html#a51122ba04f416d8ce047542c603632f8',1,'guac_stream::blob_handler()'],['../structguac__user.html#a88a14fda25c9929269d198d4d602f7fb',1,'guac_user::blob_handler()']]],
+  ['bps',['bps',['../structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866',1,'guac_audio_stream']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_10.html b/doc/1.1.0/libguac/search/all_10.html
new file mode 100644
index 0000000..eb3e604
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_10.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_10.js b/doc/1.1.0/libguac/search/all_10.js
new file mode 100644
index 0000000..eb7b310
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_10.js
@@ -0,0 +1,19 @@
+var searchData=
+[
+  ['select_5fhandler',['select_handler',['../structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f',1,'guac_socket']]],
+  ['size_5fhandler',['size_handler',['../structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a',1,'guac_user']]],
+  ['socket',['socket',['../structguac__client.html#aa634856fd3c522377ba7345f3308000e',1,'guac_client::socket()'],['../structguac__user.html#a8496638b8c4c52f5f15d483b92becf27',1,'guac_user::socket()']]],
+  ['socket_2dconstants_2eh',['socket-constants.h',['../socket-constants_8h.html',1,'']]],
+  ['socket_2dfntypes_2eh',['socket-fntypes.h',['../socket-fntypes_8h.html',1,'']]],
+  ['socket_2dssl_2eh',['socket-ssl.h',['../socket-ssl_8h.html',1,'']]],
+  ['socket_2dtypes_2eh',['socket-types.h',['../socket-types_8h.html',1,'']]],
+  ['socket_2dwsa_2eh',['socket-wsa.h',['../socket-wsa_8h.html',1,'']]],
+  ['socket_2eh',['socket.h',['../socket_8h.html',1,'']]],
+  ['ssl',['ssl',['../structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac',1,'guac_socket_ssl_data']]],
+  ['state',['state',['../structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53',1,'guac_client::state()'],['../structguac__parser.html#a2773500f91b3cdb7de7bdea280228054',1,'guac_parser::state()'],['../structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b',1,'guac_socket::state()']]],
+  ['stream',['stream',['../structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894',1,'guac_audio_stream']]],
+  ['stream_2dtypes_2eh',['stream-types.h',['../stream-types_8h.html',1,'']]],
+  ['stream_2eh',['stream.h',['../stream_8h.html',1,'']]],
+  ['string_2eh',['string.h',['../string_8h.html',1,'']]],
+  ['sync_5fhandler',['sync_handler',['../structguac__user.html#a209e83f080baf2e84d04cf08395374d2',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_11.html b/doc/1.1.0/libguac/search/all_11.html
new file mode 100644
index 0000000..f5f527e
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_11.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_11.js b/doc/1.1.0/libguac/search/all_11.js
new file mode 100644
index 0000000..6862d7d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_11.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['timestamp_2dtypes_2eh',['timestamp-types.h',['../timestamp-types_8h.html',1,'']]],
+  ['timestamp_2eh',['timestamp.h',['../timestamp_8h.html',1,'']]],
+  ['timezone',['timezone',['../structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_12.html b/doc/1.1.0/libguac/search/all_12.html
new file mode 100644
index 0000000..7ce2d51
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_12.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_12.js b/doc/1.1.0/libguac/search/all_12.js
new file mode 100644
index 0000000..9ff96b3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_12.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['unicode_2eh',['unicode.h',['../unicode_8h.html',1,'']]],
+  ['unlock_5fhandler',['unlock_handler',['../structguac__socket.html#a67be8367b5e1b330ee151b22c692500b',1,'guac_socket']]],
+  ['user_2dconstants_2eh',['user-constants.h',['../user-constants_8h.html',1,'']]],
+  ['user_2dfntypes_2eh',['user-fntypes.h',['../user-fntypes_8h.html',1,'']]],
+  ['user_2dtypes_2eh',['user-types.h',['../user-types_8h.html',1,'']]],
+  ['user_2eh',['user.h',['../user_8h.html',1,'']]],
+  ['user_5fid',['user_id',['../structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_13.html b/doc/1.1.0/libguac/search/all_13.html
new file mode 100644
index 0000000..7cbb3b9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_13.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_13.js b/doc/1.1.0/libguac/search/all_13.js
new file mode 100644
index 0000000..097c5bd
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_13.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['value',['value',['../structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4',1,'guac_pool_int']]],
+  ['vguac_5fclient_5fabort',['vguac_client_abort',['../client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224',1,'client.h']]],
+  ['vguac_5fclient_5flog',['vguac_client_log',['../client_8h.html#a37a0fa9cfc4c02236085e3852972f494',1,'client.h']]],
+  ['vguac_5fprotocol_5fsend_5flog',['vguac_protocol_send_log',['../protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4',1,'protocol.h']]],
+  ['vguac_5fuser_5fabort',['vguac_user_abort',['../user_8h.html#ad8529247b551cb93509236a7f9138dd2',1,'user.h']]],
+  ['vguac_5fuser_5flog',['vguac_user_log',['../user_8h.html#af15509bcb891932a3fa93a142018b95c',1,'user.h']]],
+  ['video_5fmimetypes',['video_mimetypes',['../structguac__user__info.html#ace535bea6879596b6473657f3fc83b57',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_14.html b/doc/1.1.0/libguac/search/all_14.html
new file mode 100644
index 0000000..5138adf
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_14.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_14.js b/doc/1.1.0/libguac/search/all_14.js
new file mode 100644
index 0000000..50a5677
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_14.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['write_5fhandler',['write_handler',['../structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74',1,'guac_audio_encoder::write_handler()'],['../structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d',1,'guac_socket::write_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_2.html b/doc/1.1.0/libguac/search/all_2.html
new file mode 100644
index 0000000..72f73c6
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_2.js b/doc/1.1.0/libguac/search/all_2.js
new file mode 100644
index 0000000..5f7cbea
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_2.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['channels',['channels',['../structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6',1,'guac_audio_stream']]],
+  ['client',['client',['../structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba',1,'guac_audio_stream::client()'],['../structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf',1,'guac_user::client()']]],
+  ['client_2dconstants_2eh',['client-constants.h',['../client-constants_8h.html',1,'']]],
+  ['client_2dfntypes_2eh',['client-fntypes.h',['../client-fntypes_8h.html',1,'']]],
+  ['client_2dtypes_2eh',['client-types.h',['../client-types_8h.html',1,'']]],
+  ['client_2eh',['client.h',['../client_8h.html',1,'']]],
+  ['clipboard_5fhandler',['clipboard_handler',['../structguac__user.html#a77f042802092c8bbf4407836f3185343',1,'guac_user']]],
+  ['connected_5fusers',['connected_users',['../structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2',1,'guac_client']]],
+  ['connection_5fid',['connection_id',['../structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094',1,'guac_client']]],
+  ['context',['context',['../structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f',1,'guac_socket_ssl_data']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_3.html b/doc/1.1.0/libguac/search/all_3.html
new file mode 100644
index 0000000..6ec3673
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_3.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_3.js b/doc/1.1.0/libguac/search/all_3.js
new file mode 100644
index 0000000..7f4ab56
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['data',['data',['../structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7',1,'guac_audio_stream::data()'],['../structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3',1,'guac_client::data()'],['../structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e',1,'guac_object::data()'],['../structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d',1,'guac_socket::data()'],['../structguac__stream.html#acdf20063ca408431862d901c9445b429',1,'guac_stream::data()'],['../structguac__user.html#ad424a52c5d996e4a33de5dad61555883',1,'guac_user::data()']]],
+  ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_4.html b/doc/1.1.0/libguac/search/all_4.html
new file mode 100644
index 0000000..a8abae9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_4.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_4.js b/doc/1.1.0/libguac/search/all_4.js
new file mode 100644
index 0000000..a275903
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_4.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['encoder',['encoder',['../structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d',1,'guac_audio_stream']]],
+  ['end_5fhandler',['end_handler',['../structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92',1,'guac_audio_encoder::end_handler()'],['../structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db',1,'guac_stream::end_handler()'],['../structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed',1,'guac_user::end_handler()']]],
+  ['error_2dtypes_2eh',['error-types.h',['../error-types_8h.html',1,'']]],
+  ['error_2eh',['error.h',['../error_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_5.html b/doc/1.1.0/libguac/search/all_5.html
new file mode 100644
index 0000000..49f65dd
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_5.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_5.js b/doc/1.1.0/libguac/search/all_5.js
new file mode 100644
index 0000000..dc114ca
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_5.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['fd',['fd',['../structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a',1,'guac_socket_ssl_data']]],
+  ['file_5fhandler',['file_handler',['../structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474',1,'guac_user']]],
+  ['flush_5fhandler',['flush_handler',['../structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0',1,'guac_audio_encoder::flush_handler()'],['../structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b',1,'guac_socket::flush_handler()']]],
+  ['free_5fhandler',['free_handler',['../structguac__client.html#a79e29c931fd448cf51f7153fea064169',1,'guac_client::free_handler()'],['../structguac__socket.html#a1044cde496cfe11c914c623dc1e29678',1,'guac_socket::free_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_6.html b/doc/1.1.0/libguac/search/all_6.html
new file mode 100644
index 0000000..e50c64e
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_6.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_6.js b/doc/1.1.0/libguac/search/all_6.js
new file mode 100644
index 0000000..1b1e589
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_6.js
@@ -0,0 +1,291 @@
+var searchData=
+[
+  ['get_5fhandler',['get_handler',['../structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21',1,'guac_object::get_handler()'],['../structguac__user.html#ada73c04bbf06de4280f2d7679190a19b',1,'guac_user::get_handler()']]],
+  ['guac_5faudio_5fencoder',['guac_audio_encoder',['../structguac__audio__encoder.html',1,'']]],
+  ['guac_5faudio_5fencoder_5fbegin_5fhandler',['guac_audio_encoder_begin_handler',['../audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fend_5fhandler',['guac_audio_encoder_end_handler',['../audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fflush_5fhandler',['guac_audio_encoder_flush_handler',['../audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fjoin_5fhandler',['guac_audio_encoder_join_handler',['../audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fwrite_5fhandler',['guac_audio_encoder_write_handler',['../audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fstream',['guac_audio_stream',['../structguac__audio__stream.html',1,'']]],
+  ['guac_5faudio_5fstream_5fadd_5fuser',['guac_audio_stream_add_user',['../audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5falloc',['guac_audio_stream_alloc',['../audio_8h.html#afc1fc0133504e718edf4756fac5e9c30',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fflush',['guac_audio_stream_flush',['../audio_8h.html#af75feccacea2b14ee946064cf623f143',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5ffree',['guac_audio_stream_free',['../audio_8h.html#adcc872292b5ba6c39905610b2bccbf31',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5freset',['guac_audio_stream_reset',['../audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fwrite_5fpcm',['guac_audio_stream_write_pcm',['../audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2',1,'audio.h']]],
+  ['guac_5fbuffer_5fpool_5finitial_5fsize',['GUAC_BUFFER_POOL_INITIAL_SIZE',['../client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb',1,'client-constants.h']]],
+  ['guac_5fclient',['guac_client',['../structguac__client.html',1,'']]],
+  ['guac_5fclient_5fabort',['guac_client_abort',['../client_8h.html#a62a29f7820deaff00a10ec79aa81aed4',1,'client.h']]],
+  ['guac_5fclient_5fadd_5fuser',['guac_client_add_user',['../client_8h.html#af66d105dfd1453ec46b423e6b25fa371',1,'client.h']]],
+  ['guac_5fclient_5falloc',['guac_client_alloc',['../client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fbuffer',['guac_client_alloc_buffer',['../client_8h.html#af661d3fedd9683631bdc7d1e3205e379',1,'client.h']]],
+  ['guac_5fclient_5falloc_5flayer',['guac_client_alloc_layer',['../client_8h.html#a2085758db585bb9d09d3860ec0fc9587',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fstream',['guac_client_alloc_stream',['../client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9',1,'client.h']]],
+  ['guac_5fclient_5fclosed_5fstream_5findex',['GUAC_CLIENT_CLOSED_STREAM_INDEX',['../client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142',1,'client-constants.h']]],
+  ['guac_5fclient_5fend_5fframe',['guac_client_end_frame',['../client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fowner',['guac_client_for_owner',['../client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fuser',['guac_client_for_user',['../client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03',1,'client.h']]],
+  ['guac_5fclient_5fforeach_5fuser',['guac_client_foreach_user',['../client_8h.html#af652f3db0f89d488cef6d90f612a2077',1,'client.h']]],
+  ['guac_5fclient_5ffree',['guac_client_free',['../client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fbuffer',['guac_client_free_buffer',['../client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fhandler',['guac_client_free_handler',['../client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577',1,'client-fntypes.h']]],
+  ['guac_5fclient_5ffree_5flayer',['guac_client_free_layer',['../client_8h.html#a4e5b374211012d1897792335112dcb89',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fstream',['guac_client_free_stream',['../client_8h.html#af0103a5aae8ba76badd2e68e827f6782',1,'client.h']]],
+  ['guac_5fclient_5fget_5fprocessing_5flag',['guac_client_get_processing_lag',['../client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c',1,'client.h']]],
+  ['guac_5fclient_5fid_5fprefix',['GUAC_CLIENT_ID_PREFIX',['../client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2',1,'client-constants.h']]],
+  ['guac_5fclient_5finit_5fhandler',['guac_client_init_handler',['../client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5fload_5fplugin',['guac_client_load_plugin',['../client_8h.html#afa2b90d686c56cf753c36718ec085f35',1,'client.h']]],
+  ['guac_5fclient_5flog',['guac_client_log',['../client_8h.html#ad53666bbe29346497cabb04fc9628208',1,'client.h']]],
+  ['guac_5fclient_5flog_5fhandler',['guac_client_log_handler',['../client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5flog_5flevel',['guac_client_log_level',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727',1,'client-types.h']]],
+  ['guac_5fclient_5fmax_5fstreams',['GUAC_CLIENT_MAX_STREAMS',['../client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fleft',['GUAC_CLIENT_MOUSE_LEFT',['../client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fmiddle',['GUAC_CLIENT_MOUSE_MIDDLE',['../client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fright',['GUAC_CLIENT_MOUSE_RIGHT',['../client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fdown',['GUAC_CLIENT_MOUSE_SCROLL_DOWN',['../client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fup',['GUAC_CLIENT_MOUSE_SCROLL_UP',['../client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d',1,'client-constants.h']]],
+  ['guac_5fclient_5fremove_5fuser',['guac_client_remove_user',['../client_8h.html#a02832d5be5330dc3de524b497b7c6dfa',1,'client.h']]],
+  ['guac_5fclient_5frunning',['GUAC_CLIENT_RUNNING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0',1,'client-types.h']]],
+  ['guac_5fclient_5fstate',['guac_client_state',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b',1,'client-types.h']]],
+  ['guac_5fclient_5fstop',['guac_client_stop',['../client_8h.html#a022d4b5587c84f2963b176ab7999aa1b',1,'client.h']]],
+  ['guac_5fclient_5fstopping',['GUAC_CLIENT_STOPPING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd',1,'client-types.h']]],
+  ['guac_5fclient_5fstream_5fargv',['guac_client_stream_argv',['../client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fjpeg',['guac_client_stream_jpeg',['../client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fpng',['guac_client_stream_png',['../client_8h.html#a317b9d79afd0b0b473d7d359e0c33750',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fwebp',['guac_client_stream_webp',['../client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e',1,'client.h']]],
+  ['guac_5fclient_5fsupports_5fwebp',['guac_client_supports_webp',['../client_8h.html#a79cc74558e8f64807ea2847fbacd20e3',1,'client.h']]],
+  ['guac_5fcomposite_5fmode',['guac_composite_mode',['../protocol-types_8h.html#a93612063886db58071d02b5393abf186',1,'protocol-types.h']]],
+  ['guac_5fdefault_5flayer',['GUAC_DEFAULT_LAYER',['../client_8h.html#a336a485c006394d5eea88bf6d8d422d8',1,'client.h']]],
+  ['guac_5ferror',['guac_error',['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h'],['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h']]],
+  ['guac_5ferror_5fmessage',['guac_error_message',['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h'],['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h']]],
+  ['guac_5fhash_5fsurface',['guac_hash_surface',['../hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c',1,'hash.h']]],
+  ['guac_5finstruction_5fmax_5fdigits',['GUAC_INSTRUCTION_MAX_DIGITS',['../parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5felements',['GUAC_INSTRUCTION_MAX_ELEMENTS',['../parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5flength',['GUAC_INSTRUCTION_MAX_LENGTH',['../parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744',1,'parser-constants.h']]],
+  ['guac_5flayer',['guac_layer',['../structguac__layer.html',1,'']]],
+  ['guac_5fline_5fcap_5fstyle',['guac_line_cap_style',['../protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc',1,'protocol-types.h']]],
+  ['guac_5fline_5fjoin_5fstyle',['guac_line_join_style',['../protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1',1,'protocol-types.h']]],
+  ['guac_5flog_5fdebug',['GUAC_LOG_DEBUG',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b',1,'client-types.h']]],
+  ['guac_5flog_5ferror',['GUAC_LOG_ERROR',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c',1,'client-types.h']]],
+  ['guac_5flog_5finfo',['GUAC_LOG_INFO',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29',1,'client-types.h']]],
+  ['guac_5flog_5ftrace',['GUAC_LOG_TRACE',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb',1,'client-types.h']]],
+  ['guac_5flog_5fwarning',['GUAC_LOG_WARNING',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be',1,'client-types.h']]],
+  ['guac_5fobject',['guac_object',['../structguac__object.html',1,'']]],
+  ['guac_5fparse_5fcomplete',['GUAC_PARSE_COMPLETE',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf',1,'parser-types.h']]],
+  ['guac_5fparse_5fcontent',['GUAC_PARSE_CONTENT',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e',1,'parser-types.h']]],
+  ['guac_5fparse_5ferror',['GUAC_PARSE_ERROR',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc',1,'parser-types.h']]],
+  ['guac_5fparse_5flength',['GUAC_PARSE_LENGTH',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc',1,'parser-types.h']]],
+  ['guac_5fparse_5fstate',['guac_parse_state',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30',1,'parser-types.h']]],
+  ['guac_5fparser',['guac_parser',['../structguac__parser.html',1,'']]],
+  ['guac_5fparser_5falloc',['guac_parser_alloc',['../parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad',1,'parser.h']]],
+  ['guac_5fparser_5fappend',['guac_parser_append',['../parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d',1,'parser.h']]],
+  ['guac_5fparser_5fexpect',['guac_parser_expect',['../parser_8h.html#ac54c94465aead463ce10e9a090b9b701',1,'parser.h']]],
+  ['guac_5fparser_5ffree',['guac_parser_free',['../parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f',1,'parser.h']]],
+  ['guac_5fparser_5flength',['guac_parser_length',['../parser_8h.html#a8899dd607997fcffd78517947b17760b',1,'parser.h']]],
+  ['guac_5fparser_5fread',['guac_parser_read',['../parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93',1,'parser.h']]],
+  ['guac_5fparser_5fshift',['guac_parser_shift',['../parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3',1,'parser.h']]],
+  ['guac_5fpool',['guac_pool',['../structguac__pool.html',1,'']]],
+  ['guac_5fpool_5falloc',['guac_pool_alloc',['../pool_8h.html#a3e7589997fdd734a6d6155badebd042f',1,'pool.h']]],
+  ['guac_5fpool_5ffree',['guac_pool_free',['../pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb',1,'pool.h']]],
+  ['guac_5fpool_5ffree_5fint',['guac_pool_free_int',['../pool_8h.html#ad90069a41689cf319f46af44bb113579',1,'pool.h']]],
+  ['guac_5fpool_5fint',['guac_pool_int',['../structguac__pool__int.html',1,'']]],
+  ['guac_5fpool_5fnext_5fint',['guac_pool_next_int',['../pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4',1,'pool.h']]],
+  ['guac_5fprotocol_5fblob_5fmax_5flength',['GUAC_PROTOCOL_BLOB_MAX_LENGTH',['../protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166',1,'protocol-constants.h']]],
+  ['guac_5fprotocol_5fdecode_5fbase64',['guac_protocol_decode_base64',['../protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec',1,'protocol.h']]],
+  ['guac_5fprotocol_5flibrary_5flimit',['GUAC_PROTOCOL_LIBRARY_LIMIT',['../plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fprefix',['GUAC_PROTOCOL_LIBRARY_PREFIX',['../plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fsuffix',['GUAC_PROTOCOL_LIBRARY_SUFFIX',['../plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fname_5flimit',['GUAC_PROTOCOL_NAME_LIMIT',['../plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fsend_5fack',['guac_protocol_send_ack',['../protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5farc',['guac_protocol_send_arc',['../protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargs',['guac_protocol_send_args',['../protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargv',['guac_protocol_send_argv',['../protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5faudio',['guac_protocol_send_audio',['../protocol_8h.html#ab92edb38a4df2db402a013422cee6b42',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblob',['guac_protocol_send_blob',['../protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblobs',['guac_protocol_send_blobs',['../protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fbody',['guac_protocol_send_body',['../protocol_8h.html#aca9fb516e730233c33da297819f7ae7e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcfill',['guac_protocol_send_cfill',['../protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclip',['guac_protocol_send_clip',['../protocol_8h.html#acbd1869635b752bbf52998613804df00',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclipboard',['guac_protocol_send_clipboard',['../protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclose',['guac_protocol_send_close',['../protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fconnect',['guac_protocol_send_connect',['../protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcopy',['guac_protocol_send_copy',['../protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcstroke',['guac_protocol_send_cstroke',['../protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcursor',['guac_protocol_send_cursor',['../protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcurve',['guac_protocol_send_curve',['../protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdisconnect',['guac_protocol_send_disconnect',['../protocol_8h.html#afd463766036afda4798edbe788d29524',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdispose',['guac_protocol_send_dispose',['../protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdistort',['guac_protocol_send_distort',['../protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fend',['guac_protocol_send_end',['../protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ferror',['guac_protocol_send_error',['../protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffile',['guac_protocol_send_file',['../protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffilesystem',['guac_protocol_send_filesystem',['../protocol_8h.html#a3779c2287625af70fb001afbcc739da5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fidentity',['guac_protocol_send_identity',['../protocol_8h.html#aac205e52801a875bfbef02ae237b6b15',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fimg',['guac_protocol_send_img',['../protocol_8h.html#afda8074f65d35795203f392f6688163e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fkey',['guac_protocol_send_key',['../protocol_8h.html#a2d276595cea8a2d382240d868487f077',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flfill',['guac_protocol_send_lfill',['../protocol_8h.html#a9271e3b6cc0030b833d18137969a4018',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fline',['guac_protocol_send_line',['../protocol_8h.html#afac3f57649c20b5e39c484a52d264005',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flog',['guac_protocol_send_log',['../protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flstroke',['guac_protocol_send_lstroke',['../protocol_8h.html#a5b7d621d534126e26178789800a1a5d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmouse',['guac_protocol_send_mouse',['../protocol_8h.html#a8947056262da2f3263b9851370597622',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmove',['guac_protocol_send_move',['../protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fname',['guac_protocol_send_name',['../protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnest',['guac_protocol_send_nest',['../protocol_8h.html#a94efa63c9895383e142a3f7ce559300b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnop',['guac_protocol_send_nop',['../protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpipe',['guac_protocol_send_pipe',['../protocol_8h.html#a18b2c462077b7c51d211f3db09c30292',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpop',['guac_protocol_send_pop',['../protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpush',['guac_protocol_send_push',['../protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fready',['guac_protocol_send_ready',['../protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frect',['guac_protocol_send_rect',['../protocol_8h.html#a42dc3db797b83accd3418b76648adac5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5freset',['guac_protocol_send_reset',['../protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fselect',['guac_protocol_send_select',['../protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fset',['guac_protocol_send_set',['../protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fshade',['guac_protocol_send_shade',['../protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsize',['guac_protocol_send_size',['../protocol_8h.html#affc4cf09c3337bd860439da99bdfef98',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fstart',['guac_protocol_send_start',['../protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsync',['guac_protocol_send_sync',['../protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransfer',['guac_protocol_send_transfer',['../protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransform',['guac_protocol_send_transform',['../protocol_8h.html#a17058795c93be51c82a9df95eca8e62b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fundefine',['guac_protocol_send_undefine',['../protocol_8h.html#aefa251505e61332e8e1c27ade0478e64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fvideo',['guac_protocol_send_video',['../protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fstatus',['guac_protocol_status',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5frequest',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5ftype',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fforbidden',['GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5foverrun',['GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftimeout',['GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftoo_5fmany',['GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5funauthorized',['GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fclosed',['GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fconflict',['GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5fbusy',['GUAC_PROTOCOL_STATUS_SERVER_BUSY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5ferror',['GUAC_PROTOCOL_STATUS_SERVER_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fclosed',['GUAC_PROTOCOL_STATUS_SESSION_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fconflict',['GUAC_PROTOCOL_STATUS_SESSION_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5ftimeout',['GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsuccess',['GUAC_PROTOCOL_STATUS_SUCCESS',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5funsupported',['GUAC_PROTOCOL_STATUS_UNSUPPORTED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ferror',['GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ftimeout',['GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5funavailable',['GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814',1,'protocol-types.h']]],
+  ['guac_5fsocket',['guac_socket',['../structguac__socket.html',1,'']]],
+  ['guac_5fsocket_5falloc',['guac_socket_alloc',['../socket_8h.html#a7e5859b812923b894779f59353fdadb4',1,'socket.h']]],
+  ['guac_5fsocket_5fbroadcast',['guac_socket_broadcast',['../socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6',1,'socket.h']]],
+  ['guac_5fsocket_5fclosed',['GUAC_SOCKET_CLOSED',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e',1,'socket-types.h']]],
+  ['guac_5fsocket_5fflush',['guac_socket_flush',['../socket_8h.html#ababc834d5812e006b55a79da417bfe12',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fbase64',['guac_socket_flush_base64',['../socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fhandler',['guac_socket_flush_handler',['../socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5ffree',['guac_socket_free',['../socket_8h.html#a376df8efcc02a7104504f104433884ed',1,'socket.h']]],
+  ['guac_5fsocket_5ffree_5fhandler',['guac_socket_free_handler',['../socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5finstruction_5fbegin',['guac_socket_instruction_begin',['../socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fend',['guac_socket_instruction_end',['../socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94',1,'socket.h']]],
+  ['guac_5fsocket_5fkeep_5falive_5finterval',['GUAC_SOCKET_KEEP_ALIVE_INTERVAL',['../socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7',1,'socket-constants.h']]],
+  ['guac_5fsocket_5flock_5fhandler',['guac_socket_lock_handler',['../socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fnest',['guac_socket_nest',['../socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda',1,'socket.h']]],
+  ['guac_5fsocket_5fopen',['GUAC_SOCKET_OPEN',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5',1,'GUAC_SOCKET_OPEN():&#160;socket-types.h'],['../socket_8h.html#a076f62b9b6082260462e18ca77c64e7a',1,'guac_socket_open(int fd):&#160;socket.h']]],
+  ['guac_5fsocket_5fopen_5fsecure',['guac_socket_open_secure',['../socket-ssl_8h.html#afa6689181258a29460b978f1e496f790',1,'socket-ssl.h']]],
+  ['guac_5fsocket_5fopen_5fwsa',['guac_socket_open_wsa',['../socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be',1,'socket-wsa.h']]],
+  ['guac_5fsocket_5foutput_5fbuffer_5fsize',['GUAC_SOCKET_OUTPUT_BUFFER_SIZE',['../socket-constants_8h.html#af93053e27466c566624301d7b32a68c3',1,'socket-constants.h']]],
+  ['guac_5fsocket_5fread',['guac_socket_read',['../socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31',1,'socket.h']]],
+  ['guac_5fsocket_5fread_5fhandler',['guac_socket_read_handler',['../socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5frequire_5fkeep_5falive',['guac_socket_require_keep_alive',['../socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03',1,'socket.h']]],
+  ['guac_5fsocket_5fselect',['guac_socket_select',['../socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7',1,'socket.h']]],
+  ['guac_5fsocket_5fselect_5fhandler',['guac_socket_select_handler',['../socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fssl_5fdata',['guac_socket_ssl_data',['../structguac__socket__ssl__data.html',1,'']]],
+  ['guac_5fsocket_5fstate',['guac_socket_state',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939',1,'socket-types.h']]],
+  ['guac_5fsocket_5ftee',['guac_socket_tee',['../socket_8h.html#add9c80240912b0c8d309cf7de94f5305',1,'socket.h']]],
+  ['guac_5fsocket_5funlock_5fhandler',['guac_socket_unlock_handler',['../socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite',['guac_socket_write',['../socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fbase64',['guac_socket_write_base64',['../socket_8h.html#ac7ec68bc42436ba316805718c292c510',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fhandler',['guac_socket_write_handler',['../socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite_5fint',['guac_socket_write_int',['../socket_8h.html#a57a963e37377de2104c2d785980ff400',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fstring',['guac_socket_write_string',['../socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc',1,'socket.h']]],
+  ['guac_5fstatus',['guac_status',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86',1,'error-types.h']]],
+  ['guac_5fstatus_5fbusy',['GUAC_STATUS_BUSY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55',1,'error-types.h']]],
+  ['guac_5fstatus_5fcanceled',['GUAC_STATUS_CANCELED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c',1,'error-types.h']]],
+  ['guac_5fstatus_5fclosed',['GUAC_STATUS_CLOSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff',1,'error-types.h']]],
+  ['guac_5fstatus_5finput_5ftoo_5flarge',['GUAC_STATUS_INPUT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a',1,'error-types.h']]],
+  ['guac_5fstatus_5finternal_5ferror',['GUAC_STATUS_INTERNAL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab',1,'error-types.h']]],
+  ['guac_5fstatus_5finvalid_5fargument',['GUAC_STATUS_INVALID_ARGUMENT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4',1,'error-types.h']]],
+  ['guac_5fstatus_5fio_5ferror',['GUAC_STATUS_IO_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fmemory',['GUAC_STATUS_NO_MEMORY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fspace',['GUAC_STATUS_NO_SPACE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5favailable',['GUAC_STATUS_NOT_AVAILABLE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5ffound',['GUAC_STATUS_NOT_FOUND',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5finplemented',['GUAC_STATUS_NOT_INPLEMENTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5fsupported',['GUAC_STATUS_NOT_SUPPORTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e',1,'error-types.h']]],
+  ['guac_5fstatus_5fout_5fof_5frange',['GUAC_STATUS_OUT_OF_RANGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4',1,'error-types.h']]],
+  ['guac_5fstatus_5fpermission_5fdenied',['GUAC_STATUS_PERMISSION_DENIED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740',1,'error-types.h']]],
+  ['guac_5fstatus_5fprotocol_5ferror',['GUAC_STATUS_PROTOCOL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787',1,'error-types.h']]],
+  ['guac_5fstatus_5frefused',['GUAC_STATUS_REFUSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7',1,'error-types.h']]],
+  ['guac_5fstatus_5fresult_5ftoo_5flarge',['GUAC_STATUS_RESULT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d',1,'error-types.h']]],
+  ['guac_5fstatus_5fsee_5ferrno',['GUAC_STATUS_SEE_ERRNO',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fstring',['guac_status_string',['../error_8h.html#a39a2290527ea7c3f0acb07f002c397b1',1,'error.h']]],
+  ['guac_5fstatus_5fsuccess',['GUAC_STATUS_SUCCESS',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftimeout',['GUAC_STATUS_TIMEOUT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftoo_5fmany',['GUAC_STATUS_TOO_MANY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546',1,'error-types.h']]],
+  ['guac_5fstatus_5ftry_5fagain',['GUAC_STATUS_TRY_AGAIN',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a',1,'error-types.h']]],
+  ['guac_5fstatus_5fwould_5fblock',['GUAC_STATUS_WOULD_BLOCK',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f',1,'error-types.h']]],
+  ['guac_5fstream',['guac_stream',['../structguac__stream.html',1,'']]],
+  ['guac_5fstrlcat',['guac_strlcat',['../string_8h.html#a0dccfb28be71414fb2a4b1b641799f57',1,'string.h']]],
+  ['guac_5fstrlcpy',['guac_strlcpy',['../string_8h.html#add551909cdd14d762106832a800a5e16',1,'string.h']]],
+  ['guac_5fstrljoin',['guac_strljoin',['../string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f',1,'string.h']]],
+  ['guac_5fsurface_5fcmp',['guac_surface_cmp',['../hash_8h.html#a377c701a920281a98cbcf0842124aaac',1,'hash.h']]],
+  ['guac_5ftimestamp',['guac_timestamp',['../timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea',1,'timestamp-types.h']]],
+  ['guac_5ftimestamp_5fcurrent',['guac_timestamp_current',['../timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719',1,'timestamp.h']]],
+  ['guac_5ftimestamp_5fmsleep',['guac_timestamp_msleep',['../timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868',1,'timestamp.h']]],
+  ['guac_5ftransfer_5ffunction',['guac_transfer_function',['../protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff',1,'protocol-types.h']]],
+  ['guac_5fuser',['guac_user',['../structguac__user.html',1,'']]],
+  ['guac_5fuser_5fabort',['guac_user_abort',['../user_8h.html#a0eff54a869374e37237b2006ad77b958',1,'user.h']]],
+  ['guac_5fuser_5fack_5fhandler',['guac_user_ack_handler',['../user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09',1,'user-fntypes.h']]],
+  ['guac_5fuser_5falloc',['guac_user_alloc',['../user_8h.html#a586cd1d712dce0db02d57684ddcb02ef',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fobject',['guac_user_alloc_object',['../user_8h.html#a6fa98ba49213d610491248cf085aaf56',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fstream',['guac_user_alloc_stream',['../user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c',1,'user.h']]],
+  ['guac_5fuser_5fargv_5fhandler',['guac_user_argv_handler',['../user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a',1,'user-fntypes.h']]],
+  ['guac_5fuser_5faudio_5fhandler',['guac_user_audio_handler',['../user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fblob_5fhandler',['guac_user_blob_handler',['../user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fcallback',['guac_user_callback',['../user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclipboard_5fhandler',['guac_user_clipboard_handler',['../user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclosed_5fstream_5findex',['GUAC_USER_CLOSED_STREAM_INDEX',['../user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275',1,'user-constants.h']]],
+  ['guac_5fuser_5fend_5fhandler',['guac_user_end_handler',['../user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffile_5fhandler',['guac_user_file_handler',['../user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffree',['guac_user_free',['../user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fobject',['guac_user_free_object',['../user_8h.html#acf92065fb6bbc92f9794ea50255acdb9',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fstream',['guac_user_free_stream',['../user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4',1,'user.h']]],
+  ['guac_5fuser_5fget_5fhandler',['guac_user_get_handler',['../user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fhandle_5fconnection',['guac_user_handle_connection',['../user_8h.html#a28f08ab54f138796dea4655ef54526fe',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5finstruction',['guac_user_handle_instruction',['../user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78',1,'user.h']]],
+  ['guac_5fuser_5fid_5fprefix',['GUAC_USER_ID_PREFIX',['../user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87',1,'user-constants.h']]],
+  ['guac_5fuser_5finfo',['guac_user_info',['../structguac__user__info.html',1,'']]],
+  ['guac_5fuser_5fjoin_5fhandler',['guac_user_join_handler',['../user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fkey_5fhandler',['guac_user_key_handler',['../user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fleave_5fhandler',['guac_user_leave_handler',['../user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8',1,'user-fntypes.h']]],
+  ['guac_5fuser_5flog',['guac_user_log',['../user_8h.html#ab19481d0800901190d3d734eae466151',1,'user.h']]],
+  ['guac_5fuser_5fmax_5fobjects',['GUAC_USER_MAX_OBJECTS',['../user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fstreams',['GUAC_USER_MAX_STREAMS',['../user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce',1,'user-constants.h']]],
+  ['guac_5fuser_5fmouse_5fhandler',['guac_user_mouse_handler',['../user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fobject_5froot_5fname',['GUAC_USER_OBJECT_ROOT_NAME',['../user-constants_8h.html#acb353db4f79b67678376bb521db182e5',1,'user-constants.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fboolean',['guac_user_parse_args_boolean',['../user_8h.html#a5f0bae838d82357e95e98769f7b98cd2',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fint',['guac_user_parse_args_int',['../user_8h.html#a08f6fd4d84de665487a45fb324dc8844',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fstring',['guac_user_parse_args_string',['../user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f',1,'user.h']]],
+  ['guac_5fuser_5fpipe_5fhandler',['guac_user_pipe_handler',['../user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fput_5fhandler',['guac_user_put_handler',['../user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsize_5fhandler',['guac_user_size_handler',['../user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fstop',['guac_user_stop',['../user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fargv',['guac_user_stream_argv',['../user_8h.html#aa3f85461f15abfb46fd7c732538b33ea',1,'user.h']]],
+  ['guac_5fuser_5fstream_5findex_5fmimetype',['GUAC_USER_STREAM_INDEX_MIMETYPE',['../user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490',1,'user-constants.h']]],
+  ['guac_5fuser_5fstream_5fjpeg',['guac_user_stream_jpeg',['../user_8h.html#a6e947ee6996d5711f18d5b785757ccb3',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fpng',['guac_user_stream_png',['../user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fwebp',['guac_user_stream_webp',['../user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5fwebp',['guac_user_supports_webp',['../user_8h.html#a26d186ee6b669c78278124ece46cc8f7',1,'user.h']]],
+  ['guac_5fuser_5fsync_5fhandler',['guac_user_sync_handler',['../user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fundefined_5fobject_5findex',['GUAC_USER_UNDEFINED_OBJECT_INDEX',['../user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f',1,'user-constants.h']]],
+  ['guac_5futf8_5fcharsize',['guac_utf8_charsize',['../unicode_8h.html#a423523f1531719c6ab4fafdb02008623',1,'unicode.h']]],
+  ['guac_5futf8_5fread',['guac_utf8_read',['../unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af',1,'unicode.h']]],
+  ['guac_5futf8_5fstrlen',['guac_utf8_strlen',['../unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b',1,'unicode.h']]],
+  ['guac_5futf8_5fwrite',['guac_utf8_write',['../unicode_8h.html#aa49339a4af9952b0b56402825059a2ce',1,'unicode.h']]],
+  ['guacamole_5fprotocol_5fversion',['GUACAMOLE_PROTOCOL_VERSION',['../protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821',1,'protocol-constants.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_7.html b/doc/1.1.0/libguac/search/all_7.html
new file mode 100644
index 0000000..45c8aef
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_7.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_7.js b/doc/1.1.0/libguac/search/all_7.js
new file mode 100644
index 0000000..8166d05
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_7.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hash_2eh',['hash.h',['../hash_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_8.html b/doc/1.1.0/libguac/search/all_8.html
new file mode 100644
index 0000000..0ebb7e9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_8.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_8.js b/doc/1.1.0/libguac/search/all_8.js
new file mode 100644
index 0000000..d615f47
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['image_5fmimetypes',['image_mimetypes',['../structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345',1,'guac_user_info']]],
+  ['index',['index',['../structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba',1,'guac_layer::index()'],['../structguac__object.html#a643f03695d246bbf73b5c4942755a4b4',1,'guac_object::index()'],['../structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60',1,'guac_stream::index()']]],
+  ['info',['info',['../structguac__user.html#a0120f63e0eb933761666047ed80e483f',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_9.html b/doc/1.1.0/libguac/search/all_9.html
new file mode 100644
index 0000000..d507336
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_9.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_9.js b/doc/1.1.0/libguac/search/all_9.js
new file mode 100644
index 0000000..9565ecb
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['join_5fhandler',['join_handler',['../structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b',1,'guac_audio_encoder::join_handler()'],['../structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3',1,'guac_client::join_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_a.html b/doc/1.1.0/libguac/search/all_a.html
new file mode 100644
index 0000000..60b9519
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_a.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_a.js b/doc/1.1.0/libguac/search/all_a.js
new file mode 100644
index 0000000..deb3a4b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_5fhandler',['key_handler',['../structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_b.html b/doc/1.1.0/libguac/search/all_b.html
new file mode 100644
index 0000000..88440b7
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_b.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_b.js b/doc/1.1.0/libguac/search/all_b.js
new file mode 100644
index 0000000..6c4054d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_b.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['last_5fframe_5fduration',['last_frame_duration',['../structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060',1,'guac_user']]],
+  ['last_5freceived_5ftimestamp',['last_received_timestamp',['../structguac__user.html#aebdee192ef52dfe8956c776adc65fb16',1,'guac_user']]],
+  ['last_5fsent_5ftimestamp',['last_sent_timestamp',['../structguac__client.html#a0f3069566c7a5ca76ce4369715589dad',1,'guac_client']]],
+  ['last_5fwrite_5ftimestamp',['last_write_timestamp',['../structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51',1,'guac_socket']]],
+  ['layer_2dtypes_2eh',['layer-types.h',['../layer-types_8h.html',1,'']]],
+  ['layer_2eh',['layer.h',['../layer_8h.html',1,'']]],
+  ['leave_5fhandler',['leave_handler',['../structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6',1,'guac_client::leave_handler()'],['../structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f',1,'guac_user::leave_handler()']]],
+  ['lock_5fhandler',['lock_handler',['../structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471',1,'guac_socket']]],
+  ['log_5fhandler',['log_handler',['../structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43',1,'guac_client']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_c.html b/doc/1.1.0/libguac/search/all_c.html
new file mode 100644
index 0000000..327ffcf
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_c.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_c.js b/doc/1.1.0/libguac/search/all_c.js
new file mode 100644
index 0000000..d27d66d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_c.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['mimetype',['mimetype',['../structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b',1,'guac_audio_encoder']]],
+  ['min_5fsize',['min_size',['../structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e',1,'guac_pool']]],
+  ['mouse_5fhandler',['mouse_handler',['../structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_d.html b/doc/1.1.0/libguac/search/all_d.html
new file mode 100644
index 0000000..1d4765e
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_d.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_d.js b/doc/1.1.0/libguac/search/all_d.js
new file mode 100644
index 0000000..5df2050
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_d.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['object_2dtypes_2eh',['object-types.h',['../object-types_8h.html',1,'']]],
+  ['object_2eh',['object.h',['../object_8h.html',1,'']]],
+  ['opcode',['opcode',['../structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1',1,'guac_parser']]],
+  ['optimal_5fheight',['optimal_height',['../structguac__user__info.html#a252079af642b62554566e8675dc43354',1,'guac_user_info']]],
+  ['optimal_5fresolution',['optimal_resolution',['../structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7',1,'guac_user_info']]],
+  ['optimal_5fwidth',['optimal_width',['../structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66',1,'guac_user_info']]],
+  ['owner',['owner',['../structguac__user.html#a265180af7291745b2e090ee6fa47cbb8',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_e.html b/doc/1.1.0/libguac/search/all_e.html
new file mode 100644
index 0000000..18a2364
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_e.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_e.js b/doc/1.1.0/libguac/search/all_e.js
new file mode 100644
index 0000000..f839862
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_e.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+  ['parser_2dconstants_2eh',['parser-constants.h',['../parser-constants_8h.html',1,'']]],
+  ['parser_2dtypes_2eh',['parser-types.h',['../parser-types_8h.html',1,'']]],
+  ['parser_2eh',['parser.h',['../parser_8h.html',1,'']]],
+  ['pipe_5fhandler',['pipe_handler',['../structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3',1,'guac_user']]],
+  ['plugin_2dconstants_2eh',['plugin-constants.h',['../plugin-constants_8h.html',1,'']]],
+  ['plugin_2eh',['plugin.h',['../plugin_8h.html',1,'']]],
+  ['pool_2dtypes_2eh',['pool-types.h',['../pool-types_8h.html',1,'']]],
+  ['pool_2eh',['pool.h',['../pool_8h.html',1,'']]],
+  ['processing_5flag',['processing_lag',['../structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e',1,'guac_user']]],
+  ['protocol_2dconstants_2eh',['protocol-constants.h',['../protocol-constants_8h.html',1,'']]],
+  ['protocol_2dtypes_2eh',['protocol-types.h',['../protocol-types_8h.html',1,'']]],
+  ['protocol_2eh',['protocol.h',['../protocol_8h.html',1,'']]],
+  ['put_5fhandler',['put_handler',['../structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6',1,'guac_object::put_handler()'],['../structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3',1,'guac_user::put_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/all_f.html b/doc/1.1.0/libguac/search/all_f.html
new file mode 100644
index 0000000..0034eab
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_f.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/all_f.js b/doc/1.1.0/libguac/search/all_f.js
new file mode 100644
index 0000000..3b14e0a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/all_f.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['rate',['rate',['../structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9',1,'guac_audio_stream']]],
+  ['read_5fhandler',['read_handler',['../structguac__socket.html#a10042a8e591737aec8d4db5a3423b250',1,'guac_socket']]]
+];
diff --git a/doc/1.1.0/libguac/search/classes_0.html b/doc/1.1.0/libguac/search/classes_0.html
new file mode 100644
index 0000000..85f1099
--- /dev/null
+++ b/doc/1.1.0/libguac/search/classes_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/classes_0.js b/doc/1.1.0/libguac/search/classes_0.js
new file mode 100644
index 0000000..3663608
--- /dev/null
+++ b/doc/1.1.0/libguac/search/classes_0.js
@@ -0,0 +1,16 @@
+var searchData=
+[
+  ['guac_5faudio_5fencoder',['guac_audio_encoder',['../structguac__audio__encoder.html',1,'']]],
+  ['guac_5faudio_5fstream',['guac_audio_stream',['../structguac__audio__stream.html',1,'']]],
+  ['guac_5fclient',['guac_client',['../structguac__client.html',1,'']]],
+  ['guac_5flayer',['guac_layer',['../structguac__layer.html',1,'']]],
+  ['guac_5fobject',['guac_object',['../structguac__object.html',1,'']]],
+  ['guac_5fparser',['guac_parser',['../structguac__parser.html',1,'']]],
+  ['guac_5fpool',['guac_pool',['../structguac__pool.html',1,'']]],
+  ['guac_5fpool_5fint',['guac_pool_int',['../structguac__pool__int.html',1,'']]],
+  ['guac_5fsocket',['guac_socket',['../structguac__socket.html',1,'']]],
+  ['guac_5fsocket_5fssl_5fdata',['guac_socket_ssl_data',['../structguac__socket__ssl__data.html',1,'']]],
+  ['guac_5fstream',['guac_stream',['../structguac__stream.html',1,'']]],
+  ['guac_5fuser',['guac_user',['../structguac__user.html',1,'']]],
+  ['guac_5fuser_5finfo',['guac_user_info',['../structguac__user__info.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/close.png b/doc/1.1.0/libguac/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/close.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/defines_0.html b/doc/1.1.0/libguac/search/defines_0.html
new file mode 100644
index 0000000..e779c0e
--- /dev/null
+++ b/doc/1.1.0/libguac/search/defines_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/defines_0.js b/doc/1.1.0/libguac/search/defines_0.js
new file mode 100644
index 0000000..2a7254a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/defines_0.js
@@ -0,0 +1,32 @@
+var searchData=
+[
+  ['guac_5fbuffer_5fpool_5finitial_5fsize',['GUAC_BUFFER_POOL_INITIAL_SIZE',['../client-constants_8h.html#aa8a296e1032ff408ab141b0765fb9bfb',1,'client-constants.h']]],
+  ['guac_5fclient_5fclosed_5fstream_5findex',['GUAC_CLIENT_CLOSED_STREAM_INDEX',['../client-constants_8h.html#a6fda25106c4c454c22db2c7e042ee142',1,'client-constants.h']]],
+  ['guac_5fclient_5fid_5fprefix',['GUAC_CLIENT_ID_PREFIX',['../client-constants_8h.html#a8e2b48136e5c358e012a1558d5e5f0c2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmax_5fstreams',['GUAC_CLIENT_MAX_STREAMS',['../client-constants_8h.html#ad9f977643c5ffee5c1eeb426664796a1',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fleft',['GUAC_CLIENT_MOUSE_LEFT',['../client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fmiddle',['GUAC_CLIENT_MOUSE_MIDDLE',['../client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fright',['GUAC_CLIENT_MOUSE_RIGHT',['../client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fdown',['GUAC_CLIENT_MOUSE_SCROLL_DOWN',['../client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0',1,'client-constants.h']]],
+  ['guac_5fclient_5fmouse_5fscroll_5fup',['GUAC_CLIENT_MOUSE_SCROLL_UP',['../client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d',1,'client-constants.h']]],
+  ['guac_5ferror',['guac_error',['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h'],['../error_8h.html#a44aa5f7b9e896438fcdf16fe7feefd07',1,'guac_error():&#160;error.h']]],
+  ['guac_5ferror_5fmessage',['guac_error_message',['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h'],['../error_8h.html#a96ab3903ba0e97c745e8bfb006e123cd',1,'guac_error_message():&#160;error.h']]],
+  ['guac_5finstruction_5fmax_5fdigits',['GUAC_INSTRUCTION_MAX_DIGITS',['../parser-constants_8h.html#a408e5069154be109ad3dcf45cbc0b00f',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5felements',['GUAC_INSTRUCTION_MAX_ELEMENTS',['../parser-constants_8h.html#a6f314dc5700812ca93ff132a15b86a46',1,'parser-constants.h']]],
+  ['guac_5finstruction_5fmax_5flength',['GUAC_INSTRUCTION_MAX_LENGTH',['../parser-constants_8h.html#a6cb4157503008653c5200ea640fe8744',1,'parser-constants.h']]],
+  ['guac_5fprotocol_5fblob_5fmax_5flength',['GUAC_PROTOCOL_BLOB_MAX_LENGTH',['../protocol-constants_8h.html#af5dd5c766aeebead268d0daa6c8c2166',1,'protocol-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5flimit',['GUAC_PROTOCOL_LIBRARY_LIMIT',['../plugin-constants_8h.html#a03c00580f4455d35c1ed33ed4dcfe2fe',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fprefix',['GUAC_PROTOCOL_LIBRARY_PREFIX',['../plugin-constants_8h.html#ac328a06358d3e07e10999e556f77c05a',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5flibrary_5fsuffix',['GUAC_PROTOCOL_LIBRARY_SUFFIX',['../plugin-constants_8h.html#af3601bb5aaa3ca309987f70bd48005fd',1,'plugin-constants.h']]],
+  ['guac_5fprotocol_5fname_5flimit',['GUAC_PROTOCOL_NAME_LIMIT',['../plugin-constants_8h.html#a4ce2e3a2b6be66e9ab382fb8d2ab2621',1,'plugin-constants.h']]],
+  ['guac_5fsocket_5fkeep_5falive_5finterval',['GUAC_SOCKET_KEEP_ALIVE_INTERVAL',['../socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7',1,'socket-constants.h']]],
+  ['guac_5fsocket_5foutput_5fbuffer_5fsize',['GUAC_SOCKET_OUTPUT_BUFFER_SIZE',['../socket-constants_8h.html#af93053e27466c566624301d7b32a68c3',1,'socket-constants.h']]],
+  ['guac_5fuser_5fclosed_5fstream_5findex',['GUAC_USER_CLOSED_STREAM_INDEX',['../user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275',1,'user-constants.h']]],
+  ['guac_5fuser_5fid_5fprefix',['GUAC_USER_ID_PREFIX',['../user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fobjects',['GUAC_USER_MAX_OBJECTS',['../user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7',1,'user-constants.h']]],
+  ['guac_5fuser_5fmax_5fstreams',['GUAC_USER_MAX_STREAMS',['../user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce',1,'user-constants.h']]],
+  ['guac_5fuser_5fobject_5froot_5fname',['GUAC_USER_OBJECT_ROOT_NAME',['../user-constants_8h.html#acb353db4f79b67678376bb521db182e5',1,'user-constants.h']]],
+  ['guac_5fuser_5fstream_5findex_5fmimetype',['GUAC_USER_STREAM_INDEX_MIMETYPE',['../user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490',1,'user-constants.h']]],
+  ['guac_5fuser_5fundefined_5fobject_5findex',['GUAC_USER_UNDEFINED_OBJECT_INDEX',['../user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f',1,'user-constants.h']]],
+  ['guacamole_5fprotocol_5fversion',['GUACAMOLE_PROTOCOL_VERSION',['../protocol-constants_8h.html#ab1706e67b56808564438ef853a8d2821',1,'protocol-constants.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/enums_0.html b/doc/1.1.0/libguac/search/enums_0.html
new file mode 100644
index 0000000..6f7d3e6
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enums_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/enums_0.js b/doc/1.1.0/libguac/search/enums_0.js
new file mode 100644
index 0000000..983a355
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enums_0.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['guac_5fclient_5flog_5flevel',['guac_client_log_level',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727',1,'client-types.h']]],
+  ['guac_5fclient_5fstate',['guac_client_state',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b',1,'client-types.h']]],
+  ['guac_5fcomposite_5fmode',['guac_composite_mode',['../protocol-types_8h.html#a93612063886db58071d02b5393abf186',1,'protocol-types.h']]],
+  ['guac_5fline_5fcap_5fstyle',['guac_line_cap_style',['../protocol-types_8h.html#a4a0205f8ee2e29e1a4d78da74ab58efc',1,'protocol-types.h']]],
+  ['guac_5fline_5fjoin_5fstyle',['guac_line_join_style',['../protocol-types_8h.html#a6333200b3ff1634e0cb1826b271438b1',1,'protocol-types.h']]],
+  ['guac_5fparse_5fstate',['guac_parse_state',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30',1,'parser-types.h']]],
+  ['guac_5fprotocol_5fstatus',['guac_protocol_status',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2',1,'protocol-types.h']]],
+  ['guac_5fsocket_5fstate',['guac_socket_state',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939',1,'socket-types.h']]],
+  ['guac_5fstatus',['guac_status',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86',1,'error-types.h']]],
+  ['guac_5ftransfer_5ffunction',['guac_transfer_function',['../protocol-types_8h.html#a9c85e3f22f5dea8b2f38de6b4f75b1ff',1,'protocol-types.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/enumvalues_0.html b/doc/1.1.0/libguac/search/enumvalues_0.html
new file mode 100644
index 0000000..1e00873
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enumvalues_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/enumvalues_0.js b/doc/1.1.0/libguac/search/enumvalues_0.js
new file mode 100644
index 0000000..62c0fa2
--- /dev/null
+++ b/doc/1.1.0/libguac/search/enumvalues_0.js
@@ -0,0 +1,61 @@
+var searchData=
+[
+  ['guac_5fclient_5frunning',['GUAC_CLIENT_RUNNING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3bad1ddb6f9bcfcd89a9d8522acfd74d2b0',1,'client-types.h']]],
+  ['guac_5fclient_5fstopping',['GUAC_CLIENT_STOPPING',['../client-types_8h.html#a6f7e91d6dcb20598953948f077910c3ba5a21704bd35c396c4c640e0b1fc0c8fd',1,'client-types.h']]],
+  ['guac_5flog_5fdebug',['GUAC_LOG_DEBUG',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a070794a24cef7ef430b2edaff3c9ea9b',1,'client-types.h']]],
+  ['guac_5flog_5ferror',['GUAC_LOG_ERROR',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a4fd231414f22c9a104106ddaf2b12c2c',1,'client-types.h']]],
+  ['guac_5flog_5finfo',['GUAC_LOG_INFO',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727aedc7d68f866aa570a055a88030d36b29',1,'client-types.h']]],
+  ['guac_5flog_5ftrace',['GUAC_LOG_TRACE',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727ab507f156c21f790e9311c6c19f8a79eb',1,'client-types.h']]],
+  ['guac_5flog_5fwarning',['GUAC_LOG_WARNING',['../client-types_8h.html#adfeeb4ff06541220c91ce3401d840727a24865770a939aa238cd69cd7f11205be',1,'client-types.h']]],
+  ['guac_5fparse_5fcomplete',['GUAC_PARSE_COMPLETE',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ac2f96a86cbe8d0f5db5efc09da4580cf',1,'parser-types.h']]],
+  ['guac_5fparse_5fcontent',['GUAC_PARSE_CONTENT',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30a324af2c7faab24fd596a2a646bf8b55e',1,'parser-types.h']]],
+  ['guac_5fparse_5ferror',['GUAC_PARSE_ERROR',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ace4ab12c05611f0dbc5260430812b0bc',1,'parser-types.h']]],
+  ['guac_5fparse_5flength',['GUAC_PARSE_LENGTH',['../parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30ad3301ee4914616a122a999a6f28910cc',1,'parser-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5frequest',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_REQUEST',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3368d253bd711779821fd35cfce26fb7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fbad_5ftype',['GUAC_PROTOCOL_STATUS_CLIENT_BAD_TYPE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aee8dbe77e34276c2c63ac48cfd9efb6a',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5fforbidden',['GUAC_PROTOCOL_STATUS_CLIENT_FORBIDDEN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae69699ec97ca233ff2080e258cbaffc5',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5foverrun',['GUAC_PROTOCOL_STATUS_CLIENT_OVERRUN',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8d525475c60f4851a0e54f80e2106d13',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftimeout',['GUAC_PROTOCOL_STATUS_CLIENT_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a48bbc2974575fc1418a74367b090dfff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5ftoo_5fmany',['GUAC_PROTOCOL_STATUS_CLIENT_TOO_MANY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aea1d0ee50c190b937904da2ad68cabdc',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fclient_5funauthorized',['GUAC_PROTOCOL_STATUS_CLIENT_UNAUTHORIZED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2af235e2bc03b76506e2b145bef2faadca',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fclosed',['GUAC_PROTOCOL_STATUS_RESOURCE_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a08b2dc0d23e51f7a2cba7cc807cb80da',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fconflict',['GUAC_PROTOCOL_STATUS_RESOURCE_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a6f19a3fac58e804570a16351f8c35ee9',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fresource_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_RESOURCE_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3aa788cd4b2bbcfab592573dbddc2e22',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5fbusy',['GUAC_PROTOCOL_STATUS_SERVER_BUSY',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a0344ce1d993b626382a44969934354d6',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fserver_5ferror',['GUAC_PROTOCOL_STATUS_SERVER_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a1540c5c1a0668f06a9d71443d95063ff',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fclosed',['GUAC_PROTOCOL_STATUS_SESSION_CLOSED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a8e31816937bfdc75c639d3bf0c4063ab',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5fconflict',['GUAC_PROTOCOL_STATUS_SESSION_CONFLICT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2ae92e68bf446315028b3f1992b19967f7',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsession_5ftimeout',['GUAC_PROTOCOL_STATUS_SESSION_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3e4f469d39ea08bf7ff8fec3a2f36b23',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fsuccess',['GUAC_PROTOCOL_STATUS_SUCCESS',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2aece4c889b9d626073bf7a0cb8fe6d5ac',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5funsupported',['GUAC_PROTOCOL_STATUS_UNSUPPORTED',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a3a967a2c59d846eb6e6106066d95ef75',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ferror',['GUAC_PROTOCOL_STATUS_UPSTREAM_ERROR',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a00d154907f7b45e526db18a5a5685d78',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5fnot_5ffound',['GUAC_PROTOCOL_STATUS_UPSTREAM_NOT_FOUND',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a503d6c0332647939536488a19513ae3e',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5ftimeout',['GUAC_PROTOCOL_STATUS_UPSTREAM_TIMEOUT',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a5829c4335b31db5c6f1e1764264f281f',1,'protocol-types.h']]],
+  ['guac_5fprotocol_5fstatus_5fupstream_5funavailable',['GUAC_PROTOCOL_STATUS_UPSTREAM_UNAVAILABLE',['../protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2a238ff6f1d0e5fbcb0529fe4985dae814',1,'protocol-types.h']]],
+  ['guac_5fsocket_5fclosed',['GUAC_SOCKET_CLOSED',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e',1,'socket-types.h']]],
+  ['guac_5fsocket_5fopen',['GUAC_SOCKET_OPEN',['../socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5',1,'socket-types.h']]],
+  ['guac_5fstatus_5fbusy',['GUAC_STATUS_BUSY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae12700a53800d88ba4711e680cc50b55',1,'error-types.h']]],
+  ['guac_5fstatus_5fcanceled',['GUAC_STATUS_CANCELED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4c304f409d4fbde1834d1611c18fe98c',1,'error-types.h']]],
+  ['guac_5fstatus_5fclosed',['GUAC_STATUS_CLOSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7e66422d5706e2be5306c634244a38ff',1,'error-types.h']]],
+  ['guac_5fstatus_5finput_5ftoo_5flarge',['GUAC_STATUS_INPUT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a918e06bdee8b3d84f9840665ccf95d3a',1,'error-types.h']]],
+  ['guac_5fstatus_5finternal_5ferror',['GUAC_STATUS_INTERNAL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a4a6fccd6ba5576c38b39b5adc05174ab',1,'error-types.h']]],
+  ['guac_5fstatus_5finvalid_5fargument',['GUAC_STATUS_INVALID_ARGUMENT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a62db59024cea0e396c8d61051594d6d4',1,'error-types.h']]],
+  ['guac_5fstatus_5fio_5ferror',['GUAC_STATUS_IO_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a32e98ba3d8f2b920728e9b373c02bf7a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fmemory',['GUAC_STATUS_NO_MEMORY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86abab29ecdd4072426136965c73186d80a',1,'error-types.h']]],
+  ['guac_5fstatus_5fno_5fspace',['GUAC_STATUS_NO_SPACE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a26883cca94f7cdbe7199c8962197fbe3',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5favailable',['GUAC_STATUS_NOT_AVAILABLE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a7bd3cb62015b8eebcc8fdf7af3dd98b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5ffound',['GUAC_STATUS_NOT_FOUND',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af990a7a671f2261669eb68023d3767c8',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5finplemented',['GUAC_STATUS_NOT_INPLEMENTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a850c15f5310a728b370354e9757c0d8c',1,'error-types.h']]],
+  ['guac_5fstatus_5fnot_5fsupported',['GUAC_STATUS_NOT_SUPPORTED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae0b1c8264b30ab9339be44fbb64fd39e',1,'error-types.h']]],
+  ['guac_5fstatus_5fout_5fof_5frange',['GUAC_STATUS_OUT_OF_RANGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a79e0f730bcc2941322b7e4e99ed60cf4',1,'error-types.h']]],
+  ['guac_5fstatus_5fpermission_5fdenied',['GUAC_STATUS_PERMISSION_DENIED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a00f3e091f403a998b27b3b0386bf5740',1,'error-types.h']]],
+  ['guac_5fstatus_5fprotocol_5ferror',['GUAC_STATUS_PROTOCOL_ERROR',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a0a09fc9f8030566fc8e1bc38438b5787',1,'error-types.h']]],
+  ['guac_5fstatus_5frefused',['GUAC_STATUS_REFUSED',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a47a9d13217f18fbdab621b9ee37b25d7',1,'error-types.h']]],
+  ['guac_5fstatus_5fresult_5ftoo_5flarge',['GUAC_STATUS_RESULT_TOO_LARGE',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a114e1037ead51082d710b22998a5f49d',1,'error-types.h']]],
+  ['guac_5fstatus_5fsee_5ferrno',['GUAC_STATUS_SEE_ERRNO',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86af34a2ad1cc0601d22889bb5cbce273b7',1,'error-types.h']]],
+  ['guac_5fstatus_5fsuccess',['GUAC_STATUS_SUCCESS',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a05aa91b6406b1d4258619b4b6a2d92b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftimeout',['GUAC_STATUS_TIMEOUT',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86ae1c538233d92f2c7e7fd58887ea487b3',1,'error-types.h']]],
+  ['guac_5fstatus_5ftoo_5fmany',['GUAC_STATUS_TOO_MANY',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a673866879da07e263c74ee215ad0b546',1,'error-types.h']]],
+  ['guac_5fstatus_5ftry_5fagain',['GUAC_STATUS_TRY_AGAIN',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a969fd36abf3176099ccd663957ee518a',1,'error-types.h']]],
+  ['guac_5fstatus_5fwould_5fblock',['GUAC_STATUS_WOULD_BLOCK',['../error-types_8h.html#a1f4f9a73ee399e5dff424376eb4f9c86a162c54095836dd13a63139d6debe060f',1,'error-types.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_0.html b/doc/1.1.0/libguac/search/files_0.html
new file mode 100644
index 0000000..6b62298
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_0.js b/doc/1.1.0/libguac/search/files_0.js
new file mode 100644
index 0000000..a084939
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['audio_2dfntypes_2eh',['audio-fntypes.h',['../audio-fntypes_8h.html',1,'']]],
+  ['audio_2dtypes_2eh',['audio-types.h',['../audio-types_8h.html',1,'']]],
+  ['audio_2eh',['audio.h',['../audio_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_1.html b/doc/1.1.0/libguac/search/files_1.html
new file mode 100644
index 0000000..666ccb4
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_1.js b/doc/1.1.0/libguac/search/files_1.js
new file mode 100644
index 0000000..3aea380
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_1.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['client_2dconstants_2eh',['client-constants.h',['../client-constants_8h.html',1,'']]],
+  ['client_2dfntypes_2eh',['client-fntypes.h',['../client-fntypes_8h.html',1,'']]],
+  ['client_2dtypes_2eh',['client-types.h',['../client-types_8h.html',1,'']]],
+  ['client_2eh',['client.h',['../client_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_2.html b/doc/1.1.0/libguac/search/files_2.html
new file mode 100644
index 0000000..4746452
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_2.js b/doc/1.1.0/libguac/search/files_2.js
new file mode 100644
index 0000000..e8f70f3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_2.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['error_2dtypes_2eh',['error-types.h',['../error-types_8h.html',1,'']]],
+  ['error_2eh',['error.h',['../error_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_3.html b/doc/1.1.0/libguac/search/files_3.html
new file mode 100644
index 0000000..54d2a29
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_3.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_3.js b/doc/1.1.0/libguac/search/files_3.js
new file mode 100644
index 0000000..8166d05
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['hash_2eh',['hash.h',['../hash_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_4.html b/doc/1.1.0/libguac/search/files_4.html
new file mode 100644
index 0000000..f476102
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_4.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_4.js b/doc/1.1.0/libguac/search/files_4.js
new file mode 100644
index 0000000..82063af
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['layer_2dtypes_2eh',['layer-types.h',['../layer-types_8h.html',1,'']]],
+  ['layer_2eh',['layer.h',['../layer_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_5.html b/doc/1.1.0/libguac/search/files_5.html
new file mode 100644
index 0000000..9f53fca
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_5.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_5.js b/doc/1.1.0/libguac/search/files_5.js
new file mode 100644
index 0000000..1a05a51
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['object_2dtypes_2eh',['object-types.h',['../object-types_8h.html',1,'']]],
+  ['object_2eh',['object.h',['../object_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_6.html b/doc/1.1.0/libguac/search/files_6.html
new file mode 100644
index 0000000..47ed7d1
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_6.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_6.js b/doc/1.1.0/libguac/search/files_6.js
new file mode 100644
index 0000000..0fd2033
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_6.js
@@ -0,0 +1,13 @@
+var searchData=
+[
+  ['parser_2dconstants_2eh',['parser-constants.h',['../parser-constants_8h.html',1,'']]],
+  ['parser_2dtypes_2eh',['parser-types.h',['../parser-types_8h.html',1,'']]],
+  ['parser_2eh',['parser.h',['../parser_8h.html',1,'']]],
+  ['plugin_2dconstants_2eh',['plugin-constants.h',['../plugin-constants_8h.html',1,'']]],
+  ['plugin_2eh',['plugin.h',['../plugin_8h.html',1,'']]],
+  ['pool_2dtypes_2eh',['pool-types.h',['../pool-types_8h.html',1,'']]],
+  ['pool_2eh',['pool.h',['../pool_8h.html',1,'']]],
+  ['protocol_2dconstants_2eh',['protocol-constants.h',['../protocol-constants_8h.html',1,'']]],
+  ['protocol_2dtypes_2eh',['protocol-types.h',['../protocol-types_8h.html',1,'']]],
+  ['protocol_2eh',['protocol.h',['../protocol_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_7.html b/doc/1.1.0/libguac/search/files_7.html
new file mode 100644
index 0000000..91a4306
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_7.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_7.js b/doc/1.1.0/libguac/search/files_7.js
new file mode 100644
index 0000000..424cb65
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_7.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+  ['socket_2dconstants_2eh',['socket-constants.h',['../socket-constants_8h.html',1,'']]],
+  ['socket_2dfntypes_2eh',['socket-fntypes.h',['../socket-fntypes_8h.html',1,'']]],
+  ['socket_2dssl_2eh',['socket-ssl.h',['../socket-ssl_8h.html',1,'']]],
+  ['socket_2dtypes_2eh',['socket-types.h',['../socket-types_8h.html',1,'']]],
+  ['socket_2dwsa_2eh',['socket-wsa.h',['../socket-wsa_8h.html',1,'']]],
+  ['socket_2eh',['socket.h',['../socket_8h.html',1,'']]],
+  ['stream_2dtypes_2eh',['stream-types.h',['../stream-types_8h.html',1,'']]],
+  ['stream_2eh',['stream.h',['../stream_8h.html',1,'']]],
+  ['string_2eh',['string.h',['../string_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_8.html b/doc/1.1.0/libguac/search/files_8.html
new file mode 100644
index 0000000..1e7fde1
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_8.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_8.js b/doc/1.1.0/libguac/search/files_8.js
new file mode 100644
index 0000000..dccf3b3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_8.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['timestamp_2dtypes_2eh',['timestamp-types.h',['../timestamp-types_8h.html',1,'']]],
+  ['timestamp_2eh',['timestamp.h',['../timestamp_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/files_9.html b/doc/1.1.0/libguac/search/files_9.html
new file mode 100644
index 0000000..d1c6431
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_9.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/files_9.js b/doc/1.1.0/libguac/search/files_9.js
new file mode 100644
index 0000000..2eb6891
--- /dev/null
+++ b/doc/1.1.0/libguac/search/files_9.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['unicode_2eh',['unicode.h',['../unicode_8h.html',1,'']]],
+  ['user_2dconstants_2eh',['user-constants.h',['../user-constants_8h.html',1,'']]],
+  ['user_2dfntypes_2eh',['user-fntypes.h',['../user-fntypes_8h.html',1,'']]],
+  ['user_2dtypes_2eh',['user-types.h',['../user-types_8h.html',1,'']]],
+  ['user_2eh',['user.h',['../user_8h.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/functions_0.html b/doc/1.1.0/libguac/search/functions_0.html
new file mode 100644
index 0000000..be81b44
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/functions_0.js b/doc/1.1.0/libguac/search/functions_0.js
new file mode 100644
index 0000000..315c44b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_0.js
@@ -0,0 +1,147 @@
+var searchData=
+[
+  ['guac_5faudio_5fstream_5fadd_5fuser',['guac_audio_stream_add_user',['../audio_8h.html#a2b8e2f05a19b137454832a5dbc6c3864',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5falloc',['guac_audio_stream_alloc',['../audio_8h.html#afc1fc0133504e718edf4756fac5e9c30',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fflush',['guac_audio_stream_flush',['../audio_8h.html#af75feccacea2b14ee946064cf623f143',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5ffree',['guac_audio_stream_free',['../audio_8h.html#adcc872292b5ba6c39905610b2bccbf31',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5freset',['guac_audio_stream_reset',['../audio_8h.html#a0bbd483b1bfe5eede15539a0aacfedad',1,'audio.h']]],
+  ['guac_5faudio_5fstream_5fwrite_5fpcm',['guac_audio_stream_write_pcm',['../audio_8h.html#a11bdfee60584106ba85d97a3f8273cc2',1,'audio.h']]],
+  ['guac_5fclient_5fabort',['guac_client_abort',['../client_8h.html#a62a29f7820deaff00a10ec79aa81aed4',1,'client.h']]],
+  ['guac_5fclient_5fadd_5fuser',['guac_client_add_user',['../client_8h.html#af66d105dfd1453ec46b423e6b25fa371',1,'client.h']]],
+  ['guac_5fclient_5falloc',['guac_client_alloc',['../client_8h.html#a33bad42d21ccb561aa71c4f04ae9b22a',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fbuffer',['guac_client_alloc_buffer',['../client_8h.html#af661d3fedd9683631bdc7d1e3205e379',1,'client.h']]],
+  ['guac_5fclient_5falloc_5flayer',['guac_client_alloc_layer',['../client_8h.html#a2085758db585bb9d09d3860ec0fc9587',1,'client.h']]],
+  ['guac_5fclient_5falloc_5fstream',['guac_client_alloc_stream',['../client_8h.html#a1bea3499e21736b4ea0fb949d3bc8ab9',1,'client.h']]],
+  ['guac_5fclient_5fend_5fframe',['guac_client_end_frame',['../client_8h.html#a686fc65f5b1afcc3f3b53e36cd1a2ebc',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fowner',['guac_client_for_owner',['../client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a',1,'client.h']]],
+  ['guac_5fclient_5ffor_5fuser',['guac_client_for_user',['../client_8h.html#a7fbba296d1ec3e78dc4b79884f590a03',1,'client.h']]],
+  ['guac_5fclient_5fforeach_5fuser',['guac_client_foreach_user',['../client_8h.html#af652f3db0f89d488cef6d90f612a2077',1,'client.h']]],
+  ['guac_5fclient_5ffree',['guac_client_free',['../client_8h.html#a76cdc454a23fdcbb70d56f923f6b6427',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fbuffer',['guac_client_free_buffer',['../client_8h.html#afc03a32b3113d9a95700cac54f1cbd4b',1,'client.h']]],
+  ['guac_5fclient_5ffree_5flayer',['guac_client_free_layer',['../client_8h.html#a4e5b374211012d1897792335112dcb89',1,'client.h']]],
+  ['guac_5fclient_5ffree_5fstream',['guac_client_free_stream',['../client_8h.html#af0103a5aae8ba76badd2e68e827f6782',1,'client.h']]],
+  ['guac_5fclient_5fget_5fprocessing_5flag',['guac_client_get_processing_lag',['../client_8h.html#aa2b94b3145fcebf2d7b1999df11d0b2c',1,'client.h']]],
+  ['guac_5fclient_5fload_5fplugin',['guac_client_load_plugin',['../client_8h.html#afa2b90d686c56cf753c36718ec085f35',1,'client.h']]],
+  ['guac_5fclient_5flog',['guac_client_log',['../client_8h.html#ad53666bbe29346497cabb04fc9628208',1,'client.h']]],
+  ['guac_5fclient_5fremove_5fuser',['guac_client_remove_user',['../client_8h.html#a02832d5be5330dc3de524b497b7c6dfa',1,'client.h']]],
+  ['guac_5fclient_5fstop',['guac_client_stop',['../client_8h.html#a022d4b5587c84f2963b176ab7999aa1b',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fargv',['guac_client_stream_argv',['../client_8h.html#a6c9d8717d4b8eaa50dbd7301af27a06f',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fjpeg',['guac_client_stream_jpeg',['../client_8h.html#aa51ede155ad7777bc8d2e82aa6e779bf',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fpng',['guac_client_stream_png',['../client_8h.html#a317b9d79afd0b0b473d7d359e0c33750',1,'client.h']]],
+  ['guac_5fclient_5fstream_5fwebp',['guac_client_stream_webp',['../client_8h.html#a55adbd5ee8f27c4df4394dbb5bf9416e',1,'client.h']]],
+  ['guac_5fclient_5fsupports_5fwebp',['guac_client_supports_webp',['../client_8h.html#a79cc74558e8f64807ea2847fbacd20e3',1,'client.h']]],
+  ['guac_5fhash_5fsurface',['guac_hash_surface',['../hash_8h.html#ae8243122fb0b158a22058f9dbd2bbc0c',1,'hash.h']]],
+  ['guac_5fparser_5falloc',['guac_parser_alloc',['../parser_8h.html#a69dc498eb4d71d353bff07b88ec21cad',1,'parser.h']]],
+  ['guac_5fparser_5fappend',['guac_parser_append',['../parser_8h.html#ab1ca22b7bf9c232cce0d122f03dc183d',1,'parser.h']]],
+  ['guac_5fparser_5fexpect',['guac_parser_expect',['../parser_8h.html#ac54c94465aead463ce10e9a090b9b701',1,'parser.h']]],
+  ['guac_5fparser_5ffree',['guac_parser_free',['../parser_8h.html#ad3b7d4df1ca25c5bced1c08b329f0a0f',1,'parser.h']]],
+  ['guac_5fparser_5flength',['guac_parser_length',['../parser_8h.html#a8899dd607997fcffd78517947b17760b',1,'parser.h']]],
+  ['guac_5fparser_5fread',['guac_parser_read',['../parser_8h.html#a8a1169f5040732e4f4b55ee6c1e1fe93',1,'parser.h']]],
+  ['guac_5fparser_5fshift',['guac_parser_shift',['../parser_8h.html#a56e7b2a85abdb6cb4ec4bd6e47a92ed3',1,'parser.h']]],
+  ['guac_5fpool_5falloc',['guac_pool_alloc',['../pool_8h.html#a3e7589997fdd734a6d6155badebd042f',1,'pool.h']]],
+  ['guac_5fpool_5ffree',['guac_pool_free',['../pool_8h.html#a7015e5939617ab7e55477ba0a4f85bdb',1,'pool.h']]],
+  ['guac_5fpool_5ffree_5fint',['guac_pool_free_int',['../pool_8h.html#ad90069a41689cf319f46af44bb113579',1,'pool.h']]],
+  ['guac_5fpool_5fnext_5fint',['guac_pool_next_int',['../pool_8h.html#abe3c79e0fec121e3d1b1d3ce37aa45f4',1,'pool.h']]],
+  ['guac_5fprotocol_5fdecode_5fbase64',['guac_protocol_decode_base64',['../protocol_8h.html#a0ad7d9b8b205d6fc368eff2d9e8e40ec',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fack',['guac_protocol_send_ack',['../protocol_8h.html#ab02be6102d9f4aaa2bbb0b249f09d63e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5farc',['guac_protocol_send_arc',['../protocol_8h.html#ad74bc43b5f03b79027bf02d873cd77b3',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargs',['guac_protocol_send_args',['../protocol_8h.html#a6047d380b097ebc7d5f35b167e3419e6',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fargv',['guac_protocol_send_argv',['../protocol_8h.html#aaddd6d7c6ab1289efb3dd38c39bde531',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5faudio',['guac_protocol_send_audio',['../protocol_8h.html#ab92edb38a4df2db402a013422cee6b42',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblob',['guac_protocol_send_blob',['../protocol_8h.html#a798d57ec3f3cdfa0d9bb4906f02d5127',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fblobs',['guac_protocol_send_blobs',['../protocol_8h.html#ad4b3d3b5741b377a197c02384e4b870e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fbody',['guac_protocol_send_body',['../protocol_8h.html#aca9fb516e730233c33da297819f7ae7e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcfill',['guac_protocol_send_cfill',['../protocol_8h.html#afda3a1a8285e323fca6aef50cb2feb5e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclip',['guac_protocol_send_clip',['../protocol_8h.html#acbd1869635b752bbf52998613804df00',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclipboard',['guac_protocol_send_clipboard',['../protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fclose',['guac_protocol_send_close',['../protocol_8h.html#a45a3e4e32900594e17c49db6939fc10a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fconnect',['guac_protocol_send_connect',['../protocol_8h.html#ac8dea4393e2ec69d5d27fd0759a70fcb',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcopy',['guac_protocol_send_copy',['../protocol_8h.html#ad035df3781dc19ba2330b02ef1dd6eda',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcstroke',['guac_protocol_send_cstroke',['../protocol_8h.html#ac6f28f1beb2fa07e1b3f6fa774789fd9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcursor',['guac_protocol_send_cursor',['../protocol_8h.html#a17da53514189083fa84aa3cc0bf6883a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fcurve',['guac_protocol_send_curve',['../protocol_8h.html#a1b9985b080a339dcd14b95f5e46e8ab5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdisconnect',['guac_protocol_send_disconnect',['../protocol_8h.html#afd463766036afda4798edbe788d29524',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdispose',['guac_protocol_send_dispose',['../protocol_8h.html#a7b2456a017f772a39be6d33a5da9149d',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fdistort',['guac_protocol_send_distort',['../protocol_8h.html#a6b4cdd9133dbdca8cfc1e78a0d6bdf13',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fend',['guac_protocol_send_end',['../protocol_8h.html#ae1bb569878a14efecccc0c05757d1cae',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ferror',['guac_protocol_send_error',['../protocol_8h.html#abe696ca7c9841883c5d5bea513d4ee9a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffile',['guac_protocol_send_file',['../protocol_8h.html#a453e1b22d63a9d07ba23b3a6726c2f06',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ffilesystem',['guac_protocol_send_filesystem',['../protocol_8h.html#a3779c2287625af70fb001afbcc739da5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fidentity',['guac_protocol_send_identity',['../protocol_8h.html#aac205e52801a875bfbef02ae237b6b15',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fimg',['guac_protocol_send_img',['../protocol_8h.html#afda8074f65d35795203f392f6688163e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fkey',['guac_protocol_send_key',['../protocol_8h.html#a2d276595cea8a2d382240d868487f077',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flfill',['guac_protocol_send_lfill',['../protocol_8h.html#a9271e3b6cc0030b833d18137969a4018',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fline',['guac_protocol_send_line',['../protocol_8h.html#afac3f57649c20b5e39c484a52d264005',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flog',['guac_protocol_send_log',['../protocol_8h.html#a6f832f5b814129d2819f115d84da3cd0',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5flstroke',['guac_protocol_send_lstroke',['../protocol_8h.html#a5b7d621d534126e26178789800a1a5d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmouse',['guac_protocol_send_mouse',['../protocol_8h.html#a8947056262da2f3263b9851370597622',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fmove',['guac_protocol_send_move',['../protocol_8h.html#ac7409451b0f2b18dc870d347545c9afd',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fname',['guac_protocol_send_name',['../protocol_8h.html#a481fbaab3b8e72505df752ac2f6cc59e',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnest',['guac_protocol_send_nest',['../protocol_8h.html#a94efa63c9895383e142a3f7ce559300b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fnop',['guac_protocol_send_nop',['../protocol_8h.html#a8fa17d3aa1270b806ac6a386798c6d41',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpipe',['guac_protocol_send_pipe',['../protocol_8h.html#a18b2c462077b7c51d211f3db09c30292',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpop',['guac_protocol_send_pop',['../protocol_8h.html#ab29ab6edd91e954fd686742c92eab6d4',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fpush',['guac_protocol_send_push',['../protocol_8h.html#a9db04720cbb2bc972f48f2e9332f23a8',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fready',['guac_protocol_send_ready',['../protocol_8h.html#a102b7719fbd9c8ea0eb2dc4f51e26359',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5frect',['guac_protocol_send_rect',['../protocol_8h.html#a42dc3db797b83accd3418b76648adac5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5freset',['guac_protocol_send_reset',['../protocol_8h.html#a5f6433cc21bc043c57fb7c468428373a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fselect',['guac_protocol_send_select',['../protocol_8h.html#a8757c7870e648b220dbc76b8292fe5cf',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fset',['guac_protocol_send_set',['../protocol_8h.html#aa3750a6c0fbf190fb71a6ab0955cb31a',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fshade',['guac_protocol_send_shade',['../protocol_8h.html#a0e72a4122a3a7c45fa21e0d5607cc4d5',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsize',['guac_protocol_send_size',['../protocol_8h.html#affc4cf09c3337bd860439da99bdfef98',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fstart',['guac_protocol_send_start',['../protocol_8h.html#a60d33439eb4b5a11535a9a77e57c4126',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fsync',['guac_protocol_send_sync',['../protocol_8h.html#aa11f8798abca85fd2b47b5f9a027fa73',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransfer',['guac_protocol_send_transfer',['../protocol_8h.html#aecdce272ed4c317c5b7291e42239a1f9',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5ftransform',['guac_protocol_send_transform',['../protocol_8h.html#a17058795c93be51c82a9df95eca8e62b',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fundefine',['guac_protocol_send_undefine',['../protocol_8h.html#aefa251505e61332e8e1c27ade0478e64',1,'protocol.h']]],
+  ['guac_5fprotocol_5fsend_5fvideo',['guac_protocol_send_video',['../protocol_8h.html#a657216f2e63d2d42e8624f96def84bf8',1,'protocol.h']]],
+  ['guac_5fsocket_5falloc',['guac_socket_alloc',['../socket_8h.html#a7e5859b812923b894779f59353fdadb4',1,'socket.h']]],
+  ['guac_5fsocket_5fbroadcast',['guac_socket_broadcast',['../socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6',1,'socket.h']]],
+  ['guac_5fsocket_5fflush',['guac_socket_flush',['../socket_8h.html#ababc834d5812e006b55a79da417bfe12',1,'socket.h']]],
+  ['guac_5fsocket_5fflush_5fbase64',['guac_socket_flush_base64',['../socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab',1,'socket.h']]],
+  ['guac_5fsocket_5ffree',['guac_socket_free',['../socket_8h.html#a376df8efcc02a7104504f104433884ed',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fbegin',['guac_socket_instruction_begin',['../socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1',1,'socket.h']]],
+  ['guac_5fsocket_5finstruction_5fend',['guac_socket_instruction_end',['../socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94',1,'socket.h']]],
+  ['guac_5fsocket_5fnest',['guac_socket_nest',['../socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda',1,'socket.h']]],
+  ['guac_5fsocket_5fopen',['guac_socket_open',['../socket_8h.html#a076f62b9b6082260462e18ca77c64e7a',1,'socket.h']]],
+  ['guac_5fsocket_5fopen_5fsecure',['guac_socket_open_secure',['../socket-ssl_8h.html#afa6689181258a29460b978f1e496f790',1,'socket-ssl.h']]],
+  ['guac_5fsocket_5fopen_5fwsa',['guac_socket_open_wsa',['../socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be',1,'socket-wsa.h']]],
+  ['guac_5fsocket_5fread',['guac_socket_read',['../socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31',1,'socket.h']]],
+  ['guac_5fsocket_5frequire_5fkeep_5falive',['guac_socket_require_keep_alive',['../socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03',1,'socket.h']]],
+  ['guac_5fsocket_5fselect',['guac_socket_select',['../socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7',1,'socket.h']]],
+  ['guac_5fsocket_5ftee',['guac_socket_tee',['../socket_8h.html#add9c80240912b0c8d309cf7de94f5305',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite',['guac_socket_write',['../socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fbase64',['guac_socket_write_base64',['../socket_8h.html#ac7ec68bc42436ba316805718c292c510',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fint',['guac_socket_write_int',['../socket_8h.html#a57a963e37377de2104c2d785980ff400',1,'socket.h']]],
+  ['guac_5fsocket_5fwrite_5fstring',['guac_socket_write_string',['../socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc',1,'socket.h']]],
+  ['guac_5fstatus_5fstring',['guac_status_string',['../error_8h.html#a39a2290527ea7c3f0acb07f002c397b1',1,'error.h']]],
+  ['guac_5fstrlcat',['guac_strlcat',['../string_8h.html#a0dccfb28be71414fb2a4b1b641799f57',1,'string.h']]],
+  ['guac_5fstrlcpy',['guac_strlcpy',['../string_8h.html#add551909cdd14d762106832a800a5e16',1,'string.h']]],
+  ['guac_5fstrljoin',['guac_strljoin',['../string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f',1,'string.h']]],
+  ['guac_5fsurface_5fcmp',['guac_surface_cmp',['../hash_8h.html#a377c701a920281a98cbcf0842124aaac',1,'hash.h']]],
+  ['guac_5ftimestamp_5fcurrent',['guac_timestamp_current',['../timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719',1,'timestamp.h']]],
+  ['guac_5ftimestamp_5fmsleep',['guac_timestamp_msleep',['../timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868',1,'timestamp.h']]],
+  ['guac_5fuser_5fabort',['guac_user_abort',['../user_8h.html#a0eff54a869374e37237b2006ad77b958',1,'user.h']]],
+  ['guac_5fuser_5falloc',['guac_user_alloc',['../user_8h.html#a586cd1d712dce0db02d57684ddcb02ef',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fobject',['guac_user_alloc_object',['../user_8h.html#a6fa98ba49213d610491248cf085aaf56',1,'user.h']]],
+  ['guac_5fuser_5falloc_5fstream',['guac_user_alloc_stream',['../user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c',1,'user.h']]],
+  ['guac_5fuser_5ffree',['guac_user_free',['../user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fobject',['guac_user_free_object',['../user_8h.html#acf92065fb6bbc92f9794ea50255acdb9',1,'user.h']]],
+  ['guac_5fuser_5ffree_5fstream',['guac_user_free_stream',['../user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5fconnection',['guac_user_handle_connection',['../user_8h.html#a28f08ab54f138796dea4655ef54526fe',1,'user.h']]],
+  ['guac_5fuser_5fhandle_5finstruction',['guac_user_handle_instruction',['../user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78',1,'user.h']]],
+  ['guac_5fuser_5flog',['guac_user_log',['../user_8h.html#ab19481d0800901190d3d734eae466151',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fboolean',['guac_user_parse_args_boolean',['../user_8h.html#a5f0bae838d82357e95e98769f7b98cd2',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fint',['guac_user_parse_args_int',['../user_8h.html#a08f6fd4d84de665487a45fb324dc8844',1,'user.h']]],
+  ['guac_5fuser_5fparse_5fargs_5fstring',['guac_user_parse_args_string',['../user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f',1,'user.h']]],
+  ['guac_5fuser_5fstop',['guac_user_stop',['../user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fargv',['guac_user_stream_argv',['../user_8h.html#aa3f85461f15abfb46fd7c732538b33ea',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fjpeg',['guac_user_stream_jpeg',['../user_8h.html#a6e947ee6996d5711f18d5b785757ccb3',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fpng',['guac_user_stream_png',['../user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630',1,'user.h']]],
+  ['guac_5fuser_5fstream_5fwebp',['guac_user_stream_webp',['../user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8',1,'user.h']]],
+  ['guac_5fuser_5fsupports_5fwebp',['guac_user_supports_webp',['../user_8h.html#a26d186ee6b669c78278124ece46cc8f7',1,'user.h']]],
+  ['guac_5futf8_5fcharsize',['guac_utf8_charsize',['../unicode_8h.html#a423523f1531719c6ab4fafdb02008623',1,'unicode.h']]],
+  ['guac_5futf8_5fread',['guac_utf8_read',['../unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af',1,'unicode.h']]],
+  ['guac_5futf8_5fstrlen',['guac_utf8_strlen',['../unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b',1,'unicode.h']]],
+  ['guac_5futf8_5fwrite',['guac_utf8_write',['../unicode_8h.html#aa49339a4af9952b0b56402825059a2ce',1,'unicode.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/functions_1.html b/doc/1.1.0/libguac/search/functions_1.html
new file mode 100644
index 0000000..abb01de
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/functions_1.js b/doc/1.1.0/libguac/search/functions_1.js
new file mode 100644
index 0000000..ae1b123
--- /dev/null
+++ b/doc/1.1.0/libguac/search/functions_1.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['vguac_5fclient_5fabort',['vguac_client_abort',['../client_8h.html#a4c0eccd7d0ed3dbf3e7941ce297e0224',1,'client.h']]],
+  ['vguac_5fclient_5flog',['vguac_client_log',['../client_8h.html#a37a0fa9cfc4c02236085e3852972f494',1,'client.h']]],
+  ['vguac_5fprotocol_5fsend_5flog',['vguac_protocol_send_log',['../protocol_8h.html#a3a783d771e1727ba2a82b2298acf4ee4',1,'protocol.h']]],
+  ['vguac_5fuser_5fabort',['vguac_user_abort',['../user_8h.html#ad8529247b551cb93509236a7f9138dd2',1,'user.h']]],
+  ['vguac_5fuser_5flog',['vguac_user_log',['../user_8h.html#af15509bcb891932a3fa93a142018b95c',1,'user.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/mag_sel.png b/doc/1.1.0/libguac/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
--- /dev/null
+++ b/doc/1.1.0/libguac/search/mag_sel.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/nomatches.html b/doc/1.1.0/libguac/search/nomatches.html
new file mode 100644
index 0000000..5ad1cca
--- /dev/null
+++ b/doc/1.1.0/libguac/search/nomatches.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/pages_0.html b/doc/1.1.0/libguac/search/pages_0.html
new file mode 100644
index 0000000..10e3212
--- /dev/null
+++ b/doc/1.1.0/libguac/search/pages_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/pages_0.js b/doc/1.1.0/libguac/search/pages_0.js
new file mode 100644
index 0000000..038da54
--- /dev/null
+++ b/doc/1.1.0/libguac/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['deprecated_20list',['Deprecated List',['../deprecated.html',1,'']]]
+];
diff --git a/doc/1.1.0/libguac/search/search.css b/doc/1.1.0/libguac/search/search.css
new file mode 100644
index 0000000..3cf9df9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+    float: left;
+}
+
+#MSearchBox {
+    white-space : nowrap;
+    float: none;
+    margin-top: 8px;
+    right: 0px;
+    width: 170px;
+    height: 24px;
+    z-index: 102;
+}
+
+#MSearchBox .left
+{
+    display:block;
+    position:absolute;
+    left:10px;
+    width:20px;
+    height:19px;
+    background:url('search_l.png') no-repeat;
+    background-position:right;
+}
+
+#MSearchSelect {
+    display:block;
+    position:absolute;
+    width:20px;
+    height:19px;
+}
+
+.left #MSearchSelect {
+    left:4px;
+}
+
+.right #MSearchSelect {
+    right:5px;
+}
+
+#MSearchField {
+    display:block;
+    position:absolute;
+    height:19px;
+    background:url('search_m.png') repeat-x;
+    border:none;
+    width:115px;
+    margin-left:20px;
+    padding-left:4px;
+    color: #909090;
+    outline: none;
+    font: 9pt Arial, Verdana, sans-serif;
+    -webkit-border-radius: 0px;
+}
+
+#FSearchBox #MSearchField {
+    margin-left:15px;
+}
+
+#MSearchBox .right {
+    display:block;
+    position:absolute;
+    right:10px;
+    top:8px;
+    width:20px;
+    height:19px;
+    background:url('search_r.png') no-repeat;
+    background-position:left;
+}
+
+#MSearchClose {
+    display: none;
+    position: absolute;
+    top: 4px;
+    background : none;
+    border: none;
+    margin: 0px 4px 0px 0px;
+    padding: 0px 0px;
+    outline: none;
+}
+
+.left #MSearchClose {
+    left: 6px;
+}
+
+.right #MSearchClose {
+    right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+    color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #90A5CE;
+    background-color: #F9FAFC;
+    z-index: 10001;
+    padding-top: 4px;
+    padding-bottom: 4px;
+    -moz-border-radius: 4px;
+    -webkit-border-top-left-radius: 4px;
+    -webkit-border-top-right-radius: 4px;
+    -webkit-border-bottom-left-radius: 4px;
+    -webkit-border-bottom-right-radius: 4px;
+    -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+    font: 8pt Arial, Verdana, sans-serif;
+    padding-left:  2px;
+    padding-right: 12px;
+    border: 0px;
+}
+
+span.SelectionMark {
+    margin-right: 4px;
+    font-family: monospace;
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem {
+    display: block;
+    outline-style: none;
+    color: #000000; 
+    text-decoration: none;
+    padding-left:   6px;
+    padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+    color: #000000; 
+    outline-style: none;
+    text-decoration: none;
+}
+
+a.SelectItem:hover {
+    color: #FFFFFF;
+    background-color: #3D578C;
+    outline-style: none;
+    text-decoration: none;
+    cursor: pointer;
+    display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+    width: 60ex;
+    height: 15em;
+}
+
+#MSearchResultsWindow {
+    display: none;
+    position: absolute;
+    left: 0; top: 0;
+    border: 1px solid #000;
+    background-color: #EEF1F7;
+    z-index:10000;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+    clear:both; 
+    padding-bottom: 15px;
+}
+
+.SREntry {
+    font-size: 10pt;
+    padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+    font-size: 8pt;
+    padding: 1px 5px;
+}
+
+body.SRPage {
+    margin: 5px 2px;
+}
+
+.SRChildren {
+    padding-left: 3ex; padding-bottom: .5em 
+}
+
+.SRPage .SRChildren {
+    display: none;
+}
+
+.SRSymbol {
+    font-weight: bold; 
+    color: #425E97;
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRScope {
+    display: block;
+    color: #425E97; 
+    font-family: Arial, Verdana, sans-serif;
+    text-decoration: none;
+    outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+    text-decoration: underline;
+}
+
+span.SRScope {
+    padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+    padding: 2px 5px;
+    font-size: 8pt;
+    font-style: italic;
+}
+
+.SRResult {
+    display: none;
+}
+
+DIV.searchresults {
+    margin-left: 10px;
+    margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+    background-color: #F0F3F8;
+}
+
+.pages b {
+   color: white;
+   padding: 5px 5px 3px 5px;
+   background-image: url("../tab_a.png");
+   background-repeat: repeat-x;
+   text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+    line-height: 17px;
+    margin-left: 4px;
+    text-decoration: none;
+}
+
+.hl {
+    font-weight: bold;
+}
+
+#searchresults {
+    margin-bottom: 20px;
+}
+
+.searchpages {
+    margin-top: 10px;
+}
+
diff --git a/doc/1.1.0/libguac/search/search.js b/doc/1.1.0/libguac/search/search.js
new file mode 100644
index 0000000..a554ab9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search.js
@@ -0,0 +1,814 @@
+/*
+ @licstart  The following is the entire license notice for the
+ JavaScript code in this file.
+
+ Copyright (C) 1997-2017 by Dimitri van Heesch
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ @licend  The above is the entire license notice
+ for the JavaScript code in this file
+ */
+function convertToId(search)
+{
+  var result = '';
+  for (i=0;i<search.length;i++)
+  {
+    var c = search.charAt(i);
+    var cn = c.charCodeAt(0);
+    if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+    {
+      result+=c;
+    }
+    else if (cn<16)
+    {
+      result+="_0"+cn.toString(16);
+    }
+    else
+    {
+      result+="_"+cn.toString(16);
+    }
+  }
+  return result;
+}
+
+function getXPos(item)
+{
+  var x = 0;
+  if (item.offsetWidth)
+  {
+    while (item && item!=document.body)
+    {
+      x   += item.offsetLeft;
+      item = item.offsetParent;
+    }
+  }
+  return x;
+}
+
+function getYPos(item)
+{
+  var y = 0;
+  if (item.offsetWidth)
+  {
+     while (item && item!=document.body)
+     {
+       y   += item.offsetTop;
+       item = item.offsetParent;
+     }
+  }
+  return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+   Parameters:
+   name - The name of the global variable that will be
+          storing this instance.  Is needed to be able to set timeouts.
+   resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+  if (!name || !resultsPath) {  alert("Missing parameters to SearchBox."); }
+
+  // ---------- Instance variables
+  this.name                  = name;
+  this.resultsPath           = resultsPath;
+  this.keyTimeout            = 0;
+  this.keyTimeoutLength      = 500;
+  this.closeSelectionTimeout = 300;
+  this.lastSearchValue       = "";
+  this.lastResultsPage       = "";
+  this.hideTimeout           = 0;
+  this.searchIndex           = 0;
+  this.searchActive          = false;
+  this.insideFrame           = inFrame;
+  this.searchLabel           = label;
+
+  // ----------- DOM Elements
+
+  this.DOMSearchField = function()
+  {  return document.getElementById("MSearchField");  }
+
+  this.DOMSearchSelect = function()
+  {  return document.getElementById("MSearchSelect");  }
+
+  this.DOMSearchSelectWindow = function()
+  {  return document.getElementById("MSearchSelectWindow");  }
+
+  this.DOMPopupSearchResults = function()
+  {  return document.getElementById("MSearchResults");  }
+
+  this.DOMPopupSearchResultsWindow = function()
+  {  return document.getElementById("MSearchResultsWindow");  }
+
+  this.DOMSearchClose = function()
+  {  return document.getElementById("MSearchClose"); }
+
+  this.DOMSearchBox = function()
+  {  return document.getElementById("MSearchBox");  }
+
+  // ------------ Event Handlers
+
+  // Called when focus is added or removed from the search field.
+  this.OnSearchFieldFocus = function(isActive)
+  {
+    this.Activate(isActive);
+  }
+
+  this.OnSearchSelectShow = function()
+  {
+    var searchSelectWindow = this.DOMSearchSelectWindow();
+    var searchField        = this.DOMSearchSelect();
+
+    if (this.insideFrame)
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      left += searchField.offsetWidth + 6;
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      left -= searchSelectWindow.offsetWidth;
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+    else
+    {
+      var left = getXPos(searchField);
+      var top  = getYPos(searchField);
+      top += searchField.offsetHeight;
+
+      // show search selection popup
+      searchSelectWindow.style.display='block';
+      searchSelectWindow.style.left =  left + 'px';
+      searchSelectWindow.style.top  =  top  + 'px';
+    }
+
+    // stop selection hide timer
+    if (this.hideTimeout)
+    {
+      clearTimeout(this.hideTimeout);
+      this.hideTimeout=0;
+    }
+    return false; // to avoid "image drag" default event
+  }
+
+  this.OnSearchSelectHide = function()
+  {
+    this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+                                  this.closeSelectionTimeout);
+  }
+
+  // Called when the content of the search field is changed.
+  this.OnSearchFieldChange = function(evt)
+  {
+    if (this.keyTimeout) // kill running timer
+    {
+      clearTimeout(this.keyTimeout);
+      this.keyTimeout = 0;
+    }
+
+    var e  = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 || e.keyCode==13)
+    {
+      if (e.shiftKey==1)
+      {
+        this.OnSearchSelectShow();
+        var win=this.DOMSearchSelectWindow();
+        for (i=0;i<win.childNodes.length;i++)
+        {
+          var child = win.childNodes[i]; // get span within a
+          if (child.className=='SelectItem')
+          {
+            child.focus();
+            return;
+          }
+        }
+        return;
+      }
+      else if (window.frames.MSearchResults.searchResults)
+      {
+        var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+        if (elem) elem.focus();
+      }
+    }
+    else if (e.keyCode==27) // Escape out of the search field
+    {
+      this.DOMSearchField().blur();
+      this.DOMPopupSearchResultsWindow().style.display = 'none';
+      this.DOMSearchClose().style.display = 'none';
+      this.lastSearchValue = '';
+      this.Activate(false);
+      return;
+    }
+
+    // strip whitespaces
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+    if (searchValue != this.lastSearchValue) // search value has changed
+    {
+      if (searchValue != "") // non-empty search
+      {
+        // set timer for search update
+        this.keyTimeout = setTimeout(this.name + '.Search()',
+                                     this.keyTimeoutLength);
+      }
+      else // empty search field
+      {
+        this.DOMPopupSearchResultsWindow().style.display = 'none';
+        this.DOMSearchClose().style.display = 'none';
+        this.lastSearchValue = '';
+      }
+    }
+  }
+
+  this.SelectItemCount = function(id)
+  {
+    var count=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        count++;
+      }
+    }
+    return count;
+  }
+
+  this.SelectItemSet = function(id)
+  {
+    var i,j=0;
+    var win=this.DOMSearchSelectWindow();
+    for (i=0;i<win.childNodes.length;i++)
+    {
+      var child = win.childNodes[i]; // get span within a
+      if (child.className=='SelectItem')
+      {
+        var node = child.firstChild;
+        if (j==id)
+        {
+          node.innerHTML='&#8226;';
+        }
+        else
+        {
+          node.innerHTML='&#160;';
+        }
+        j++;
+      }
+    }
+  }
+
+  // Called when an search filter selection is made.
+  // set item with index id as the active item
+  this.OnSelectItem = function(id)
+  {
+    this.searchIndex = id;
+    this.SelectItemSet(id);
+    var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+    if (searchValue!="" && this.searchActive) // something was found -> do a search
+    {
+      this.Search();
+    }
+  }
+
+  this.OnSearchSelectKey = function(evt)
+  {
+    var e = (evt) ? evt : window.event; // for IE
+    if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+    {
+      this.searchIndex++;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==38 && this.searchIndex>0) // Up
+    {
+      this.searchIndex--;
+      this.OnSelectItem(this.searchIndex);
+    }
+    else if (e.keyCode==13 || e.keyCode==27)
+    {
+      this.OnSelectItem(this.searchIndex);
+      this.CloseSelectionWindow();
+      this.DOMSearchField().focus();
+    }
+    return false;
+  }
+
+  // --------- Actions
+
+  // Closes the results window.
+  this.CloseResultsWindow = function()
+  {
+    this.DOMPopupSearchResultsWindow().style.display = 'none';
+    this.DOMSearchClose().style.display = 'none';
+    this.Activate(false);
+  }
+
+  this.CloseSelectionWindow = function()
+  {
+    this.DOMSearchSelectWindow().style.display = 'none';
+  }
+
+  // Performs a search.
+  this.Search = function()
+  {
+    this.keyTimeout = 0;
+
+    // strip leading whitespace
+    var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+    var code = searchValue.toLowerCase().charCodeAt(0);
+    var idxChar = searchValue.substr(0, 1).toLowerCase();
+    if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+    {
+      idxChar = searchValue.substr(0, 2);
+    }
+
+    var resultsPage;
+    var resultsPageWithSearch;
+    var hasResultsPage;
+
+    var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+    if (idx!=-1)
+    {
+       var hexCode=idx.toString(16);
+       resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+       resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+       hasResultsPage = true;
+    }
+    else // nothing available for this search term
+    {
+       resultsPage = this.resultsPath + '/nomatches.html';
+       resultsPageWithSearch = resultsPage;
+       hasResultsPage = false;
+    }
+
+    window.frames.MSearchResults.location = resultsPageWithSearch;
+    var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+    if (domPopupSearchResultsWindow.style.display!='block')
+    {
+       var domSearchBox = this.DOMSearchBox();
+       this.DOMSearchClose().style.display = 'inline';
+       if (this.insideFrame)
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         domPopupSearchResultsWindow.style.position = 'relative';
+         domPopupSearchResultsWindow.style.display  = 'block';
+         var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+         domPopupSearchResultsWindow.style.width    = width + 'px';
+         domPopupSearchResults.style.width          = width + 'px';
+       }
+       else
+       {
+         var domPopupSearchResults = this.DOMPopupSearchResults();
+         var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+         var top  = getYPos(domSearchBox) + 20;  // domSearchBox.offsetHeight + 1;
+         domPopupSearchResultsWindow.style.display = 'block';
+         left -= domPopupSearchResults.offsetWidth;
+         domPopupSearchResultsWindow.style.top     = top  + 'px';
+         domPopupSearchResultsWindow.style.left    = left + 'px';
+       }
+    }
+
+    this.lastSearchValue = searchValue;
+    this.lastResultsPage = resultsPage;
+  }
+
+  // -------- Activation Functions
+
+  // Activates or deactivates the search panel, resetting things to
+  // their default values if necessary.
+  this.Activate = function(isActive)
+  {
+    if (isActive || // open it
+        this.DOMPopupSearchResultsWindow().style.display == 'block'
+       )
+    {
+      this.DOMSearchBox().className = 'MSearchBoxActive';
+
+      var searchField = this.DOMSearchField();
+
+      if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+      {
+        searchField.value = '';
+        this.searchActive = true;
+      }
+    }
+    else if (!isActive) // directly remove the panel
+    {
+      this.DOMSearchBox().className = 'MSearchBoxInactive';
+      this.DOMSearchField().value   = this.searchLabel;
+      this.searchActive             = false;
+      this.lastSearchValue          = ''
+      this.lastResultsPage          = '';
+    }
+  }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+    // The number of matches from the last run of <Search()>.
+    this.lastMatchCount = 0;
+    this.lastKey = 0;
+    this.repeatOn = false;
+
+    // Toggles the visibility of the passed element ID.
+    this.FindChildElement = function(id)
+    {
+      var parentElement = document.getElementById(id);
+      var element = parentElement.firstChild;
+
+      while (element && element!=parentElement)
+      {
+        if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+        {
+          return element;
+        }
+
+        if (element.nodeName == 'DIV' && element.hasChildNodes())
+        {
+           element = element.firstChild;
+        }
+        else if (element.nextSibling)
+        {
+           element = element.nextSibling;
+        }
+        else
+        {
+          do
+          {
+            element = element.parentNode;
+          }
+          while (element && element!=parentElement && !element.nextSibling);
+
+          if (element && element!=parentElement)
+          {
+            element = element.nextSibling;
+          }
+        }
+      }
+    }
+
+    this.Toggle = function(id)
+    {
+      var element = this.FindChildElement(id);
+      if (element)
+      {
+        if (element.style.display == 'block')
+        {
+          element.style.display = 'none';
+        }
+        else
+        {
+          element.style.display = 'block';
+        }
+      }
+    }
+
+    // Searches for the passed string.  If there is no parameter,
+    // it takes it from the URL query.
+    //
+    // Always returns true, since other documents may try to call it
+    // and that may or may not be possible.
+    this.Search = function(search)
+    {
+      if (!search) // get search word from URL
+      {
+        search = window.location.search;
+        search = search.substring(1);  // Remove the leading '?'
+        search = unescape(search);
+      }
+
+      search = search.replace(/^ +/, ""); // strip leading spaces
+      search = search.replace(/ +$/, ""); // strip trailing spaces
+      search = search.toLowerCase();
+      search = convertToId(search);
+
+      var resultRows = document.getElementsByTagName("div");
+      var matches = 0;
+
+      var i = 0;
+      while (i < resultRows.length)
+      {
+        var row = resultRows.item(i);
+        if (row.className == "SRResult")
+        {
+          var rowMatchName = row.id.toLowerCase();
+          rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+          if (search.length<=rowMatchName.length &&
+             rowMatchName.substr(0, search.length)==search)
+          {
+            row.style.display = 'block';
+            matches++;
+          }
+          else
+          {
+            row.style.display = 'none';
+          }
+        }
+        i++;
+      }
+      document.getElementById("Searching").style.display='none';
+      if (matches == 0) // no results
+      {
+        document.getElementById("NoMatches").style.display='block';
+      }
+      else // at least one result
+      {
+        document.getElementById("NoMatches").style.display='none';
+      }
+      this.lastMatchCount = matches;
+      return true;
+    }
+
+    // return the first item with index index or higher that is visible
+    this.NavNext = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index++;
+      }
+      return focusItem;
+    }
+
+    this.NavPrev = function(index)
+    {
+      var focusItem;
+      while (1)
+      {
+        var focusName = 'Item'+index;
+        focusItem = document.getElementById(focusName);
+        if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+        {
+          break;
+        }
+        else if (!focusItem) // last element
+        {
+          break;
+        }
+        focusItem=null;
+        index--;
+      }
+      return focusItem;
+    }
+
+    this.ProcessKeys = function(e)
+    {
+      if (e.type == "keydown")
+      {
+        this.repeatOn = false;
+        this.lastKey = e.keyCode;
+      }
+      else if (e.type == "keypress")
+      {
+        if (!this.repeatOn)
+        {
+          if (this.lastKey) this.repeatOn = true;
+          return false; // ignore first keypress after keydown
+        }
+      }
+      else if (e.type == "keyup")
+      {
+        this.lastKey = 0;
+        this.repeatOn = false;
+      }
+      return this.lastKey!=0;
+    }
+
+    this.Nav = function(evt,itemIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        var newIndex = itemIndex-1;
+        var focusItem = this.NavPrev(newIndex);
+        if (focusItem)
+        {
+          var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+          if (child && child.style.display == 'block') // children visible
+          {
+            var n=0;
+            var tmpElem;
+            while (1) // search for last child
+            {
+              tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+              if (tmpElem)
+              {
+                focusItem = tmpElem;
+              }
+              else // found it!
+              {
+                break;
+              }
+              n++;
+            }
+          }
+        }
+        if (focusItem)
+        {
+          focusItem.focus();
+        }
+        else // return focus to search field
+        {
+           parent.document.getElementById("MSearchField").focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = itemIndex+1;
+        var focusItem;
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem && elem.style.display == 'block') // children visible
+        {
+          focusItem = document.getElementById('Item'+itemIndex+'_c0');
+        }
+        if (!focusItem) focusItem = this.NavNext(newIndex);
+        if (focusItem)  focusItem.focus();
+      }
+      else if (this.lastKey==39) // Right
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'block';
+      }
+      else if (this.lastKey==37) // Left
+      {
+        var item = document.getElementById('Item'+itemIndex);
+        var elem = this.FindChildElement(item.parentNode.parentNode.id);
+        if (elem) elem.style.display = 'none';
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+
+    this.NavChild = function(evt,itemIndex,childIndex)
+    {
+      var e  = (evt) ? evt : window.event; // for IE
+      if (e.keyCode==13) return true;
+      if (!this.ProcessKeys(e)) return false;
+
+      if (this.lastKey==38) // Up
+      {
+        if (childIndex>0)
+        {
+          var newIndex = childIndex-1;
+          document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+        }
+        else // already at first child, jump to parent
+        {
+          document.getElementById('Item'+itemIndex).focus();
+        }
+      }
+      else if (this.lastKey==40) // Down
+      {
+        var newIndex = childIndex+1;
+        var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+        if (!elem) // last child, jump to parent next parent
+        {
+          elem = this.NavNext(itemIndex+1);
+        }
+        if (elem)
+        {
+          elem.focus();
+        }
+      }
+      else if (this.lastKey==27) // Escape
+      {
+        parent.searchBox.CloseResultsWindow();
+        parent.document.getElementById("MSearchField").focus();
+      }
+      else if (this.lastKey==13) // Enter
+      {
+        return true;
+      }
+      return false;
+    }
+}
+
+function setKeyActions(elem,action)
+{
+  elem.setAttribute('onkeydown',action);
+  elem.setAttribute('onkeypress',action);
+  elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+  elem.setAttribute('class',attr);
+  elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+  var results = document.getElementById("SRResults");
+  for (var e=0; e<searchData.length; e++)
+  {
+    var id = searchData[e][0];
+    var srResult = document.createElement('div');
+    srResult.setAttribute('id','SR_'+id);
+    setClassAttr(srResult,'SRResult');
+    var srEntry = document.createElement('div');
+    setClassAttr(srEntry,'SREntry');
+    var srLink = document.createElement('a');
+    srLink.setAttribute('id','Item'+e);
+    setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+    setClassAttr(srLink,'SRSymbol');
+    srLink.innerHTML = searchData[e][1][0];
+    srEntry.appendChild(srLink);
+    if (searchData[e][1].length==2) // single result
+    {
+      srLink.setAttribute('href',searchData[e][1][1][0]);
+      if (searchData[e][1][1][1])
+      {
+       srLink.setAttribute('target','_parent');
+      }
+      var srScope = document.createElement('span');
+      setClassAttr(srScope,'SRScope');
+      srScope.innerHTML = searchData[e][1][1][2];
+      srEntry.appendChild(srScope);
+    }
+    else // multiple results
+    {
+      srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+      var srChildren = document.createElement('div');
+      setClassAttr(srChildren,'SRChildren');
+      for (var c=0; c<searchData[e][1].length-1; c++)
+      {
+        var srChild = document.createElement('a');
+        srChild.setAttribute('id','Item'+e+'_c'+c);
+        setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+        setClassAttr(srChild,'SRScope');
+        srChild.setAttribute('href',searchData[e][1][c+1][0]);
+        if (searchData[e][1][c+1][1])
+        {
+         srChild.setAttribute('target','_parent');
+        }
+        srChild.innerHTML = searchData[e][1][c+1][2];
+        srChildren.appendChild(srChild);
+      }
+      srEntry.appendChild(srChildren);
+    }
+    srResult.appendChild(srEntry);
+    results.appendChild(srResult);
+  }
+}
+
+function init_search()
+{
+  var results = document.getElementById("MSearchSelectWindow");
+  for (var key in indexSectionLabels)
+  {
+    var link = document.createElement('a');
+    link.setAttribute('class','SelectItem');
+    link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
+    link.href='javascript:void(0)';
+    link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
+    results.appendChild(link);
+  }
+  searchBox.OnSelectItem(0);
+}
+/* @license-end */
diff --git a/doc/1.1.0/libguac/search/search_l.png b/doc/1.1.0/libguac/search/search_l.png
new file mode 100644
index 0000000..c872f4d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search_l.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/search_m.png b/doc/1.1.0/libguac/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search_m.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/search_r.png b/doc/1.1.0/libguac/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
--- /dev/null
+++ b/doc/1.1.0/libguac/search/search_r.png
Binary files differ
diff --git a/doc/1.1.0/libguac/search/searchdata.js b/doc/1.1.0/libguac/search/searchdata.js
new file mode 100644
index 0000000..0c06570
--- /dev/null
+++ b/doc/1.1.0/libguac/search/searchdata.js
@@ -0,0 +1,42 @@
+var indexSectionsWithContent =
+{
+  0: "abcdefghijklmoprstuvw",
+  1: "g",
+  2: "acehlopstu",
+  3: "gv",
+  4: "abcdefgijklmoprstuvw",
+  5: "g",
+  6: "g",
+  7: "g",
+  8: "g",
+  9: "d"
+};
+
+var indexSectionNames =
+{
+  0: "all",
+  1: "classes",
+  2: "files",
+  3: "functions",
+  4: "variables",
+  5: "typedefs",
+  6: "enums",
+  7: "enumvalues",
+  8: "defines",
+  9: "pages"
+};
+
+var indexSectionLabels =
+{
+  0: "All",
+  1: "Data Structures",
+  2: "Files",
+  3: "Functions",
+  4: "Variables",
+  5: "Typedefs",
+  6: "Enumerations",
+  7: "Enumerator",
+  8: "Macros",
+  9: "Pages"
+};
+
diff --git a/doc/1.1.0/libguac/search/typedefs_0.html b/doc/1.1.0/libguac/search/typedefs_0.html
new file mode 100644
index 0000000..791fb16
--- /dev/null
+++ b/doc/1.1.0/libguac/search/typedefs_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/typedefs_0.js b/doc/1.1.0/libguac/search/typedefs_0.js
new file mode 100644
index 0000000..95b84e2
--- /dev/null
+++ b/doc/1.1.0/libguac/search/typedefs_0.js
@@ -0,0 +1,36 @@
+var searchData=
+[
+  ['guac_5faudio_5fencoder_5fbegin_5fhandler',['guac_audio_encoder_begin_handler',['../audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fend_5fhandler',['guac_audio_encoder_end_handler',['../audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fflush_5fhandler',['guac_audio_encoder_flush_handler',['../audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fjoin_5fhandler',['guac_audio_encoder_join_handler',['../audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e',1,'audio-fntypes.h']]],
+  ['guac_5faudio_5fencoder_5fwrite_5fhandler',['guac_audio_encoder_write_handler',['../audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a',1,'audio-fntypes.h']]],
+  ['guac_5fclient_5ffree_5fhandler',['guac_client_free_handler',['../client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577',1,'client-fntypes.h']]],
+  ['guac_5fclient_5finit_5fhandler',['guac_client_init_handler',['../client-fntypes_8h.html#a905b087a47315e1836293839daf1f46c',1,'client-fntypes.h']]],
+  ['guac_5fclient_5flog_5fhandler',['guac_client_log_handler',['../client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c',1,'client-fntypes.h']]],
+  ['guac_5fsocket_5fflush_5fhandler',['guac_socket_flush_handler',['../socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5ffree_5fhandler',['guac_socket_free_handler',['../socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5flock_5fhandler',['guac_socket_lock_handler',['../socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fread_5fhandler',['guac_socket_read_handler',['../socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fselect_5fhandler',['guac_socket_select_handler',['../socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5funlock_5fhandler',['guac_socket_unlock_handler',['../socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f',1,'socket-fntypes.h']]],
+  ['guac_5fsocket_5fwrite_5fhandler',['guac_socket_write_handler',['../socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a',1,'socket-fntypes.h']]],
+  ['guac_5ftimestamp',['guac_timestamp',['../timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea',1,'timestamp-types.h']]],
+  ['guac_5fuser_5fack_5fhandler',['guac_user_ack_handler',['../user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fargv_5fhandler',['guac_user_argv_handler',['../user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a',1,'user-fntypes.h']]],
+  ['guac_5fuser_5faudio_5fhandler',['guac_user_audio_handler',['../user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fblob_5fhandler',['guac_user_blob_handler',['../user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fcallback',['guac_user_callback',['../user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fclipboard_5fhandler',['guac_user_clipboard_handler',['../user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fend_5fhandler',['guac_user_end_handler',['../user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca',1,'user-fntypes.h']]],
+  ['guac_5fuser_5ffile_5fhandler',['guac_user_file_handler',['../user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fget_5fhandler',['guac_user_get_handler',['../user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fjoin_5fhandler',['guac_user_join_handler',['../user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fkey_5fhandler',['guac_user_key_handler',['../user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fleave_5fhandler',['guac_user_leave_handler',['../user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fmouse_5fhandler',['guac_user_mouse_handler',['../user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fpipe_5fhandler',['guac_user_pipe_handler',['../user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fput_5fhandler',['guac_user_put_handler',['../user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsize_5fhandler',['guac_user_size_handler',['../user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f',1,'user-fntypes.h']]],
+  ['guac_5fuser_5fsync_5fhandler',['guac_user_sync_handler',['../user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539',1,'user-fntypes.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_0.html b/doc/1.1.0/libguac/search/variables_0.html
new file mode 100644
index 0000000..1ab8c6a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_0.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_0.js b/doc/1.1.0/libguac/search/variables_0.js
new file mode 100644
index 0000000..4c44e8b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_0.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+  ['ack_5fhandler',['ack_handler',['../structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff',1,'guac_stream::ack_handler()'],['../structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be',1,'guac_user::ack_handler()']]],
+  ['active',['active',['../structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3',1,'guac_pool::active()'],['../structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd',1,'guac_user::active()']]],
+  ['argc',['argc',['../structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe',1,'guac_parser']]],
+  ['args',['args',['../structguac__client.html#a0e07a8086579ede2c692460998a87cac',1,'guac_client']]],
+  ['argv',['argv',['../structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701',1,'guac_parser']]],
+  ['argv_5fhandler',['argv_handler',['../structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a',1,'guac_user']]],
+  ['audio_5fhandler',['audio_handler',['../structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69',1,'guac_user']]],
+  ['audio_5fmimetypes',['audio_mimetypes',['../structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_1.html b/doc/1.1.0/libguac/search/variables_1.html
new file mode 100644
index 0000000..0b0cd0e
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_1.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_1.js b/doc/1.1.0/libguac/search/variables_1.js
new file mode 100644
index 0000000..86c920a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['begin_5fhandler',['begin_handler',['../structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6',1,'guac_audio_encoder']]],
+  ['blob_5fhandler',['blob_handler',['../structguac__stream.html#a51122ba04f416d8ce047542c603632f8',1,'guac_stream::blob_handler()'],['../structguac__user.html#a88a14fda25c9929269d198d4d602f7fb',1,'guac_user::blob_handler()']]],
+  ['bps',['bps',['../structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866',1,'guac_audio_stream']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_10.html b/doc/1.1.0/libguac/search/variables_10.html
new file mode 100644
index 0000000..753473f
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_10.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_10.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_10.js b/doc/1.1.0/libguac/search/variables_10.js
new file mode 100644
index 0000000..7bc40a3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_10.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['timezone',['timezone',['../structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_11.html b/doc/1.1.0/libguac/search/variables_11.html
new file mode 100644
index 0000000..acc8392
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_11.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_11.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_11.js b/doc/1.1.0/libguac/search/variables_11.js
new file mode 100644
index 0000000..c9eb0ec
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_11.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['unlock_5fhandler',['unlock_handler',['../structguac__socket.html#a67be8367b5e1b330ee151b22c692500b',1,'guac_socket']]],
+  ['user_5fid',['user_id',['../structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_12.html b/doc/1.1.0/libguac/search/variables_12.html
new file mode 100644
index 0000000..e1b904a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_12.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_12.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_12.js b/doc/1.1.0/libguac/search/variables_12.js
new file mode 100644
index 0000000..1619d15
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_12.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['value',['value',['../structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4',1,'guac_pool_int']]],
+  ['video_5fmimetypes',['video_mimetypes',['../structguac__user__info.html#ace535bea6879596b6473657f3fc83b57',1,'guac_user_info']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_13.html b/doc/1.1.0/libguac/search/variables_13.html
new file mode 100644
index 0000000..73d7a12
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_13.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_13.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_13.js b/doc/1.1.0/libguac/search/variables_13.js
new file mode 100644
index 0000000..50a5677
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_13.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['write_5fhandler',['write_handler',['../structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74',1,'guac_audio_encoder::write_handler()'],['../structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d',1,'guac_socket::write_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_2.html b/doc/1.1.0/libguac/search/variables_2.html
new file mode 100644
index 0000000..b421570
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_2.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_2.js b/doc/1.1.0/libguac/search/variables_2.js
new file mode 100644
index 0000000..befc009
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_2.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+  ['channels',['channels',['../structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6',1,'guac_audio_stream']]],
+  ['client',['client',['../structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba',1,'guac_audio_stream::client()'],['../structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf',1,'guac_user::client()']]],
+  ['clipboard_5fhandler',['clipboard_handler',['../structguac__user.html#a77f042802092c8bbf4407836f3185343',1,'guac_user']]],
+  ['connected_5fusers',['connected_users',['../structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2',1,'guac_client']]],
+  ['connection_5fid',['connection_id',['../structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094',1,'guac_client']]],
+  ['context',['context',['../structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f',1,'guac_socket_ssl_data']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_3.html b/doc/1.1.0/libguac/search/variables_3.html
new file mode 100644
index 0000000..fdd852d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_3.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_3.js b/doc/1.1.0/libguac/search/variables_3.js
new file mode 100644
index 0000000..dfec7e5
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['data',['data',['../structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7',1,'guac_audio_stream::data()'],['../structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3',1,'guac_client::data()'],['../structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e',1,'guac_object::data()'],['../structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d',1,'guac_socket::data()'],['../structguac__stream.html#acdf20063ca408431862d901c9445b429',1,'guac_stream::data()'],['../structguac__user.html#ad424a52c5d996e4a33de5dad61555883',1,'guac_user::data()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_4.html b/doc/1.1.0/libguac/search/variables_4.html
new file mode 100644
index 0000000..b53af57
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_4.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_4.js b/doc/1.1.0/libguac/search/variables_4.js
new file mode 100644
index 0000000..6d7ea7f
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['encoder',['encoder',['../structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d',1,'guac_audio_stream']]],
+  ['end_5fhandler',['end_handler',['../structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92',1,'guac_audio_encoder::end_handler()'],['../structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db',1,'guac_stream::end_handler()'],['../structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed',1,'guac_user::end_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_5.html b/doc/1.1.0/libguac/search/variables_5.html
new file mode 100644
index 0000000..bea243c
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_5.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_5.js b/doc/1.1.0/libguac/search/variables_5.js
new file mode 100644
index 0000000..dc114ca
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_5.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+  ['fd',['fd',['../structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a',1,'guac_socket_ssl_data']]],
+  ['file_5fhandler',['file_handler',['../structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474',1,'guac_user']]],
+  ['flush_5fhandler',['flush_handler',['../structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0',1,'guac_audio_encoder::flush_handler()'],['../structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b',1,'guac_socket::flush_handler()']]],
+  ['free_5fhandler',['free_handler',['../structguac__client.html#a79e29c931fd448cf51f7153fea064169',1,'guac_client::free_handler()'],['../structguac__socket.html#a1044cde496cfe11c914c623dc1e29678',1,'guac_socket::free_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_6.html b/doc/1.1.0/libguac/search/variables_6.html
new file mode 100644
index 0000000..ab2d4ae
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_6.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_6.js b/doc/1.1.0/libguac/search/variables_6.js
new file mode 100644
index 0000000..5a1476b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_6.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['get_5fhandler',['get_handler',['../structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21',1,'guac_object::get_handler()'],['../structguac__user.html#ada73c04bbf06de4280f2d7679190a19b',1,'guac_user::get_handler()']]],
+  ['guac_5fdefault_5flayer',['GUAC_DEFAULT_LAYER',['../client_8h.html#a336a485c006394d5eea88bf6d8d422d8',1,'client.h']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_7.html b/doc/1.1.0/libguac/search/variables_7.html
new file mode 100644
index 0000000..d23ac19
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_7.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_7.js b/doc/1.1.0/libguac/search/variables_7.js
new file mode 100644
index 0000000..d615f47
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_7.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['image_5fmimetypes',['image_mimetypes',['../structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345',1,'guac_user_info']]],
+  ['index',['index',['../structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba',1,'guac_layer::index()'],['../structguac__object.html#a643f03695d246bbf73b5c4942755a4b4',1,'guac_object::index()'],['../structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60',1,'guac_stream::index()']]],
+  ['info',['info',['../structguac__user.html#a0120f63e0eb933761666047ed80e483f',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_8.html b/doc/1.1.0/libguac/search/variables_8.html
new file mode 100644
index 0000000..30414c7
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_8.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_8.js b/doc/1.1.0/libguac/search/variables_8.js
new file mode 100644
index 0000000..9565ecb
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_8.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['join_5fhandler',['join_handler',['../structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b',1,'guac_audio_encoder::join_handler()'],['../structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3',1,'guac_client::join_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_9.html b/doc/1.1.0/libguac/search/variables_9.html
new file mode 100644
index 0000000..3423094
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_9.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_9.js b/doc/1.1.0/libguac/search/variables_9.js
new file mode 100644
index 0000000..deb3a4b
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+  ['key_5fhandler',['key_handler',['../structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_a.html b/doc/1.1.0/libguac/search/variables_a.html
new file mode 100644
index 0000000..9bda13c
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_a.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_a.js b/doc/1.1.0/libguac/search/variables_a.js
new file mode 100644
index 0000000..d5fafa9
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_a.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['last_5fframe_5fduration',['last_frame_duration',['../structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060',1,'guac_user']]],
+  ['last_5freceived_5ftimestamp',['last_received_timestamp',['../structguac__user.html#aebdee192ef52dfe8956c776adc65fb16',1,'guac_user']]],
+  ['last_5fsent_5ftimestamp',['last_sent_timestamp',['../structguac__client.html#a0f3069566c7a5ca76ce4369715589dad',1,'guac_client']]],
+  ['last_5fwrite_5ftimestamp',['last_write_timestamp',['../structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51',1,'guac_socket']]],
+  ['leave_5fhandler',['leave_handler',['../structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6',1,'guac_client::leave_handler()'],['../structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f',1,'guac_user::leave_handler()']]],
+  ['lock_5fhandler',['lock_handler',['../structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471',1,'guac_socket']]],
+  ['log_5fhandler',['log_handler',['../structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43',1,'guac_client']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_b.html b/doc/1.1.0/libguac/search/variables_b.html
new file mode 100644
index 0000000..f7d20a6
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_b.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_b.js b/doc/1.1.0/libguac/search/variables_b.js
new file mode 100644
index 0000000..d27d66d
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['mimetype',['mimetype',['../structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b',1,'guac_audio_encoder']]],
+  ['min_5fsize',['min_size',['../structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e',1,'guac_pool']]],
+  ['mouse_5fhandler',['mouse_handler',['../structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_c.html b/doc/1.1.0/libguac/search/variables_c.html
new file mode 100644
index 0000000..c73de09
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_c.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_c.js b/doc/1.1.0/libguac/search/variables_c.js
new file mode 100644
index 0000000..c24d1a5
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_c.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+  ['opcode',['opcode',['../structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1',1,'guac_parser']]],
+  ['optimal_5fheight',['optimal_height',['../structguac__user__info.html#a252079af642b62554566e8675dc43354',1,'guac_user_info']]],
+  ['optimal_5fresolution',['optimal_resolution',['../structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7',1,'guac_user_info']]],
+  ['optimal_5fwidth',['optimal_width',['../structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66',1,'guac_user_info']]],
+  ['owner',['owner',['../structguac__user.html#a265180af7291745b2e090ee6fa47cbb8',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_d.html b/doc/1.1.0/libguac/search/variables_d.html
new file mode 100644
index 0000000..6e7aa80
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_d.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_d.js b/doc/1.1.0/libguac/search/variables_d.js
new file mode 100644
index 0000000..7ed0642
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_d.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+  ['pipe_5fhandler',['pipe_handler',['../structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3',1,'guac_user']]],
+  ['processing_5flag',['processing_lag',['../structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e',1,'guac_user']]],
+  ['put_5fhandler',['put_handler',['../structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6',1,'guac_object::put_handler()'],['../structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3',1,'guac_user::put_handler()']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_e.html b/doc/1.1.0/libguac/search/variables_e.html
new file mode 100644
index 0000000..66df0a3
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_e.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_e.js b/doc/1.1.0/libguac/search/variables_e.js
new file mode 100644
index 0000000..3b14e0a
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_e.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+  ['rate',['rate',['../structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9',1,'guac_audio_stream']]],
+  ['read_5fhandler',['read_handler',['../structguac__socket.html#a10042a8e591737aec8d4db5a3423b250',1,'guac_socket']]]
+];
diff --git a/doc/1.1.0/libguac/search/variables_f.html b/doc/1.1.0/libguac/search/variables_f.html
new file mode 100644
index 0000000..a026c20
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_f.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+createResults();
+/* @license-end */
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+/* @license-end */
+--></script>
+</div>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/search/variables_f.js b/doc/1.1.0/libguac/search/variables_f.js
new file mode 100644
index 0000000..4f14c14
--- /dev/null
+++ b/doc/1.1.0/libguac/search/variables_f.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+  ['select_5fhandler',['select_handler',['../structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f',1,'guac_socket']]],
+  ['size_5fhandler',['size_handler',['../structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a',1,'guac_user']]],
+  ['socket',['socket',['../structguac__client.html#aa634856fd3c522377ba7345f3308000e',1,'guac_client::socket()'],['../structguac__user.html#a8496638b8c4c52f5f15d483b92becf27',1,'guac_user::socket()']]],
+  ['ssl',['ssl',['../structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac',1,'guac_socket_ssl_data']]],
+  ['state',['state',['../structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53',1,'guac_client::state()'],['../structguac__parser.html#a2773500f91b3cdb7de7bdea280228054',1,'guac_parser::state()'],['../structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b',1,'guac_socket::state()']]],
+  ['stream',['stream',['../structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894',1,'guac_audio_stream']]],
+  ['sync_5fhandler',['sync_handler',['../structguac__user.html#a209e83f080baf2e84d04cf08395374d2',1,'guac_user']]]
+];
diff --git a/doc/1.1.0/libguac/socket-constants_8h.html b/doc/1.1.0/libguac/socket-constants_8h.html
new file mode 100644
index 0000000..45bf279
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-constants_8h.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:af93053e27466c566624301d7b32a68c3"><td class="memItemLeft" align="right" valign="top"><a id="af93053e27466c566624301d7b32a68c3"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">GUAC_SOCKET_OUTPUT_BUFFER_SIZE</a>&#160;&#160;&#160;8192</td></tr>
+<tr class="memdesc:af93053e27466c566624301d7b32a68c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of bytes to buffer within each socket before flushing. <br /></td></tr>
+<tr class="separator:af93053e27466c566624301d7b32a68c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8820e76e3d3471bdc8771591ebf29f7"><td class="memItemLeft" align="right" valign="top"><a id="aa8820e76e3d3471bdc8771591ebf29f7"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">GUAC_SOCKET_KEEP_ALIVE_INTERVAL</a>&#160;&#160;&#160;5000</td></tr>
+<tr class="memdesc:aa8820e76e3d3471bdc8771591ebf29f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of milliseconds to wait between keep-alive pings on a socket with keep-alive enabled. <br /></td></tr>
+<tr class="separator:aa8820e76e3d3471bdc8771591ebf29f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-constants_8h_source.html b/doc/1.1.0/libguac/socket-constants_8h_source.html
new file mode 100644
index 0000000..7bfc833
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="socket-constants_8h.html#af93053e27466c566624301d7b32a68c3">   32</a></span>&#160;<span class="preprocessor">#define GUAC_SOCKET_OUTPUT_BUFFER_SIZE 8192</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="socket-constants_8h.html#aa8820e76e3d3471bdc8771591ebf29f7">   38</a></span>&#160;<span class="preprocessor">#define GUAC_SOCKET_KEEP_ALIVE_INTERVAL 5000</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-fntypes_8h.html b/doc/1.1.0/libguac/socket-fntypes_8h.html
new file mode 100644
index 0000000..8c1421e
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-fntypes_8h.html
@@ -0,0 +1,295 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td></tr>
+<tr class="memdesc:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic read handler for socket read operations, modeled after the standard POSIX read() function.  <a href="#a75396c8cb7b0ba91102fcd447a1eb36b">More...</a><br /></td></tr>
+<tr class="separator:a75396c8cb7b0ba91102fcd447a1eb36b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7198af0a6bbac52794eb248c81d90c6a"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:a7198af0a6bbac52794eb248c81d90c6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic write handler for socket write operations, modeled after the standard POSIX write() function.  <a href="#a7198af0a6bbac52794eb248c81d90c6a">More...</a><br /></td></tr>
+<tr class="separator:a7198af0a6bbac52794eb248c81d90c6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a934350207615e0e2066954f9484153f8"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a934350207615e0e2066954f9484153f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic handler for socket select operations, similar to the POSIX select() function.  <a href="#a934350207615e0e2066954f9484153f8">More...</a><br /></td></tr>
+<tr class="separator:a934350207615e0e2066954f9484153f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="memItemLeft" align="right" valign="top">typedef ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic flush handler for socket flush operations.  <a href="#a894bc88c6288ee6b6713a2ea64bd05a0">More...</a><br /></td></tr>
+<tr class="separator:a894bc88c6288ee6b6713a2ea64bd05a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b714d65f18d57bb52f929c7d3909526"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a1b714d65f18d57bb52f929c7d3909526"><td class="mdescLeft">&#160;</td><td class="mdescRight">When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is required, such as when <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction. ">guac_socket_instruction_begin()</a> is called.  <a href="#a1b714d65f18d57bb52f929c7d3909526">More...</a><br /></td></tr>
+<tr class="separator:a1b714d65f18d57bb52f929c7d3909526"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="memItemLeft" align="right" valign="top">typedef void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is no longer required, such as when <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction. ">guac_socket_instruction_end()</a> is called.  <a href="#af1a6f8eb81522aab289c9f4ed6051d3f">More...</a><br /></td></tr>
+<tr class="separator:af1a6f8eb81522aab289c9f4ed6051d3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generic handler for the closing of a socket, modeled after the standard POSIX close() function.  <a href="#a9700a8ba2011d6e6ce13e3e6c6397fc2">More...</a><br /></td></tr>
+<tr class="separator:a9700a8ba2011d6e6ce13e3e6c6397fc2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a894bc88c6288ee6b6713a2ea64bd05a0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a894bc88c6288ee6b6713a2ea64bd05a0">&#9670;&nbsp;</a></span>guac_socket_flush_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_flush_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic flush handler for socket flush operations. </p>
+<p>This function is not modeled after any POSIX function. When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when <a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12" title="Flushes the write buffer. ">guac_socket_flush()</a> is called.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being flushed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a9700a8ba2011d6e6ce13e3e6c6397fc2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9700a8ba2011d6e6ce13e3e6c6397fc2">&#9670;&nbsp;</a></span>guac_socket_free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_socket_free_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic handler for the closing of a socket, modeled after the standard POSIX close() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when the socket is closed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being closed. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a1b714d65f18d57bb52f929c7d3909526"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b714d65f18d57bb52f929c7d3909526">&#9670;&nbsp;</a></span>guac_socket_lock_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_socket_lock_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is required, such as when <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction. ">guac_socket_instruction_begin()</a> is called. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which exclusive access is required. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a75396c8cb7b0ba91102fcd447a1eb36b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a75396c8cb7b0ba91102fcd447a1eb36b">&#9670;&nbsp;</a></span>guac_socket_read_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_read_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic read handler for socket read operations, modeled after the standard POSIX read() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when data needs to be read into the socket.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being read from. </td></tr>
+    <tr><td class="paramname">buf</td><td>The arbitrary buffer we must populate with data. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to read into the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a934350207615e0e2066954f9484153f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a934350207615e0e2066954f9484153f8">&#9670;&nbsp;</a></span>guac_socket_select_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_socket_select_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic handler for socket select operations, similar to the POSIX select() function. </p>
+<p>When <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7" title="Waits for input to be available on the given guac_socket object until the specified timeout elapses...">guac_socket_select()</a> is called on a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, its guac_socket_select_handler will be invoked, if defined.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being selected. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait for data, or -1 to potentially wait forever. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Positive on success, zero if the timeout elapsed and no data is available, negative on error. </dd></dl>
+
+</div>
+</div>
+<a id="af1a6f8eb81522aab289c9f4ed6051d3f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1a6f8eb81522aab289c9f4ed6051d3f">&#9670;&nbsp;</a></span>guac_socket_unlock_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void guac_socket_unlock_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called whenever exclusive access to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is no longer required, such as when <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction. ">guac_socket_instruction_end()</a> is called. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which exclusive access is no longer required. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a7198af0a6bbac52794eb248c81d90c6a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7198af0a6bbac52794eb248c81d90c6a">&#9670;&nbsp;</a></span>guac_socket_write_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef ssize_t guac_socket_write_handler(<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Generic write handler for socket write operations, modeled after the standard POSIX write() function. </p>
+<p>When set within a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, a handler of this type will be called when data needs to be written to the socket.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> being written to. </td></tr>
+    <tr><td class="paramname">buf</td><td>The arbitrary buffer containing data to be written. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to written to the buffer. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes written, or -1 if an error occurs. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-fntypes_8h_source.html b/doc/1.1.0/libguac/socket-fntypes_8h_source.html
new file mode 100644
index 0000000..6222992
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-fntypes_8h_source.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">   43</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">   56</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">   70</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">   83</a></span>&#160;<span class="keyword">typedef</span> ssize_t <a class="code" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">   93</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">  103</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span> <a class="code" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">  113</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="ttc" id="socket-fntypes_8h_html_a1b714d65f18d57bb52f929c7d3909526"><div class="ttname"><a href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a></div><div class="ttdeci">void guac_socket_lock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:93</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a894bc88c6288ee6b6713a2ea64bd05a0"><div class="ttname"><a href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a></div><div class="ttdeci">ssize_t guac_socket_flush_handler(guac_socket *socket)</div><div class="ttdoc">Generic flush handler for socket flush operations. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:83</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a7198af0a6bbac52794eb248c81d90c6a"><div class="ttname"><a href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a></div><div class="ttdeci">ssize_t guac_socket_write_handler(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Generic write handler for socket write operations, modeled after the standard POSIX write() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:56</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_af1a6f8eb81522aab289c9f4ed6051d3f"><div class="ttname"><a href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a></div><div class="ttdeci">void guac_socket_unlock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:103</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a9700a8ba2011d6e6ce13e3e6c6397fc2"><div class="ttname"><a href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a></div><div class="ttdeci">int guac_socket_free_handler(guac_socket *socket)</div><div class="ttdoc">Generic handler for the closing of a socket, modeled after the standard POSIX close() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:113</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a934350207615e0e2066954f9484153f8"><div class="ttname"><a href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a></div><div class="ttdeci">int guac_socket_select_handler(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Generic handler for socket select operations, similar to the POSIX select() function. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:70</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a75396c8cb7b0ba91102fcd447a1eb36b"><div class="ttname"><a href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a></div><div class="ttdeci">ssize_t guac_socket_read_handler(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Generic read handler for socket read operations, modeled after the standard POSIX read() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:43</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-ssl_8h.html b/doc/1.1.0/libguac/socket-ssl_8h.html
new file mode 100644
index 0000000..f2f2663
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-ssl_8h.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-ssl.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-ssl.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-ssl_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">SSL socket-specific data.  <a href="structguac__socket__ssl__data.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:afa6689181258a29460b978f1e496f790"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a> (SSL_CTX *context, int fd)</td></tr>
+<tr class="memdesc:afa6689181258a29460b978f1e496f790"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use SSL for all communication.  <a href="#afa6689181258a29460b978f1e496f790">More...</a><br /></td></tr>
+<tr class="separator:afa6689181258a29460b978f1e496f790"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides an SSL/TLS implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>This header will only be available if libguac was built with SSL support. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="afa6689181258a29460b978f1e496f790"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa6689181258a29460b978f1e496f790">&#9670;&nbsp;</a></span>guac_socket_open_secure()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open_secure </td>
+          <td>(</td>
+          <td class="paramtype">SSL_CTX *&#160;</td>
+          <td class="paramname"><em>context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use SSL for all communication. </p>
+<p>Freeing this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will automatically close the associated file descriptor.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">context</td><td>The SSL_CTX structure describing the desired SSL configuration.</td></tr>
+    <tr><td class="paramname">fd</td><td>The file descriptor to use for the SSL connection underlying the created <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will transparently use SSL for all communication. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-ssl_8h_source.html b/doc/1.1.0/libguac/socket-ssl_8h_source.html
new file mode 100644
index 0000000..63081bc
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-ssl_8h_source.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-ssl.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-ssl.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-ssl_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef __GUACD_SOCKET_SSL_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define __GUACD_SOCKET_SSL_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;openssl/ssl.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">   44</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">fd</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">   49</a></span>&#160;    SSL_CTX* <a class="code" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">context</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">   55</a></span>&#160;    SSL* <a class="code" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">ssl</a>;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;} <a class="code" href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a>;</div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a>(SSL_CTX* context, <span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html"><div class="ttname"><a href="structguac__socket__ssl__data.html">guac_socket_ssl_data</a></div><div class="ttdoc">SSL socket-specific data. </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:38</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_ab86a780b4801fdbf411a24255cf700ac"><div class="ttname"><a href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">guac_socket_ssl_data::ssl</a></div><div class="ttdeci">SSL * ssl</div><div class="ttdoc">The SSL connection, created automatically via guac_socket_open_secure(). </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:55</div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_a22b295ba9b80cc15a5dfa4c06aea541f"><div class="ttname"><a href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">guac_socket_ssl_data::context</a></div><div class="ttdeci">SSL_CTX * context</div><div class="ttdoc">The current SSL context. </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:49</div></div>
+<div class="ttc" id="socket-ssl_8h_html_afa6689181258a29460b978f1e496f790"><div class="ttname"><a href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790">guac_socket_open_secure</a></div><div class="ttdeci">guac_socket * guac_socket_open_secure(SSL_CTX *context, int fd)</div><div class="ttdoc">Creates a new guac_socket which will use SSL for all communication. </div></div>
+<div class="ttc" id="structguac__socket__ssl__data_html_a4b6134fe4c41d78e42abbe5d8c27330a"><div class="ttname"><a href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">guac_socket_ssl_data::fd</a></div><div class="ttdeci">int fd</div><div class="ttdoc">The file descriptor that SSL communication will take place over. </div><div class="ttdef"><b>Definition:</b> socket-ssl.h:44</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-types_8h.html b/doc/1.1.0/libguac/socket-types_8h.html
new file mode 100644
index 0000000..9e278e4
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-types_8h.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#enum-members">Enumerations</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> { <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a>, 
+<a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a>
+ }</td></tr>
+<tr class="memdesc:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="mdescLeft">&#160;</td><td class="mdescRight">Possible current states of a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">More...</a><br /></td></tr>
+<tr class="separator:a0ac0c0cd123b57d8aba5e6ec6fd20939"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<a id="a0ac0c0cd123b57d8aba5e6ec6fd20939"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ac0c0cd123b57d8aba5e6ec6fd20939">&#9670;&nbsp;</a></span>guac_socket_state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">enum <a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Possible current states of a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5"></a>GUAC_SOCKET_OPEN&#160;</td><td class="fielddoc"><p>The socket is open and can be written to / read from. </p>
+</td></tr>
+<tr><td class="fieldname"><a id="a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e"></a>GUAC_SOCKET_CLOSED&#160;</td><td class="fielddoc"><p>The socket is closed. </p>
+<p>Reads and writes will fail. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-types_8h_source.html b/doc/1.1.0/libguac/socket-types_8h_source.html
new file mode 100644
index 0000000..bd54ada
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-types_8h_source.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__socket.html">guac_socket</a> <a class="code" href="structguac__socket.html">guac_socket</a>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">   38</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">   43</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a>,</div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">   48</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;} <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a>;</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></div><div class="ttdeci">guac_socket_state</div><div class="ttdoc">Possible current states of a guac_socket. </div><div class="ttdef"><b>Definition:</b> socket-types.h:38</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a7b8a48d941303b384b59a8203a801dc5">GUAC_SOCKET_OPEN</a></div><div class="ttdoc">The socket is open and can be written to / read from. </div><div class="ttdef"><b>Definition:</b> socket-types.h:43</div></div>
+<div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939a02f70c652aab0536f0504d413560766e">GUAC_SOCKET_CLOSED</a></div><div class="ttdoc">The socket is closed. </div><div class="ttdef"><b>Definition:</b> socket-types.h:48</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-wsa_8h.html b/doc/1.1.0/libguac/socket-wsa_8h.html
new file mode 100644
index 0000000..740182e
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-wsa_8h.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-wsa.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket-wsa.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock").  
+<a href="#details">More...</a></p>
+
+<p><a href="socket-wsa_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac020ae320548582cd76d18baca0ba3be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a> (SOCKET sock)</td></tr>
+<tr class="memdesc:ac020ae320548582cd76d18baca0ba3be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use the Windows Socket API (aka WSA or "winsock") for all communication.  <a href="#ac020ae320548582cd76d18baca0ba3be">More...</a><br /></td></tr>
+<tr class="separator:ac020ae320548582cd76d18baca0ba3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides an implementation of <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> specific to the Windows Socket API (aka WSA or "winsock"). </p>
+<p>This header will only be available if libguac was built with WSA support. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ac020ae320548582cd76d18baca0ba3be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac020ae320548582cd76d18baca0ba3be">&#9670;&nbsp;</a></span>guac_socket_open_wsa()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open_wsa </td>
+          <td>(</td>
+          <td class="paramtype">SOCKET&#160;</td>
+          <td class="paramname"><em>sock</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Creates a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will use the Windows Socket API (aka WSA or "winsock") for all communication. </p>
+<p>Freeing this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will automatically close the associated SOCKET handle.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">sock</td><td>The WSA SOCKET handle to use for the connection underlying the created <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which will transparently use the Windows Socket API for all communication. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket-wsa_8h_source.html b/doc/1.1.0/libguac/socket-wsa_8h_source.html
new file mode 100644
index 0000000..afd2795
--- /dev/null
+++ b/doc/1.1.0/libguac/socket-wsa_8h_source.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket-wsa.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket-wsa.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket-wsa_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_SOCKET_WSA_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_SOCKET_WSA_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &lt;winsock2.h&gt;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a>(SOCKET sock);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-wsa_8h_html_ac020ae320548582cd76d18baca0ba3be"><div class="ttname"><a href="socket-wsa_8h.html#ac020ae320548582cd76d18baca0ba3be">guac_socket_open_wsa</a></div><div class="ttdeci">guac_socket * guac_socket_open_wsa(SOCKET sock)</div><div class="ttdoc">Creates a new guac_socket which will use the Windows Socket API (aka WSA or &quot;winsock&quot;) for all commun...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket_8h.html b/doc/1.1.0/libguac/socket_8h.html
new file mode 100644
index 0000000..69b3206
--- /dev/null
+++ b/doc/1.1.0/libguac/socket_8h.html
@@ -0,0 +1,746 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">socket.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it.  
+<a href="#details">More...</a></p>
+
+<p><a href="socket_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html">guac_socket</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The core I/O object of Guacamole.  <a href="structguac__socket.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a7e5859b812923b894779f59353fdadb4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a> ()</td></tr>
+<tr class="memdesc:a7e5859b812923b894779f59353fdadb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new, completely blank <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="#a7e5859b812923b894779f59353fdadb4">More...</a><br /></td></tr>
+<tr class="separator:a7e5859b812923b894779f59353fdadb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a376df8efcc02a7104504f104433884ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a376df8efcc02a7104504f104433884ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and all associated resources.  <a href="#a376df8efcc02a7104504f104433884ed">More...</a><br /></td></tr>
+<tr class="separator:a376df8efcc02a7104504f104433884ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d8c5111a8234c7785ae23f379f7db03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a1d8c5111a8234c7785ae23f379f7db03"><td class="mdescLeft">&#160;</td><td class="mdescRight">Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open.  <a href="#a1d8c5111a8234c7785ae23f379f7db03">More...</a><br /></td></tr>
+<tr class="separator:a1d8c5111a8234c7785ae23f379f7db03"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a00c8f00ab54c42e42c9f489caf5478b1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a00c8f00ab54c42e42c9f489caf5478b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the beginning of a Guacamole protocol instruction.  <a href="#a00c8f00ab54c42e42c9f489caf5478b1">More...</a><br /></td></tr>
+<tr class="separator:a00c8f00ab54c42e42c9f489caf5478b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Marks the end of a Guacamole protocol instruction.  <a href="#a603c23b24e2e2e95eeb2ce08d8115e94">More...</a><br /></td></tr>
+<tr class="separator:a603c23b24e2e2e95eeb2ce08d8115e94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a076f62b9b6082260462e18ca77c64e7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a> (int fd)</td></tr>
+<tr class="memdesc:a076f62b9b6082260462e18ca77c64e7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object with the given open file descriptor.  <a href="#a076f62b9b6082260462e18ca77c64e7a">More...</a><br /></td></tr>
+<tr class="separator:a076f62b9b6082260462e18ca77c64e7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af23ab23c93eb09eac0e15a87f5690bda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *parent, int index)</td></tr>
+<tr class="memdesc:af23ab23c93eb09eac0e15a87f5690bda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which writes all data via nest instructions to the given existing, open <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.  <a href="#af23ab23c93eb09eac0e15a87f5690bda">More...</a><br /></td></tr>
+<tr class="separator:af23ab23c93eb09eac0e15a87f5690bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:add9c80240912b0c8d309cf7de94f5305"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *primary, <a class="el" href="structguac__socket.html">guac_socket</a> *secondary)</td></tr>
+<tr class="memdesc:add9c80240912b0c8d309cf7de94f5305"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket.  <a href="#add9c80240912b0c8d309cf7de94f5305">More...</a><br /></td></tr>
+<tr class="separator:add9c80240912b0c8d309cf7de94f5305"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a> (<a class="el" href="structguac__client.html">guac_client</a> *client)</td></tr>
+<tr class="memdesc:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which duplicates all instructions written across the sockets of each connected user of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  <a href="#a2b570fec1d86f1eb09e057d4bbed3be6">More...</a><br /></td></tr>
+<tr class="separator:a2b570fec1d86f1eb09e057d4bbed3be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a57a963e37377de2104c2d785980ff400"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int64_t i)</td></tr>
+<tr class="memdesc:a57a963e37377de2104c2d785980ff400"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given unsigned int to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  <a href="#a57a963e37377de2104c2d785980ff400">More...</a><br /></td></tr>
+<tr class="separator:a57a963e37377de2104c2d785980ff400"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad0cb48c7896361b522ae5a222a3b5efc"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *str)</td></tr>
+<tr class="memdesc:ad0cb48c7896361b522ae5a222a3b5efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given string to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object.  <a href="#ad0cb48c7896361b522ae5a222a3b5efc">More...</a><br /></td></tr>
+<tr class="separator:ad0cb48c7896361b522ae5a222a3b5efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7ec68bc42436ba316805718c292c510"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:ac7ec68bc42436ba316805718c292c510"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given binary data to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object as base64- encoded data.  <a href="#ac7ec68bc42436ba316805718c292c510">More...</a><br /></td></tr>
+<tr class="separator:ac7ec68bc42436ba316805718c292c510"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb6eb960de27526bc96e1f9af797e2c4"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, const void *buf, size_t count)</td></tr>
+<tr class="memdesc:adb6eb960de27526bc96e1f9af797e2c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes the given data to the specified socket.  <a href="#adb6eb960de27526bc96e1f9af797e2c4">More...</a><br /></td></tr>
+<tr class="separator:adb6eb960de27526bc96e1f9af797e2c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af5d6846212d792c5bce7f8a4fd46cd31"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, void *buf, size_t count)</td></tr>
+<tr class="memdesc:af5d6846212d792c5bce7f8a4fd46cd31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer.  <a href="#af5d6846212d792c5bce7f8a4fd46cd31">More...</a><br /></td></tr>
+<tr class="separator:af5d6846212d792c5bce7f8a4fd46cd31"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a09d5f60d75c57640a4c483d42445c1ab"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:a09d5f60d75c57640a4c483d42445c1ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the base64 buffer, writing padding characters as necessary.  <a href="#a09d5f60d75c57640a4c483d42445c1ab">More...</a><br /></td></tr>
+<tr class="separator:a09d5f60d75c57640a4c483d42445c1ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ababc834d5812e006b55a79da417bfe12"><td class="memItemLeft" align="right" valign="top">ssize_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket)</td></tr>
+<tr class="memdesc:ababc834d5812e006b55a79da417bfe12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the write buffer.  <a href="#ababc834d5812e006b55a79da417bfe12">More...</a><br /></td></tr>
+<tr class="separator:ababc834d5812e006b55a79da417bfe12"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a> (<a class="el" href="structguac__socket.html">guac_socket</a> *socket, int usec_timeout)</td></tr>
+<tr class="memdesc:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Waits for input to be available on the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object until the specified timeout elapses.  <a href="#a41b0d7a25ccda3d0ae20143880cf53b7">More...</a><br /></td></tr>
+<tr class="separator:a41b0d7a25ccda3d0ae20143880cf53b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Defines the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object and functionss for using and manipulating it. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a7e5859b812923b894779f59353fdadb4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e5859b812923b894779f59353fdadb4">&#9670;&nbsp;</a></span>guac_socket_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new, completely blank <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>This <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will do absolutely nothing when used unless its handlers are defined.</p>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, or NULL if the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> could not be allocated. </dd></dl>
+
+</div>
+</div>
+<a id="a2b570fec1d86f1eb09e057d4bbed3be6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2b570fec1d86f1eb09e057d4bbed3be6">&#9670;&nbsp;</a></span>guac_socket_broadcast()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_broadcast </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__client.html">guac_client</a> *&#160;</td>
+          <td class="paramname"><em>client</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which duplicates all instructions written across the sockets of each connected user of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+<p>The returned socket is a write-only socket. Attempts to read from the socket will fail. If a write occurs while no users are connected, that write will simply be dropped.</p>
+<p>Return values (error codes) from each user's socket will not affect the in-progress write, but each failing user will be forcibly stopped with <a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf" title="Signals the given user that it must disconnect, or advises cooperating services that the given user i...">guac_user_stop()</a>.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">client</td><td>The client associated with the group of connected users across which duplicates of all instructions should be written.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A write-only <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object which broadcasts copies of all instructions written across all connected users of the given <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="ababc834d5812e006b55a79da417bfe12"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ababc834d5812e006b55a79da417bfe12">&#9670;&nbsp;</a></span>guac_socket_flush()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_flush </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the write buffer. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to flush </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a09d5f60d75c57640a4c483d42445c1ab"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a09d5f60d75c57640a4c483d42445c1ab">&#9670;&nbsp;</a></span>guac_socket_flush_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_flush_base64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Flushes the base64 buffer, writing padding characters as necessary. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to flush </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs during flush. </dd></dl>
+
+</div>
+</div>
+<a id="a376df8efcc02a7104504f104433884ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a376df8efcc02a7104504f104433884ed">&#9670;&nbsp;</a></span>guac_socket_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and all associated resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a00c8f00ab54c42e42c9f489caf5478b1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a00c8f00ab54c42e42c9f489caf5478b1">&#9670;&nbsp;</a></span>guac_socket_instruction_begin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_instruction_begin </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the beginning of a Guacamole protocol instruction. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> beginning an instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a603c23b24e2e2e95eeb2ce08d8115e94"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a603c23b24e2e2e95eeb2ce08d8115e94">&#9670;&nbsp;</a></span>guac_socket_instruction_end()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_instruction_end </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Marks the end of a Guacamole protocol instruction. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> ending an instruction. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af23ab23c93eb09eac0e15a87f5690bda"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af23ab23c93eb09eac0e15a87f5690bda">&#9670;&nbsp;</a></span>guac_socket_nest()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_nest </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>parent</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which writes all data via nest instructions to the given existing, open <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. </p>
+<p>Freeing the returned <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> has no effect on the underlying, nested <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>The "nest" instruction and the corresponding <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> implementation are no longer necessary, having been replaced by the streaming instructions ("blob", "ack", "end"). Code using nested sockets or the "nest" instruction should instead write to a normal socket directly.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">parent</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> this new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> should write nest instructions to. </td></tr>
+    <tr><td class="paramname">index</td><td>The stream index to use for the written nest instructions. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object associated with the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and stream index, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="a076f62b9b6082260462e18ca77c64e7a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a076f62b9b6082260462e18ca77c64e7a">&#9670;&nbsp;</a></span>guac_socket_open()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_open </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>fd</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object with the given open file descriptor. </p>
+<p>The file descriptor will be automatically closed when the allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> is freed.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">fd</td><td>An open file descriptor that this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object should manage. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object associated with the given file descriptor, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="af5d6846212d792c5bce7f8a4fd46cd31"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af5d6846212d792c5bce7f8a4fd46cd31">&#9670;&nbsp;</a></span>guac_socket_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_read </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Attempts to read data from the socket, filling up to the specified number of bytes in the given buffer. </p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to read from. </td></tr>
+    <tr><td class="paramname">buf</td><td>The buffer to read bytes into. </td></tr>
+    <tr><td class="paramname">count</td><td>The maximum number of bytes to read. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, or non-zero if an error occurs while reading. </dd></dl>
+
+</div>
+</div>
+<a id="a1d8c5111a8234c7785ae23f379f7db03"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d8c5111a8234c7785ae23f379f7db03">&#9670;&nbsp;</a></span>guac_socket_require_keep_alive()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_socket_require_keep_alive </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Declares that the given socket must automatically send a keep-alive ping to ensure neither side of the socket times out while the socket is open. </p>
+<p>This ping will take the form of a "nop" instruction.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to declare as requiring an automatic keep-alive ping. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a41b0d7a25ccda3d0ae20143880cf53b7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a41b0d7a25ccda3d0ae20143880cf53b7">&#9670;&nbsp;</a></span>guac_socket_select()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_socket_select </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Waits for input to be available on the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object until the specified timeout elapses. </p>
+<p>If an error occurs while waiting, a negative value is returned, and guac_error is set appropriately.</p>
+<p>If a timeout occurs while waiting, zero value is returned, and guac_error is set to GUAC_STATUS_INPUT_TIMEOUT.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to wait for. </td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The maximum number of microseconds to wait for data, or -1 to potentially wait forever. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Positive on success, zero if the timeout elapsed and no data is available, negative on error. </dd></dl>
+
+</div>
+</div>
+<a id="add9c80240912b0c8d309cf7de94f5305"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add9c80240912b0c8d309cf7de94f5305">&#9670;&nbsp;</a></span>guac_socket_tee()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_socket_tee </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>primary</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>secondary</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates and initializes a new <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> which delegates all socket operations to the given primary socket, while simultaneously duplicating all written data to the secondary socket. </p>
+<p>Freeing the returned <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will free both primary and secondary sockets.</p>
+<p>Return values (error codes) will come only from the primary socket. Locks (like those used by <a class="el" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1" title="Marks the beginning of a Guacamole protocol instruction. ">guac_socket_instruction_begin()</a> and <a class="el" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94" title="Marks the end of a Guacamole protocol instruction. ">guac_socket_instruction_end()</a>) will affect only the primary socket.</p>
+<p>If an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object, NULL is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">primary</td><td>The primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which all socket operations should be delegated. The error codes returned by socket operations, if any, will always come from this socket. This socket will also be the only socket locked when instructions begin (or unlocked when instructions end).</td></tr>
+    <tr><td class="paramname">secondary</td><td>The secondary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> to which all data written to the primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> should be copied. If an error prevents the write from succeeding, that error will be ignored. Only errors from the primary <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will be acknowledged.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly allocated <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object associated with the given primary and secondary sockets, or NULL if an error occurs while allocating the <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </dd></dl>
+
+</div>
+</div>
+<a id="adb6eb960de27526bc96e1f9af797e2c4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adb6eb960de27526bc96e1f9af797e2c4">&#9670;&nbsp;</a></span>guac_socket_write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given data to the specified socket. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">buf</td><td>A buffer containing the data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="ac7ec68bc42436ba316805718c292c510"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7ec68bc42436ba316805718c292c510">&#9670;&nbsp;</a></span>guac_socket_write_base64()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_base64 </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const void *&#160;</td>
+          <td class="paramname"><em>buf</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>count</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given binary data to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object as base64- encoded data. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually. Beware that, because base64 data is buffered on top of the write buffer already used, a call to <a class="el" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab" title="Flushes the base64 buffer, writing padding characters as necessary. ">guac_socket_flush_base64()</a> MUST be made before non-base64 writes (or writes of an independent block of base64 data) can be made.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">buf</td><td>A buffer containing the data to write. </td></tr>
+    <tr><td class="paramname">count</td><td>The number of bytes to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="a57a963e37377de2104c2d785980ff400"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57a963e37377de2104c2d785980ff400">&#9670;&nbsp;</a></span>guac_socket_write_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int64_t&#160;</td>
+          <td class="paramname"><em>i</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given unsigned int to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">i</td><td>The unsigned int to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+<a id="ad0cb48c7896361b522ae5a222a3b5efc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad0cb48c7896361b522ae5a222a3b5efc">&#9670;&nbsp;</a></span>guac_socket_write_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">ssize_t guac_socket_write_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>str</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes the given string to the given <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object. </p>
+<p>The data written may be buffered until the buffer is flushed automatically or manually.</p>
+<p>If an error occurs while writing, a non-zero value is returned, and guac_error is set appropriately.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">socket</td><td>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> object to write to. </td></tr>
+    <tr><td class="paramname">str</td><td>The string to write. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero on success, or non-zero if an error occurs while writing. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/socket_8h_source.html b/doc/1.1.0/libguac/socket_8h_source.html
new file mode 100644
index 0000000..81bce09
--- /dev/null
+++ b/doc/1.1.0/libguac/socket_8h_source.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/socket.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">socket.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="socket_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_SOCKET_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_SOCKET_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-constants_8h.html">socket-constants.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-fntypes_8h.html">socket-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structguac__socket.html">   39</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__socket.html">guac_socket</a> {</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">   44</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">data</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">   49</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a>* <a class="code" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">read_handler</a>;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">   54</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a>* <a class="code" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">write_handler</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">   59</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a>* <a class="code" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">flush_handler</a>;</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">   65</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a>* <a class="code" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">lock_handler</a>;</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">   71</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a>* <a class="code" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">unlock_handler</a>;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">   77</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a>* <a class="code" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">select_handler</a>;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">   82</a></span>&#160;    <a class="code" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a>* <a class="code" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">free_handler</a>;</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">   87</a></span>&#160;    <a class="code" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a> <a class="code" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">state</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">   93</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">last_write_timestamp</a>;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="keywordtype">int</span> __ready;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keywordtype">int</span> __ready_buf[3];</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    <span class="keywordtype">int</span> __keep_alive_enabled;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    pthread_t __keep_alive_thread;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a>();</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="keywordtype">void</span> <a class="code" href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a>(<span class="keywordtype">int</span> fd);</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* parent, <span class="keywordtype">int</span> index);</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* primary, <a class="code" href="structguac__socket.html">guac_socket</a>* secondary);</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;<a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;ssize_t <a class="code" href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, int64_t i);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;ssize_t <a class="code" href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;ssize_t <a class="code" href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;ssize_t <a class="code" href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;ssize_t <a class="code" href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">void</span>* buf, <span class="keywordtype">size_t</span> count);</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;ssize_t <a class="code" href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;ssize_t <a class="code" href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket);</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="keywordtype">int</span> <a class="code" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a>(<a class="code" href="structguac__socket.html">guac_socket</a>* socket, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="ttc" id="socket-types_8h_html_a0ac0c0cd123b57d8aba5e6ec6fd20939"><div class="ttname"><a href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a></div><div class="ttdeci">guac_socket_state</div><div class="ttdoc">Possible current states of a guac_socket. </div><div class="ttdef"><b>Definition:</b> socket-types.h:38</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a1b714d65f18d57bb52f929c7d3909526"><div class="ttname"><a href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a></div><div class="ttdeci">void guac_socket_lock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:93</div></div>
+<div class="ttc" id="socket_8h_html_af23ab23c93eb09eac0e15a87f5690bda"><div class="ttname"><a href="socket_8h.html#af23ab23c93eb09eac0e15a87f5690bda">guac_socket_nest</a></div><div class="ttdeci">guac_socket * guac_socket_nest(guac_socket *parent, int index)</div><div class="ttdoc">Allocates and initializes a new guac_socket which writes all data via nest instructions to the given ...</div></div>
+<div class="ttc" id="socket_8h_html_a09d5f60d75c57640a4c483d42445c1ab"><div class="ttname"><a href="socket_8h.html#a09d5f60d75c57640a4c483d42445c1ab">guac_socket_flush_base64</a></div><div class="ttdeci">ssize_t guac_socket_flush_base64(guac_socket *socket)</div><div class="ttdoc">Flushes the base64 buffer, writing padding characters as necessary. </div></div>
+<div class="ttc" id="structguac__socket_html_a1044cde496cfe11c914c623dc1e29678"><div class="ttname"><a href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">guac_socket::free_handler</a></div><div class="ttdeci">guac_socket_free_handler * free_handler</div><div class="ttdoc">Handler which will be called when the socket is free&amp;#39;d (closed). </div><div class="ttdef"><b>Definition:</b> socket.h:82</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="socket_8h_html_a00c8f00ab54c42e42c9f489caf5478b1"><div class="ttname"><a href="socket_8h.html#a00c8f00ab54c42e42c9f489caf5478b1">guac_socket_instruction_begin</a></div><div class="ttdeci">void guac_socket_instruction_begin(guac_socket *socket)</div><div class="ttdoc">Marks the beginning of a Guacamole protocol instruction. </div></div>
+<div class="ttc" id="socket_8h_html_a2b570fec1d86f1eb09e057d4bbed3be6"><div class="ttname"><a href="socket_8h.html#a2b570fec1d86f1eb09e057d4bbed3be6">guac_socket_broadcast</a></div><div class="ttdeci">guac_socket * guac_socket_broadcast(guac_client *client)</div><div class="ttdoc">Allocates and initializes a new guac_socket which duplicates all instructions written across the sock...</div></div>
+<div class="ttc" id="socket-constants_8h_html"><div class="ttname"><a href="socket-constants_8h.html">socket-constants.h</a></div><div class="ttdoc">Constants related to the guac_socket object. </div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a894bc88c6288ee6b6713a2ea64bd05a0"><div class="ttname"><a href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a></div><div class="ttdeci">ssize_t guac_socket_flush_handler(guac_socket *socket)</div><div class="ttdoc">Generic flush handler for socket flush operations. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:83</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="socket-fntypes_8h_html"><div class="ttname"><a href="socket-fntypes_8h.html">socket-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="structguac__socket_html_a1d39f1476d3d3440485697a0eabfe471"><div class="ttname"><a href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">guac_socket::lock_handler</a></div><div class="ttdeci">guac_socket_lock_handler * lock_handler</div><div class="ttdoc">Handler which will be called whenever a socket needs to be acquired for exclusive access...</div><div class="ttdef"><b>Definition:</b> socket.h:65</div></div>
+<div class="ttc" id="socket_8h_html_a376df8efcc02a7104504f104433884ed"><div class="ttname"><a href="socket_8h.html#a376df8efcc02a7104504f104433884ed">guac_socket_free</a></div><div class="ttdeci">void guac_socket_free(guac_socket *socket)</div><div class="ttdoc">Frees the given guac_socket and all associated resources. </div></div>
+<div class="ttc" id="socket_8h_html_a076f62b9b6082260462e18ca77c64e7a"><div class="ttname"><a href="socket_8h.html#a076f62b9b6082260462e18ca77c64e7a">guac_socket_open</a></div><div class="ttdeci">guac_socket * guac_socket_open(int fd)</div><div class="ttdoc">Allocates and initializes a new guac_socket object with the given open file descriptor. </div></div>
+<div class="ttc" id="socket_8h_html_ad0cb48c7896361b522ae5a222a3b5efc"><div class="ttname"><a href="socket_8h.html#ad0cb48c7896361b522ae5a222a3b5efc">guac_socket_write_string</a></div><div class="ttdeci">ssize_t guac_socket_write_string(guac_socket *socket, const char *str)</div><div class="ttdoc">Writes the given string to the given guac_socket object. </div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a7198af0a6bbac52794eb248c81d90c6a"><div class="ttname"><a href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a></div><div class="ttdeci">ssize_t guac_socket_write_handler(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Generic write handler for socket write operations, modeled after the standard POSIX write() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:56</div></div>
+<div class="ttc" id="structguac__socket_html_a0f5f24200b0dad4ef1443b863d1bfc7d"><div class="ttname"><a href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">guac_socket::write_handler</a></div><div class="ttdeci">guac_socket_write_handler * write_handler</div><div class="ttdoc">Handler which will be called whenever data is written to this socket. </div><div class="ttdef"><b>Definition:</b> socket.h:54</div></div>
+<div class="ttc" id="socket_8h_html_ac7ec68bc42436ba316805718c292c510"><div class="ttname"><a href="socket_8h.html#ac7ec68bc42436ba316805718c292c510">guac_socket_write_base64</a></div><div class="ttdeci">ssize_t guac_socket_write_base64(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Writes the given binary data to the given guac_socket object as base64- encoded data. </div></div>
+<div class="ttc" id="structguac__socket_html_ac2d5236c7e570dfee207511241edaa9b"><div class="ttname"><a href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">guac_socket::state</a></div><div class="ttdeci">guac_socket_state state</div><div class="ttdoc">The current state of this guac_socket. </div><div class="ttdef"><b>Definition:</b> socket.h:87</div></div>
+<div class="ttc" id="socket_8h_html_af5d6846212d792c5bce7f8a4fd46cd31"><div class="ttname"><a href="socket_8h.html#af5d6846212d792c5bce7f8a4fd46cd31">guac_socket_read</a></div><div class="ttdeci">ssize_t guac_socket_read(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Attempts to read data from the socket, filling up to the specified number of bytes in the given buffe...</div></div>
+<div class="ttc" id="structguac__socket_html_a67be8367b5e1b330ee151b22c692500b"><div class="ttname"><a href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">guac_socket::unlock_handler</a></div><div class="ttdeci">guac_socket_unlock_handler * unlock_handler</div><div class="ttdoc">Handler which will be called whenever exclusive access to a socket is being released, such as when an instruction has finished being written. </div><div class="ttdef"><b>Definition:</b> socket.h:71</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_af1a6f8eb81522aab289c9f4ed6051d3f"><div class="ttname"><a href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a></div><div class="ttdeci">void guac_socket_unlock_handler(guac_socket *socket)</div><div class="ttdoc">When set within a guac_socket, a handler of this type will be called whenever exclusive access to the...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:103</div></div>
+<div class="ttc" id="socket_8h_html_adb6eb960de27526bc96e1f9af797e2c4"><div class="ttname"><a href="socket_8h.html#adb6eb960de27526bc96e1f9af797e2c4">guac_socket_write</a></div><div class="ttdeci">ssize_t guac_socket_write(guac_socket *socket, const void *buf, size_t count)</div><div class="ttdoc">Writes the given data to the specified socket. </div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="structguac__socket_html_afc6ff82e38b84c9e876fd797aafedd1b"><div class="ttname"><a href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">guac_socket::flush_handler</a></div><div class="ttdeci">guac_socket_flush_handler * flush_handler</div><div class="ttdoc">Handler which will be called whenever this socket needs to be flushed. </div><div class="ttdef"><b>Definition:</b> socket.h:59</div></div>
+<div class="ttc" id="structguac__socket_html_adf00e9c13ff3808fceb4c71c1172fb51"><div class="ttname"><a href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">guac_socket::last_write_timestamp</a></div><div class="ttdeci">guac_timestamp last_write_timestamp</div><div class="ttdoc">The timestamp associated with the time the last block of data was written to this guac_socket...</div><div class="ttdef"><b>Definition:</b> socket.h:93</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="socket_8h_html_a603c23b24e2e2e95eeb2ce08d8115e94"><div class="ttname"><a href="socket_8h.html#a603c23b24e2e2e95eeb2ce08d8115e94">guac_socket_instruction_end</a></div><div class="ttdeci">void guac_socket_instruction_end(guac_socket *socket)</div><div class="ttdoc">Marks the end of a Guacamole protocol instruction. </div></div>
+<div class="ttc" id="socket_8h_html_a7e5859b812923b894779f59353fdadb4"><div class="ttname"><a href="socket_8h.html#a7e5859b812923b894779f59353fdadb4">guac_socket_alloc</a></div><div class="ttdeci">guac_socket * guac_socket_alloc()</div><div class="ttdoc">Allocates a new, completely blank guac_socket. </div></div>
+<div class="ttc" id="socket_8h_html_a41b0d7a25ccda3d0ae20143880cf53b7"><div class="ttname"><a href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7">guac_socket_select</a></div><div class="ttdeci">int guac_socket_select(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Waits for input to be available on the given guac_socket object until the specified timeout elapses...</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a9700a8ba2011d6e6ce13e3e6c6397fc2"><div class="ttname"><a href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a></div><div class="ttdeci">int guac_socket_free_handler(guac_socket *socket)</div><div class="ttdoc">Generic handler for the closing of a socket, modeled after the standard POSIX close() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:113</div></div>
+<div class="ttc" id="structguac__socket_html_ad29e7f8a6819ca7bb541e8a947d5bc4f"><div class="ttname"><a href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">guac_socket::select_handler</a></div><div class="ttdeci">guac_socket_select_handler * select_handler</div><div class="ttdoc">Handler which will be called whenever guac_socket_select() is invoked on this socket. </div><div class="ttdef"><b>Definition:</b> socket.h:77</div></div>
+<div class="ttc" id="socket_8h_html_a1d8c5111a8234c7785ae23f379f7db03"><div class="ttname"><a href="socket_8h.html#a1d8c5111a8234c7785ae23f379f7db03">guac_socket_require_keep_alive</a></div><div class="ttdeci">void guac_socket_require_keep_alive(guac_socket *socket)</div><div class="ttdoc">Declares that the given socket must automatically send a keep-alive ping to ensure neither side of th...</div></div>
+<div class="ttc" id="socket_8h_html_ababc834d5812e006b55a79da417bfe12"><div class="ttname"><a href="socket_8h.html#ababc834d5812e006b55a79da417bfe12">guac_socket_flush</a></div><div class="ttdeci">ssize_t guac_socket_flush(guac_socket *socket)</div><div class="ttdoc">Flushes the write buffer. </div></div>
+<div class="ttc" id="socket_8h_html_a57a963e37377de2104c2d785980ff400"><div class="ttname"><a href="socket_8h.html#a57a963e37377de2104c2d785980ff400">guac_socket_write_int</a></div><div class="ttdeci">ssize_t guac_socket_write_int(guac_socket *socket, int64_t i)</div><div class="ttdoc">Writes the given unsigned int to the given guac_socket object. </div></div>
+<div class="ttc" id="socket_8h_html_add9c80240912b0c8d309cf7de94f5305"><div class="ttname"><a href="socket_8h.html#add9c80240912b0c8d309cf7de94f5305">guac_socket_tee</a></div><div class="ttdeci">guac_socket * guac_socket_tee(guac_socket *primary, guac_socket *secondary)</div><div class="ttdoc">Allocates and initializes a new guac_socket which delegates all socket operations to the given primar...</div></div>
+<div class="ttc" id="structguac__socket_html_ac8340e5627b43138bb50aac6c4368c0d"><div class="ttname"><a href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">guac_socket::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary socket-specific data. </div><div class="ttdef"><b>Definition:</b> socket.h:44</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a934350207615e0e2066954f9484153f8"><div class="ttname"><a href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a></div><div class="ttdeci">int guac_socket_select_handler(guac_socket *socket, int usec_timeout)</div><div class="ttdoc">Generic handler for socket select operations, similar to the POSIX select() function. </div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:70</div></div>
+<div class="ttc" id="socket-fntypes_8h_html_a75396c8cb7b0ba91102fcd447a1eb36b"><div class="ttname"><a href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a></div><div class="ttdeci">ssize_t guac_socket_read_handler(guac_socket *socket, void *buf, size_t count)</div><div class="ttdoc">Generic read handler for socket read operations, modeled after the standard POSIX read() function...</div><div class="ttdef"><b>Definition:</b> socket-fntypes.h:43</div></div>
+<div class="ttc" id="structguac__socket_html_a10042a8e591737aec8d4db5a3423b250"><div class="ttname"><a href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">guac_socket::read_handler</a></div><div class="ttdeci">guac_socket_read_handler * read_handler</div><div class="ttdoc">Handler which will be called when data needs to be read from the socket. </div><div class="ttdef"><b>Definition:</b> socket.h:49</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/splitbar.png b/doc/1.1.0/libguac/splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/doc/1.1.0/libguac/splitbar.png
Binary files differ
diff --git a/doc/1.1.0/libguac/stream-types_8h.html b/doc/1.1.0/libguac/stream-types_8h.html
new file mode 100644
index 0000000..830f5d3
--- /dev/null
+++ b/doc/1.1.0/libguac/stream-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol streams.  
+<a href="#details">More...</a></p>
+
+<p><a href="stream-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol streams. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/stream-types_8h_source.html b/doc/1.1.0/libguac/stream-types_8h_source.html
new file mode 100644
index 0000000..0697414
--- /dev/null
+++ b/doc/1.1.0/libguac/stream-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="stream-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_STREAM_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_STREAM_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__stream.html">guac_stream</a> <a class="code" href="structguac__stream.html">guac_stream</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/stream_8h.html b/doc/1.1.0/libguac/stream_8h.html
new file mode 100644
index 0000000..89b2bf9
--- /dev/null
+++ b/doc/1.1.0/libguac/stream_8h.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a>  </div>
+  <div class="headertitle">
+<div class="title">stream.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures required for allocating and using streams.  
+<a href="#details">More...</a></p>
+
+<p><a href="stream_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html">guac_stream</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Represents a single stream within the Guacamole protocol.  <a href="structguac__stream.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures required for allocating and using streams. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/stream_8h_source.html b/doc/1.1.0/libguac/stream_8h_source.html
new file mode 100644
index 0000000..d555ff2
--- /dev/null
+++ b/doc/1.1.0/libguac/stream_8h_source.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/stream.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">stream.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="stream_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_STREAM_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_STREAM_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structguac__stream.html">   32</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__stream.html">guac_stream</a> {</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">   37</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">index</a>;</div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">   42</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a>;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">   67</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">   87</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">  106</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="ttc" id="structguac__stream_html_acdf20063ca408431862d901c9445b429"><div class="ttname"><a href="structguac__stream.html#acdf20063ca408431862d901c9445b429">guac_stream::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary data associated with this stream. </div><div class="ttdef"><b>Definition:</b> stream.h:42</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="structguac__stream_html_a51122ba04f416d8ce047542c603632f8"><div class="ttname"><a href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">guac_stream::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> stream.h:87</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="structguac__stream_html_acd077c7266d10871ee1e07951dfa72ff"><div class="ttname"><a href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">guac_stream::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> stream.h:67</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__stream_html_a96fef1b691d5c5ebaf78bff6df3b01db"><div class="ttname"><a href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">guac_stream::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> stream.h:106</div></div>
+<div class="ttc" id="structguac__stream_html_a487951c2cc77b2e1637e3aa0b5faaa60"><div class="ttname"><a href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">guac_stream::index</a></div><div class="ttdeci">int index</div><div class="ttdoc">The index of this stream. </div><div class="ttdef"><b>Definition:</b> stream.h:37</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/string_8h.html b/doc/1.1.0/libguac/string_8h.html
new file mode 100644
index 0000000..74a972e
--- /dev/null
+++ b/doc/1.1.0/libguac/string_8h.html
@@ -0,0 +1,275 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/string.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">string.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides convenience functions for manipulating strings.  
+<a href="#details">More...</a></p>
+
+<p><a href="string_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:add551909cdd14d762106832a800a5e16"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a> (char *restrict dest, const char *restrict src, size_t n)</td></tr>
+<tr class="memdesc:add551909cdd14d762106832a800a5e16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies a limited number of bytes from the given source string to the given destination buffer.  <a href="#add551909cdd14d762106832a800a5e16">More...</a><br /></td></tr>
+<tr class="separator:add551909cdd14d762106832a800a5e16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0dccfb28be71414fb2a4b1b641799f57"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a> (char *restrict dest, const char *restrict src, size_t n)</td></tr>
+<tr class="memdesc:a0dccfb28be71414fb2a4b1b641799f57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Appends the given source string after the end of the given destination string, writing at most the given number of bytes.  <a href="#a0dccfb28be71414fb2a4b1b641799f57">More...</a><br /></td></tr>
+<tr class="separator:a0dccfb28be71414fb2a4b1b641799f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a> (char *restrict dest, const char *restrict const *elements, int nmemb, const char *restrict delim, size_t n)</td></tr>
+<tr class="memdesc:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Concatenates each of the given strings, separated by the given delimiter, storing the result within a destination buffer.  <a href="#a186ea73f38cfaf14f8a5b13ad7e9724f">More...</a><br /></td></tr>
+<tr class="separator:a186ea73f38cfaf14f8a5b13ad7e9724f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides convenience functions for manipulating strings. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0dccfb28be71414fb2a4b1b641799f57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0dccfb28be71414fb2a4b1b641799f57">&#9670;&nbsp;</a></span>guac_strlcat()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strlcat </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>src</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Appends the given source string after the end of the given destination string, writing at most the given number of bytes. </p>
+<p>Both the source and destination strings MUST be null-terminated. The resulting buffer will always be null-terminated, even if doing so means that the intended string is truncated, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of destination and source strings added together), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source and destination buffers MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should be appended with the contents of the source string. This buffer MUST already be null-terminated and will always be null-terminated unless zero bytes are available within the buffer.</td></tr>
+  </table>
+  </dd>
+</dl>
+<p>As a safeguard against incorrectly-written code, in the event that the destination buffer is not null-terminated, this function will still stop before overrunning the buffer, instead behaving as if the length of the string in the buffer is exactly the size of the buffer. The destination buffer will remain untouched (and unterminated) in this case.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">src</td><td>The source string to append to the the destination buffer. This string MUST be null-terminated.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is not greater than zero, no bytes will be written to the destination buffer, and the destination buffer may not be null-terminated. In all other cases, the destination buffer will always be null-terminated, even if doing so means that the copied data from the source string will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the string this function tried to create (the lengths of the source and destination strings added together) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+<a id="add551909cdd14d762106832a800a5e16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#add551909cdd14d762106832a800a5e16">&#9670;&nbsp;</a></span>guac_strlcpy()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strlcpy </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>src</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Copies a limited number of bytes from the given source string to the given destination buffer. </p>
+<p>The resulting buffer will always be null-terminated, even if doing so means that the intended string is truncated, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of the source string), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source and destination buffers MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should receive the contents of the source string. This buffer will always be null terminated unless zero bytes are available within the buffer.</td></tr>
+    <tr><td class="paramname">src</td><td>The source string to copy into the destination buffer. This string MUST be null terminated.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is zero, no bytes will be written to the destination buffer, and the destination buffer may not be null terminated. In all other cases, the destination buffer will always be null terminated, even if doing so means that the copied data from the source string will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the copied string (the source string) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+<a id="a186ea73f38cfaf14f8a5b13ad7e9724f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a186ea73f38cfaf14f8a5b13ad7e9724f">&#9670;&nbsp;</a></span>guac_strljoin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_strljoin </td>
+          <td>(</td>
+          <td class="paramtype">char *restrict&#160;</td>
+          <td class="paramname"><em>dest</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict const *&#160;</td>
+          <td class="paramname"><em>elements</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>nmemb</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *restrict&#160;</td>
+          <td class="paramname"><em>delim</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">size_t&#160;</td>
+          <td class="paramname"><em>n</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Concatenates each of the given strings, separated by the given delimiter, storing the result within a destination buffer. </p>
+<p>The number of bytes written will be no more than the given number of bytes, and the destination buffer is guaranteed to be null-terminated, even if doing so means that one or more of the intended strings are truncated or omitted from the end of the result, unless the destination buffer has no space available at all. As this function always returns the length of the string it tried to create (the length of all source strings and all delimiters added together), whether truncation has occurred can be detected by comparing the return value against the size of the destination buffer. If the value returned is greater than or equal to the size of the destination buffer, then the string has been truncated.</p>
+<p>The source strings, delimiter string, and destination buffer MAY NOT overlap.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">dest</td><td>The buffer which should receive the result of joining the given strings. This buffer will always be null terminated unless zero bytes are available within the buffer.</td></tr>
+    <tr><td class="paramname">elements</td><td>The elements to concatenate together, separated by the given delimiter. Each element MUST be null-terminated.</td></tr>
+    <tr><td class="paramname">nmemb</td><td>The number of elements within the elements array.</td></tr>
+    <tr><td class="paramname">delim</td><td>The delimiter to include between each pair of elements.</td></tr>
+    <tr><td class="paramname">n</td><td>The number of bytes available within the destination buffer. If this value is not greater than zero, no bytes will be written to the destination buffer, and the destination buffer may not be null terminated. In all other cases, the destination buffer will always be null terminated, even if doing so means that the result will be truncated.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length of the string this function tried to create (the length of all source strings and all delimiters added together) in bytes, excluding the null terminator. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/string_8h_source.html b/doc/1.1.0/libguac/string_8h_source.html
new file mode 100644
index 0000000..13b3342
--- /dev/null
+++ b/doc/1.1.0/libguac/string_8h_source.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/string.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">string.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="string_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef GUAC_STRING_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define GUAC_STRING_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="string_8h.html">string.h</a>&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict src, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict src, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a>(<span class="keywordtype">char</span>* restrict dest, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict <span class="keyword">const</span>* elements,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        <span class="keywordtype">int</span> nmemb, <span class="keyword">const</span> <span class="keywordtype">char</span>* restrict delim, <span class="keywordtype">size_t</span> n);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="ttc" id="string_8h_html"><div class="ttname"><a href="string_8h.html">string.h</a></div><div class="ttdoc">Provides convenience functions for manipulating strings. </div></div>
+<div class="ttc" id="string_8h_html_a186ea73f38cfaf14f8a5b13ad7e9724f"><div class="ttname"><a href="string_8h.html#a186ea73f38cfaf14f8a5b13ad7e9724f">guac_strljoin</a></div><div class="ttdeci">size_t guac_strljoin(char *restrict dest, const char *restrict const *elements, int nmemb, const char *restrict delim, size_t n)</div><div class="ttdoc">Concatenates each of the given strings, separated by the given delimiter, storing the result within a...</div></div>
+<div class="ttc" id="string_8h_html_add551909cdd14d762106832a800a5e16"><div class="ttname"><a href="string_8h.html#add551909cdd14d762106832a800a5e16">guac_strlcpy</a></div><div class="ttdeci">size_t guac_strlcpy(char *restrict dest, const char *restrict src, size_t n)</div><div class="ttdoc">Copies a limited number of bytes from the given source string to the given destination buffer...</div></div>
+<div class="ttc" id="string_8h_html_a0dccfb28be71414fb2a4b1b641799f57"><div class="ttname"><a href="string_8h.html#a0dccfb28be71414fb2a4b1b641799f57">guac_strlcat</a></div><div class="ttdeci">size_t guac_strlcat(char *restrict dest, const char *restrict src, size_t n)</div><div class="ttdoc">Appends the given source string after the end of the given destination string, writing at most the gi...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__audio__encoder.html b/doc/1.1.0/libguac/structguac__audio__encoder.html
new file mode 100644
index 0000000..8ae517d
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__audio__encoder.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_audio_encoder Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_audio_encoder Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Arbitrary audio codec encoder.  
+ <a href="structguac__audio__encoder.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a51b8bfeae3709c1859710cbf1039e01b"><td class="memItemLeft" align="right" valign="top"><a id="a51b8bfeae3709c1859710cbf1039e01b"></a>
+const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a51b8bfeae3709c1859710cbf1039e01b">mimetype</a></td></tr>
+<tr class="memdesc:a51b8bfeae3709c1859710cbf1039e01b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mimetype of the audio data encoded by this audio encoder. <br /></td></tr>
+<tr class="separator:a51b8bfeae3709c1859710cbf1039e01b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43d161556d3d55031ea486cc8b4ce3f6"><td class="memItemLeft" align="right" valign="top"><a id="a43d161556d3d55031ea486cc8b4ce3f6"></a>
+<a class="el" href="audio-fntypes_8h.html#a0b14abed1928c4e00129c7b87e391816">guac_audio_encoder_begin_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a43d161556d3d55031ea486cc8b4ce3f6">begin_handler</a></td></tr>
+<tr class="memdesc:a43d161556d3d55031ea486cc8b4ce3f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is first created. <br /></td></tr>
+<tr class="separator:a43d161556d3d55031ea486cc8b4ce3f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="memItemLeft" align="right" valign="top"><a id="a1b74c3dd402b0a6afa5f5b9000d02c74"></a>
+<a class="el" href="audio-fntypes_8h.html#a57fe16e56c1c115b2321e50b9d9ce11a">guac_audio_encoder_write_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a1b74c3dd402b0a6afa5f5b9000d02c74">write_handler</a></td></tr>
+<tr class="memdesc:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when PCM data is written to the audio stream for encoding. <br /></td></tr>
+<tr class="separator:a1b74c3dd402b0a6afa5f5b9000d02c74"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="memItemLeft" align="right" valign="top"><a id="aef4ad4f1c298ac8e11fa69f13347c5a0"></a>
+<a class="el" href="audio-fntypes_8h.html#a8736cc2b634df9c222cf09dcc6507162">guac_audio_encoder_flush_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#aef4ad4f1c298ac8e11fa69f13347c5a0">flush_handler</a></td></tr>
+<tr class="memdesc:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is flushed. <br /></td></tr>
+<tr class="separator:aef4ad4f1c298ac8e11fa69f13347c5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="memItemLeft" align="right" valign="top"><a id="a6fbc4f8efe14c9a119fdfaaef78f7e92"></a>
+<a class="el" href="audio-fntypes_8h.html#aa29dc3999c06e82c20d7a5e5d1e1565d">guac_audio_encoder_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#a6fbc4f8efe14c9a119fdfaaef78f7e92">end_handler</a></td></tr>
+<tr class="memdesc:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the audio stream is closed. <br /></td></tr>
+<tr class="separator:a6fbc4f8efe14c9a119fdfaaef78f7e92"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af2d0f6c14a6a30e4f91240865a680e5b"><td class="memItemLeft" align="right" valign="top"><a id="af2d0f6c14a6a30e4f91240865a680e5b"></a>
+<a class="el" href="audio-fntypes_8h.html#a9d1fac87cc2ee072112d9d65d43ae70e">guac_audio_encoder_join_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__encoder.html#af2d0f6c14a6a30e4f91240865a680e5b">join_handler</a></td></tr>
+<tr class="memdesc:af2d0f6c14a6a30e4f91240865a680e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when a new user joins the Guacamole connection associated with an audio stream. <br /></td></tr>
+<tr class="separator:af2d0f6c14a6a30e4f91240865a680e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Arbitrary audio codec encoder. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="audio_8h_source.html">audio.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__audio__stream.html b/doc/1.1.0/libguac/structguac__audio__stream.html
new file mode 100644
index 0000000..34cb75b
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__audio__stream.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_audio_stream Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_audio_stream Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Basic audio stream.  
+ <a href="structguac__audio__stream.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af3b4811ba5a4f1a337d338777fe9049d"><td class="memItemLeft" align="right" valign="top"><a id="af3b4811ba5a4f1a337d338777fe9049d"></a>
+<a class="el" href="structguac__audio__encoder.html">guac_audio_encoder</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#af3b4811ba5a4f1a337d338777fe9049d">encoder</a></td></tr>
+<tr class="memdesc:af3b4811ba5a4f1a337d338777fe9049d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary codec encoder which will receive raw PCM data. <br /></td></tr>
+<tr class="separator:af3b4811ba5a4f1a337d338777fe9049d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="memItemLeft" align="right" valign="top"><a id="a1771fa5ff88b8f5d4ca4cd5e77a1ffba"></a>
+<a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a1771fa5ff88b8f5d4ca4cd5e77a1ffba">client</a></td></tr>
+<tr class="memdesc:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The client associated with this audio stream. <br /></td></tr>
+<tr class="separator:a1771fa5ff88b8f5d4ca4cd5e77a1ffba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="memItemLeft" align="right" valign="top"><a id="a4d8f5cfc70ec54b97ba0c4eea596f894"></a>
+<a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a4d8f5cfc70ec54b97ba0c4eea596f894">stream</a></td></tr>
+<tr class="memdesc:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="mdescLeft">&#160;</td><td class="mdescRight">The actual stream associated with this audio stream. <br /></td></tr>
+<tr class="separator:a4d8f5cfc70ec54b97ba0c4eea596f894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6810293a6fa915e497d2dd1a643993d9"><td class="memItemLeft" align="right" valign="top"><a id="a6810293a6fa915e497d2dd1a643993d9"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a6810293a6fa915e497d2dd1a643993d9">rate</a></td></tr>
+<tr class="memdesc:a6810293a6fa915e497d2dd1a643993d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of samples per second of PCM data sent to this stream. <br /></td></tr>
+<tr class="separator:a6810293a6fa915e497d2dd1a643993d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#af9d1ad90194e24c2967e2f9f18de0ad6">channels</a></td></tr>
+<tr class="memdesc:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of audio channels per sample of PCM data.  <a href="#af9d1ad90194e24c2967e2f9f18de0ad6">More...</a><br /></td></tr>
+<tr class="separator:af9d1ad90194e24c2967e2f9f18de0ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1de1be8874fb844002b92ac1e3813866"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a1de1be8874fb844002b92ac1e3813866">bps</a></td></tr>
+<tr class="memdesc:a1de1be8874fb844002b92ac1e3813866"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of bits per sample per channel for PCM data.  <a href="#a1de1be8874fb844002b92ac1e3813866">More...</a><br /></td></tr>
+<tr class="separator:a1de1be8874fb844002b92ac1e3813866"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9ca03221b02d1206eb698f8ee936c4b7"><td class="memItemLeft" align="right" valign="top"><a id="a9ca03221b02d1206eb698f8ee936c4b7"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__audio__stream.html#a9ca03221b02d1206eb698f8ee936c4b7">data</a></td></tr>
+<tr class="memdesc:a9ca03221b02d1206eb698f8ee936c4b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encoder-specific state data. <br /></td></tr>
+<tr class="separator:a9ca03221b02d1206eb698f8ee936c4b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Basic audio stream. </p>
+<p>PCM data is added to the stream. When the stream is flushed, a write handler receives PCM data packets and, presumably, streams them to the <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> provided. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a1de1be8874fb844002b92ac1e3813866"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1de1be8874fb844002b92ac1e3813866">&#9670;&nbsp;</a></span>bps</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_audio_stream::bps</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of bits per sample per channel for PCM data. </p>
+<p>Legal values are 8 or 16. </p>
+
+</div>
+</div>
+<a id="af9d1ad90194e24c2967e2f9f18de0ad6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af9d1ad90194e24c2967e2f9f18de0ad6">&#9670;&nbsp;</a></span>channels</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_audio_stream::channels</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of audio channels per sample of PCM data. </p>
+<p>Legal values are 1 or 2. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="audio_8h_source.html">audio.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__client.html b/doc/1.1.0/libguac/structguac__client.html
new file mode 100644
index 0000000..fcfd0e9
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__client.html
@@ -0,0 +1,313 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_client Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_client Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Guacamole proxy client.  
+ <a href="structguac__client.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:aa634856fd3c522377ba7345f3308000e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#aa634856fd3c522377ba7345f3308000e">socket</a></td></tr>
+<tr class="memdesc:aa634856fd3c522377ba7345f3308000e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> structure to be used to communicate with all connected web-clients (users).  <a href="#aa634856fd3c522377ba7345f3308000e">More...</a><br /></td></tr>
+<tr class="separator:aa634856fd3c522377ba7345f3308000e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb3e3f5d0ce5726cdde768f97b473f53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#acb3e3f5d0ce5726cdde768f97b473f53">state</a></td></tr>
+<tr class="memdesc:acb3e3f5d0ce5726cdde768f97b473f53"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of the client.  <a href="#acb3e3f5d0ce5726cdde768f97b473f53">More...</a><br /></td></tr>
+<tr class="separator:acb3e3f5d0ce5726cdde768f97b473f53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0569bc7eea8d37b5bd95bcd3821ca0a3">data</a></td></tr>
+<tr class="memdesc:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary reference to proxy client-specific data.  <a href="#a0569bc7eea8d37b5bd95bcd3821ca0a3">More...</a><br /></td></tr>
+<tr class="separator:a0569bc7eea8d37b5bd95bcd3821ca0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f3069566c7a5ca76ce4369715589dad"><td class="memItemLeft" align="right" valign="top"><a id="a0f3069566c7a5ca76ce4369715589dad"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0f3069566c7a5ca76ce4369715589dad">last_sent_timestamp</a></td></tr>
+<tr class="memdesc:a0f3069566c7a5ca76ce4369715589dad"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time (in milliseconds) that the last sync message was sent to the client. <br /></td></tr>
+<tr class="separator:a0f3069566c7a5ca76ce4369715589dad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79e29c931fd448cf51f7153fea064169"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a></td></tr>
+<tr class="memdesc:a79e29c931fd448cf51f7153fea064169"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for freeing data when the client is being unloaded.  <a href="#a79e29c931fd448cf51f7153fea064169">More...</a><br /></td></tr>
+<tr class="separator:a79e29c931fd448cf51f7153fea064169"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="memItemLeft" align="right" valign="top"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a></td></tr>
+<tr class="memdesc:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Logging handler.  <a href="#a3eb24ba13be9ecb3a8c6f64a73932f43">More...</a><br /></td></tr>
+<tr class="separator:a3eb24ba13be9ecb3a8c6f64a73932f43"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad38b9ded1f04bfe8eb235e551fc08094"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#ad38b9ded1f04bfe8eb235e551fc08094">connection_id</a></td></tr>
+<tr class="memdesc:ad38b9ded1f04bfe8eb235e551fc08094"><td class="mdescLeft">&#160;</td><td class="mdescRight">The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection.  <a href="#ad38b9ded1f04bfe8eb235e551fc08094">More...</a><br /></td></tr>
+<tr class="separator:ad38b9ded1f04bfe8eb235e551fc08094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a73aeff08af6cf6cadd7abce74c7ff4b2">connected_users</a></td></tr>
+<tr class="memdesc:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of currently-connected users.  <a href="#a73aeff08af6cf6cadd7abce74c7ff4b2">More...</a><br /></td></tr>
+<tr class="separator:a73aeff08af6cf6cadd7abce74c7ff4b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a></td></tr>
+<tr class="memdesc:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for join events, called whenever a new user is joining an active connection.  <a href="#a0adcf1953de6c315c2da9dac4b3eceb3">More...</a><br /></td></tr>
+<tr class="separator:a0adcf1953de6c315c2da9dac4b3eceb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad956a3935832e9048a2727d8c5a46cf6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a></td></tr>
+<tr class="memdesc:ad956a3935832e9048a2727d8c5a46cf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for leave events, called whenever a new user is leaving an active connection.  <a href="#ad956a3935832e9048a2727d8c5a46cf6">More...</a><br /></td></tr>
+<tr class="separator:ad956a3935832e9048a2727d8c5a46cf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e07a8086579ede2c692460998a87cac"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a></td></tr>
+<tr class="memdesc:a0e07a8086579ede2c692460998a87cac"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of all arguments accepted by this client , in order.  <a href="#a0e07a8086579ede2c692460998a87cac">More...</a><br /></td></tr>
+<tr class="separator:a0e07a8086579ede2c692460998a87cac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Guacamole proxy client. </p>
+<p>Represents a Guacamole proxy client (the client which communicates to a server on behalf of Guacamole, on behalf of the web-client). </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a0e07a8086579ede2c692460998a87cac"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e07a8086579ede2c692460998a87cac">&#9670;&nbsp;</a></span>args</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_client::args</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of all arguments accepted by this client , in order. </p>
+<p>New users will specify these arguments when they join the connection, and the values of those arguments will be made available to the function initializing newly-joined users.</p>
+<p>The guac_client_init entry point is expected to initialize this, if arguments are expected.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* __my_args[] = {</div><div class="line">    <span class="stringliteral">&quot;hostname&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;port&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;username&quot;</span>,</div><div class="line">    <span class="stringliteral">&quot;password&quot;</span>,</div><div class="line">    NULL</div><div class="line">};</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a> = __my_args;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a73aeff08af6cf6cadd7abce74c7ff4b2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a73aeff08af6cf6cadd7abce74c7ff4b2">&#9670;&nbsp;</a></span>connected_users</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_client::connected_users</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of currently-connected users. </p>
+<p>This value may include inactive users if cleanup of those users has not yet finished. </p>
+
+</div>
+</div>
+<a id="ad38b9ded1f04bfe8eb235e551fc08094"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad38b9ded1f04bfe8eb235e551fc08094">&#9670;&nbsp;</a></span>connection_id</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_client::connection_id</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The unique identifier allocated for the connection, which may be used within the Guacamole protocol to refer to this connection. </p>
+<p>This identifier is guaranteed to be unique from all existing connections and will not collide with any available protocol names. </p>
+
+</div>
+</div>
+<a id="a0569bc7eea8d37b5bd95bcd3821ca0a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0569bc7eea8d37b5bd95bcd3821ca0a3">&#9670;&nbsp;</a></span>data</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void* guac_client::data</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Arbitrary reference to proxy client-specific data. </p>
+<p>Implementors of a Guacamole proxy client can store any data they want here, which can then be retrieved as necessary in the message handlers. </p>
+
+</div>
+</div>
+<a id="a79e29c931fd448cf51f7153fea064169"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a79e29c931fd448cf51f7153fea064169">&#9670;&nbsp;</a></span>free_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-fntypes_8h.html#a7f8c6986f3db9818d016eee6fa562577">guac_client_free_handler</a>* guac_client::free_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for freeing data when the client is being unloaded. </p>
+<p>This handler will be called when the client needs to be unloaded by the proxy, and any data allocated by the proxy client should be freed.</p>
+<p>Note that this handler will NOT be called if the client's guac_client_init() function fails.</p>
+<p>Implement this handler if you store data inside the client.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a> = <a class="code" href="structguac__client.html#a79e29c931fd448cf51f7153fea064169">free_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a0adcf1953de6c315c2da9dac4b3eceb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0adcf1953de6c315c2da9dac4b3eceb3">&#9670;&nbsp;</a></span>join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>* guac_client::join_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for join events, called whenever a new user is joining an active connection. </p>
+<p>Note that because users may leave the connection at any time, a reference to a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> can become invalid at any time and should never be maintained outside the scope of a function invoked by libguac to which that <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> was passed (the scope in which the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> reference is guaranteed to be valid) UNLESS that reference is properly invalidated within the leave_handler.</p>
+<p>The handler is given a pointer to a newly-allocated <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> which must then be initialized, if needed.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a> = <a class="code" href="structguac__client.html#a0adcf1953de6c315c2da9dac4b3eceb3">join_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ad956a3935832e9048a2727d8c5a46cf6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad956a3935832e9048a2727d8c5a46cf6">&#9670;&nbsp;</a></span>leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* guac_client::leave_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for leave events, called whenever a new user is leaving an active connection. </p>
+<p>The handler is given a pointer to the leaving <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> whose custom data and associated resources must now be freed, if any.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_client_init(<a class="code" href="structguac__client.html">guac_client</a>* client) {</div><div class="line">    client-&gt;<a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a> = <a class="code" href="structguac__client.html#ad956a3935832e9048a2727d8c5a46cf6">leave_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a3eb24ba13be9ecb3a8c6f64a73932f43"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3eb24ba13be9ecb3a8c6f64a73932f43">&#9670;&nbsp;</a></span>log_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-fntypes_8h.html#a23837e22dbfe152719d596e6918bad3c">guac_client_log_handler</a>* guac_client::log_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Logging handler. </p>
+<p>This handler will be called via <a class="el" href="client_8h.html#ad53666bbe29346497cabb04fc9628208" title="Writes a message in the log used by the given client. ">guac_client_log()</a> when the client needs to log messages of any type.</p>
+<p>In general, only programs loading the client should implement this handler, as those are the programs that would provide the logging facilities.</p>
+<p>Client implementations should expect these handlers to already be set.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a>(<a class="code" href="structguac__client.html">guac_client</a>* client, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list <a class="code" href="structguac__client.html#a0e07a8086579ede2c692460998a87cac">args</a>);</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> function_of_daemon() {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__client.html">guac_client</a>* client = [pass <a class="code" href="structguac__client.html#a3eb24ba13be9ecb3a8c6f64a73932f43">log_handler</a> to guac_client_plugin_get_client()];</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="aa634856fd3c522377ba7345f3308000e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa634856fd3c522377ba7345f3308000e">&#9670;&nbsp;</a></span>socket</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_client::socket</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> structure to be used to communicate with all connected web-clients (users). </p>
+<p>Unlike the user-level <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>, this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> will broadcast instructions to all connected users simultaneously. It is expected that the implementor of any Guacamole proxy client will provide their own mechanism of I/O for their protocol. The <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> structure is used only to communicate conveniently with the Guacamole web-client. </p>
+
+</div>
+</div>
+<a id="acb3e3f5d0ce5726cdde768f97b473f53"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acb3e3f5d0ce5726cdde768f97b473f53">&#9670;&nbsp;</a></span>state</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="client-types_8h.html#a6f7e91d6dcb20598953948f077910c3b">guac_client_state</a> guac_client::state</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The current state of the client. </p>
+<p>When the client is first allocated, this will be initialized to GUAC_CLIENT_RUNNING. It will remain at GUAC_CLIENT_RUNNING until an event occurs which requires the client to shutdown, at which point the state becomes GUAC_CLIENT_STOPPING. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="client_8h_source.html">client.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__layer.html b/doc/1.1.0/libguac/structguac__layer.html
new file mode 100644
index 0000000..24b2aa6
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__layer.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_layer Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_layer Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single layer within the Guacamole protocol.  
+ <a href="structguac__layer.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="memItemLeft" align="right" valign="top"><a id="a686a85d9d758ba5f2f4426a4c4ae13ba"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__layer.html#a686a85d9d758ba5f2f4426a4c4ae13ba">index</a></td></tr>
+<tr class="memdesc:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this layer. <br /></td></tr>
+<tr class="separator:a686a85d9d758ba5f2f4426a4c4ae13ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single layer within the Guacamole protocol. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="layer_8h_source.html">layer.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__object.html b/doc/1.1.0/libguac/structguac__object.html
new file mode 100644
index 0000000..1f64f55
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__object.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_object Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_object Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single object within the Guacamole protocol.  
+ <a href="structguac__object.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a643f03695d246bbf73b5c4942755a4b4"><td class="memItemLeft" align="right" valign="top"><a id="a643f03695d246bbf73b5c4942755a4b4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a643f03695d246bbf73b5c4942755a4b4">index</a></td></tr>
+<tr class="memdesc:a643f03695d246bbf73b5c4942755a4b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this object. <br /></td></tr>
+<tr class="separator:a643f03695d246bbf73b5c4942755a4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memItemLeft" align="right" valign="top"><a id="ac9ca62cec5ba1124f8272da3adf7c44e"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#ac9ca62cec5ba1124f8272da3adf7c44e">data</a></td></tr>
+<tr class="memdesc:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary data associated with this object. <br /></td></tr>
+<tr class="separator:ac9ca62cec5ba1124f8272da3adf7c44e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0e86747e4f1265935310f0df3a7f4b21"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a></td></tr>
+<tr class="memdesc:a0e86747e4f1265935310f0df3a7f4b21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for get events sent by the Guacamole web-client.  <a href="#a0e86747e4f1265935310f0df3a7f4b21">More...</a><br /></td></tr>
+<tr class="separator:a0e86747e4f1265935310f0df3a7f4b21"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a33771a9a72c560b8ea99f940c4c412a6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a></td></tr>
+<tr class="memdesc:a33771a9a72c560b8ea99f940c4c412a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for put events sent by the Guacamole web-client.  <a href="#a33771a9a72c560b8ea99f940c4c412a6">More...</a><br /></td></tr>
+<tr class="separator:a33771a9a72c560b8ea99f940c4c412a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single object within the Guacamole protocol. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a0e86747e4f1265935310f0df3a7f4b21"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0e86747e4f1265935310f0df3a7f4b21">&#9670;&nbsp;</a></span>get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* guac_object::get_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for get events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a>, containing the object index which will persist through the duration of the transfer, and the name of the stream being requested. It is up to the get handler to create the required body stream.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;get_handler = <a class="code" href="structguac__object.html#a0e86747e4f1265935310f0df3a7f4b21">get_handler</a>;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a33771a9a72c560b8ea99f940c4c412a6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a33771a9a72c560b8ea99f940c4c412a6">&#9670;&nbsp;</a></span>put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* guac_object::put_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for put events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a> and <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which each contain their respective indices which will persist through the duration of the transfer, the mimetype of the data being transferred, and the name of the stream within the object being written to.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span> = <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(user);</div><div class="line">    <span class="keywordtype">object</span>-&gt;put_handler = <a class="code" href="structguac__object.html#a33771a9a72c560b8ea99f940c4c412a6">put_handler</a>;</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="object_8h_source.html">object.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__parser.html b/doc/1.1.0/libguac/structguac__parser.html
new file mode 100644
index 0000000..5f5eb02
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__parser.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_parser Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_parser Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data.  
+ <a href="structguac__parser.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a725767c57dc6f157afe2d7dd6ce281e1"><td class="memItemLeft" align="right" valign="top"><a id="a725767c57dc6f157afe2d7dd6ce281e1"></a>
+char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a725767c57dc6f157afe2d7dd6ce281e1">opcode</a></td></tr>
+<tr class="memdesc:a725767c57dc6f157afe2d7dd6ce281e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">The opcode of the instruction. <br /></td></tr>
+<tr class="separator:a725767c57dc6f157afe2d7dd6ce281e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a718ce9e60c8414c367ce393cc4e0cffe"><td class="memItemLeft" align="right" valign="top"><a id="a718ce9e60c8414c367ce393cc4e0cffe"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a718ce9e60c8414c367ce393cc4e0cffe">argc</a></td></tr>
+<tr class="memdesc:a718ce9e60c8414c367ce393cc4e0cffe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of arguments passed to this instruction. <br /></td></tr>
+<tr class="separator:a718ce9e60c8414c367ce393cc4e0cffe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="memItemLeft" align="right" valign="top"><a id="a9bd5362b9de8cf2adfcdff2c86bb4701"></a>
+char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a9bd5362b9de8cf2adfcdff2c86bb4701">argv</a></td></tr>
+<tr class="memdesc:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Array of all arguments passed to this instruction. <br /></td></tr>
+<tr class="separator:a9bd5362b9de8cf2adfcdff2c86bb4701"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2773500f91b3cdb7de7bdea280228054"><td class="memItemLeft" align="right" valign="top"><a id="a2773500f91b3cdb7de7bdea280228054"></a>
+<a class="el" href="parser-types_8h.html#a842bb8c1d5569ebebae3fdadb2527f30">guac_parse_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__parser.html#a2773500f91b3cdb7de7bdea280228054">state</a></td></tr>
+<tr class="memdesc:a2773500f91b3cdb7de7bdea280228054"><td class="mdescLeft">&#160;</td><td class="mdescRight">The parse state of the instruction. <br /></td></tr>
+<tr class="separator:a2773500f91b3cdb7de7bdea280228054"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A Guacamole protocol parser, which reads individual instructions, filling its own internal structure with the most recently read instruction data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="parser_8h_source.html">parser.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__pool.html b/doc/1.1.0/libguac/structguac__pool.html
new file mode 100644
index 0000000..6d49e65
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__pool.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_pool Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_pool Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>A pool of integers.  
+ <a href="structguac__pool.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="memItemLeft" align="right" valign="top"><a id="a71ed274c2481dbcd5e06bf7d8d74d71e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html#a71ed274c2481dbcd5e06bf7d8d74d71e">min_size</a></td></tr>
+<tr class="memdesc:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of integers which must have been returned by guac_pool_next_int before previously-used and freed integers are allowed to be returned. <br /></td></tr>
+<tr class="separator:a71ed274c2481dbcd5e06bf7d8d74d71e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="memItemLeft" align="right" valign="top"><a id="ac22871d5c476ca9a6dd25a2446fa0fd3"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool.html#ac22871d5c476ca9a6dd25a2446fa0fd3">active</a></td></tr>
+<tr class="memdesc:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of integers currently in use. <br /></td></tr>
+<tr class="separator:ac22871d5c476ca9a6dd25a2446fa0fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>A pool of integers. </p>
+<p>Integers can be removed from and later free'd back into the pool. New integers are returned when the pool is exhausted, or when the pool has not met some minimum size. Old, free'd integers are returned otherwise. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="pool_8h_source.html">pool.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__pool__int.html b/doc/1.1.0/libguac/structguac__pool__int.html
new file mode 100644
index 0000000..621ca3a
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__pool__int.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_pool_int Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_pool_int Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single integer within a larger pool of integers.  
+ <a href="structguac__pool__int.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="memItemLeft" align="right" valign="top"><a id="af76ff5f21c6e0f69d95cdd1385ea24a4"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__pool__int.html#af76ff5f21c6e0f69d95cdd1385ea24a4">value</a></td></tr>
+<tr class="memdesc:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The integer value of this pool entry. <br /></td></tr>
+<tr class="separator:af76ff5f21c6e0f69d95cdd1385ea24a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single integer within a larger pool of integers. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="pool_8h_source.html">pool.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__socket.html b/doc/1.1.0/libguac/structguac__socket.html
new file mode 100644
index 0000000..20d69aa
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__socket.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_socket Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_socket Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>The core I/O object of Guacamole.  
+ <a href="structguac__socket.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ac8340e5627b43138bb50aac6c4368c0d"><td class="memItemLeft" align="right" valign="top"><a id="ac8340e5627b43138bb50aac6c4368c0d"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ac8340e5627b43138bb50aac6c4368c0d">data</a></td></tr>
+<tr class="memdesc:ac8340e5627b43138bb50aac6c4368c0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary socket-specific data. <br /></td></tr>
+<tr class="separator:ac8340e5627b43138bb50aac6c4368c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a10042a8e591737aec8d4db5a3423b250"><td class="memItemLeft" align="right" valign="top"><a id="a10042a8e591737aec8d4db5a3423b250"></a>
+<a class="el" href="socket-fntypes_8h.html#a75396c8cb7b0ba91102fcd447a1eb36b">guac_socket_read_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a10042a8e591737aec8d4db5a3423b250">read_handler</a></td></tr>
+<tr class="memdesc:a10042a8e591737aec8d4db5a3423b250"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when data needs to be read from the socket. <br /></td></tr>
+<tr class="separator:a10042a8e591737aec8d4db5a3423b250"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="memItemLeft" align="right" valign="top"><a id="a0f5f24200b0dad4ef1443b863d1bfc7d"></a>
+<a class="el" href="socket-fntypes_8h.html#a7198af0a6bbac52794eb248c81d90c6a">guac_socket_write_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a0f5f24200b0dad4ef1443b863d1bfc7d">write_handler</a></td></tr>
+<tr class="memdesc:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever data is written to this socket. <br /></td></tr>
+<tr class="separator:a0f5f24200b0dad4ef1443b863d1bfc7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc6ff82e38b84c9e876fd797aafedd1b"><td class="memItemLeft" align="right" valign="top"><a id="afc6ff82e38b84c9e876fd797aafedd1b"></a>
+<a class="el" href="socket-fntypes_8h.html#a894bc88c6288ee6b6713a2ea64bd05a0">guac_socket_flush_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#afc6ff82e38b84c9e876fd797aafedd1b">flush_handler</a></td></tr>
+<tr class="memdesc:afc6ff82e38b84c9e876fd797aafedd1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever this socket needs to be flushed. <br /></td></tr>
+<tr class="separator:afc6ff82e38b84c9e876fd797aafedd1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d39f1476d3d3440485697a0eabfe471"><td class="memItemLeft" align="right" valign="top"><a id="a1d39f1476d3d3440485697a0eabfe471"></a>
+<a class="el" href="socket-fntypes_8h.html#a1b714d65f18d57bb52f929c7d3909526">guac_socket_lock_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a1d39f1476d3d3440485697a0eabfe471">lock_handler</a></td></tr>
+<tr class="memdesc:a1d39f1476d3d3440485697a0eabfe471"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever a socket needs to be acquired for exclusive access, such as when an instruction is about to be written. <br /></td></tr>
+<tr class="separator:a1d39f1476d3d3440485697a0eabfe471"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a67be8367b5e1b330ee151b22c692500b"><td class="memItemLeft" align="right" valign="top"><a id="a67be8367b5e1b330ee151b22c692500b"></a>
+<a class="el" href="socket-fntypes_8h.html#af1a6f8eb81522aab289c9f4ed6051d3f">guac_socket_unlock_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a67be8367b5e1b330ee151b22c692500b">unlock_handler</a></td></tr>
+<tr class="memdesc:a67be8367b5e1b330ee151b22c692500b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever exclusive access to a socket is being released, such as when an instruction has finished being written. <br /></td></tr>
+<tr class="separator:a67be8367b5e1b330ee151b22c692500b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="memItemLeft" align="right" valign="top"><a id="ad29e7f8a6819ca7bb541e8a947d5bc4f"></a>
+<a class="el" href="socket-fntypes_8h.html#a934350207615e0e2066954f9484153f8">guac_socket_select_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ad29e7f8a6819ca7bb541e8a947d5bc4f">select_handler</a></td></tr>
+<tr class="memdesc:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called whenever <a class="el" href="socket_8h.html#a41b0d7a25ccda3d0ae20143880cf53b7" title="Waits for input to be available on the given guac_socket object until the specified timeout elapses...">guac_socket_select()</a> is invoked on this socket. <br /></td></tr>
+<tr class="separator:ad29e7f8a6819ca7bb541e8a947d5bc4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1044cde496cfe11c914c623dc1e29678"><td class="memItemLeft" align="right" valign="top"><a id="a1044cde496cfe11c914c623dc1e29678"></a>
+<a class="el" href="socket-fntypes_8h.html#a9700a8ba2011d6e6ce13e3e6c6397fc2">guac_socket_free_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#a1044cde496cfe11c914c623dc1e29678">free_handler</a></td></tr>
+<tr class="memdesc:a1044cde496cfe11c914c623dc1e29678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler which will be called when the socket is free'd (closed). <br /></td></tr>
+<tr class="separator:a1044cde496cfe11c914c623dc1e29678"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac2d5236c7e570dfee207511241edaa9b"><td class="memItemLeft" align="right" valign="top"><a id="ac2d5236c7e570dfee207511241edaa9b"></a>
+<a class="el" href="socket-types_8h.html#a0ac0c0cd123b57d8aba5e6ec6fd20939">guac_socket_state</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#ac2d5236c7e570dfee207511241edaa9b">state</a></td></tr>
+<tr class="memdesc:ac2d5236c7e570dfee207511241edaa9b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current state of this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. <br /></td></tr>
+<tr class="separator:ac2d5236c7e570dfee207511241edaa9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adf00e9c13ff3808fceb4c71c1172fb51"><td class="memItemLeft" align="right" valign="top"><a id="adf00e9c13ff3808fceb4c71c1172fb51"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket.html#adf00e9c13ff3808fceb4c71c1172fb51">last_write_timestamp</a></td></tr>
+<tr class="memdesc:adf00e9c13ff3808fceb4c71c1172fb51"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timestamp associated with the time the last block of data was written to this <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a>. <br /></td></tr>
+<tr class="separator:adf00e9c13ff3808fceb4c71c1172fb51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>The core I/O object of Guacamole. </p>
+<p><a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> provides buffered input and output as well as convenience methods for efficiently writing base64 data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="socket_8h_source.html">socket.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__socket__ssl__data.html b/doc/1.1.0/libguac/structguac__socket__ssl__data.html
new file mode 100644
index 0000000..c83d0bb
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__socket__ssl__data.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_socket_ssl_data Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_socket_ssl_data Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>SSL socket-specific data.  
+ <a href="structguac__socket__ssl__data.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="memItemLeft" align="right" valign="top"><a id="a4b6134fe4c41d78e42abbe5d8c27330a"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#a4b6134fe4c41d78e42abbe5d8c27330a">fd</a></td></tr>
+<tr class="memdesc:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The file descriptor that SSL communication will take place over. <br /></td></tr>
+<tr class="separator:a4b6134fe4c41d78e42abbe5d8c27330a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="memItemLeft" align="right" valign="top"><a id="a22b295ba9b80cc15a5dfa4c06aea541f"></a>
+SSL_CTX *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#a22b295ba9b80cc15a5dfa4c06aea541f">context</a></td></tr>
+<tr class="memdesc:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The current SSL context. <br /></td></tr>
+<tr class="separator:a22b295ba9b80cc15a5dfa4c06aea541f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab86a780b4801fdbf411a24255cf700ac"><td class="memItemLeft" align="right" valign="top"><a id="ab86a780b4801fdbf411a24255cf700ac"></a>
+SSL *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__socket__ssl__data.html#ab86a780b4801fdbf411a24255cf700ac">ssl</a></td></tr>
+<tr class="memdesc:ab86a780b4801fdbf411a24255cf700ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">The SSL connection, created automatically via <a class="el" href="socket-ssl_8h.html#afa6689181258a29460b978f1e496f790" title="Creates a new guac_socket which will use SSL for all communication. ">guac_socket_open_secure()</a>. <br /></td></tr>
+<tr class="separator:ab86a780b4801fdbf411a24255cf700ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>SSL socket-specific data. </p>
+</div><hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="socket-ssl_8h_source.html">socket-ssl.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__stream.html b/doc/1.1.0/libguac/structguac__stream.html
new file mode 100644
index 0000000..93e3bf6
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__stream.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_stream Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_stream Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Represents a single stream within the Guacamole protocol.  
+ <a href="structguac__stream.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memItemLeft" align="right" valign="top"><a id="a487951c2cc77b2e1637e3aa0b5faaa60"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a487951c2cc77b2e1637e3aa0b5faaa60">index</a></td></tr>
+<tr class="memdesc:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of this stream. <br /></td></tr>
+<tr class="separator:a487951c2cc77b2e1637e3aa0b5faaa60"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acdf20063ca408431862d901c9445b429"><td class="memItemLeft" align="right" valign="top"><a id="acdf20063ca408431862d901c9445b429"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a></td></tr>
+<tr class="memdesc:acdf20063ca408431862d901c9445b429"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary data associated with this stream. <br /></td></tr>
+<tr class="separator:acdf20063ca408431862d901c9445b429"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acd077c7266d10871ee1e07951dfa72ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a></td></tr>
+<tr class="memdesc:acd077c7266d10871ee1e07951dfa72ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for ack events sent by the Guacamole web-client.  <a href="#acd077c7266d10871ee1e07951dfa72ff">More...</a><br /></td></tr>
+<tr class="separator:acd077c7266d10871ee1e07951dfa72ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a51122ba04f416d8ce047542c603632f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a></td></tr>
+<tr class="memdesc:a51122ba04f416d8ce047542c603632f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for blob events sent by the Guacamole web-client.  <a href="#a51122ba04f416d8ce047542c603632f8">More...</a><br /></td></tr>
+<tr class="separator:a51122ba04f416d8ce047542c603632f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a></td></tr>
+<tr class="memdesc:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for stream end events sent by the Guacamole web-client.  <a href="#a96fef1b691d5c5ebaf78bff6df3b01db">More...</a><br /></td></tr>
+<tr class="separator:a96fef1b691d5c5ebaf78bff6df3b01db"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Represents a single stream within the Guacamole protocol. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="acd077c7266d10871ee1e07951dfa72ff"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acd077c7266d10871ee1e07951dfa72ff">&#9670;&nbsp;</a></span>ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* guac_stream::ack_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for ack events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> some_function(<a class="code" href="structguac__user.html">guac_user</a>* user) {</div><div class="line"></div><div class="line">    <a class="code" href="structguac__stream.html">guac_stream</a>* stream = <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(user);</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a> = <a class="code" href="structguac__stream.html#acd077c7266d10871ee1e07951dfa72ff">ack_handler</a>;</div><div class="line"></div><div class="line">    <a class="code" href="protocol_8h.html#a7e8a055e57afbcd9c9b520767d9a1c64">guac_protocol_send_clipboard</a>(user-&gt;<a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>,</div><div class="line">        stream, <span class="stringliteral">&quot;text/plain&quot;</span>);</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a51122ba04f416d8ce047542c603632f8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a51122ba04f416d8ce047542c603632f8">&#9670;&nbsp;</a></span>blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* guac_stream::blob_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for blob events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">void</span>* <a class="code" href="structguac__stream.html#acdf20063ca408431862d901c9445b429">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype) {</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a> = <a class="code" href="structguac__stream.html#a51122ba04f416d8ce047542c603632f8">blob_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a96fef1b691d5c5ebaf78bff6df3b01db"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a96fef1b691d5c5ebaf78bff6df3b01db">&#9670;&nbsp;</a></span>end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* guac_stream::end_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for stream end events sent by the Guacamole web-client. </p>
+<p>The handler takes only a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index. This <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_clipboard_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype) {</div><div class="line">    stream-&gt;<a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a> = <a class="code" href="structguac__stream.html#a96fef1b691d5c5ebaf78bff6df3b01db">end_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="stream_8h_source.html">stream.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__user.html b/doc/1.1.0/libguac/structguac__user.html
new file mode 100644
index 0000000..266c1d1
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__user.html
@@ -0,0 +1,540 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_user Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_user Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Representation of a physical connection within a larger logical connection which may be shared.  
+ <a href="structguac__user.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a5e296149a26932dfeb7d8b0bac933ecf"><td class="memItemLeft" align="right" valign="top"><a id="a5e296149a26932dfeb7d8b0bac933ecf"></a>
+<a class="el" href="structguac__client.html">guac_client</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a></td></tr>
+<tr class="memdesc:a5e296149a26932dfeb7d8b0bac933ecf"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> to which this user belongs. <br /></td></tr>
+<tr class="separator:a5e296149a26932dfeb7d8b0bac933ecf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8496638b8c4c52f5f15d483b92becf27"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a></td></tr>
+<tr class="memdesc:a8496638b8c4c52f5f15d483b92becf27"><td class="mdescLeft">&#160;</td><td class="mdescRight">This user's actual socket.  <a href="#a8496638b8c4c52f5f15d483b92becf27">More...</a><br /></td></tr>
+<tr class="separator:a8496638b8c4c52f5f15d483b92becf27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a></td></tr>
+<tr class="memdesc:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="mdescLeft">&#160;</td><td class="mdescRight">The unique identifier allocated for this user, which may be used within the Guacamole protocol to refer to this user.  <a href="#aad1c6a8b56d17c12eb1f1e36c4798c70">More...</a><br /></td></tr>
+<tr class="separator:aad1c6a8b56d17c12eb1f1e36c4798c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a265180af7291745b2e090ee6fa47cbb8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a></td></tr>
+<tr class="memdesc:a265180af7291745b2e090ee6fa47cbb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-zero if this user is the owner of the associated connection, zero otherwise.  <a href="#a265180af7291745b2e090ee6fa47cbb8">More...</a><br /></td></tr>
+<tr class="separator:a265180af7291745b2e090ee6fa47cbb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1b52d918f437923d65e9b3eecb20fcfd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a></td></tr>
+<tr class="memdesc:a1b52d918f437923d65e9b3eecb20fcfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-zero if this user is active (connected), and zero otherwise.  <a href="#a1b52d918f437923d65e9b3eecb20fcfd">More...</a><br /></td></tr>
+<tr class="separator:a1b52d918f437923d65e9b3eecb20fcfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aebdee192ef52dfe8956c776adc65fb16"><td class="memItemLeft" align="right" valign="top"><a id="aebdee192ef52dfe8956c776adc65fb16"></a>
+<a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a></td></tr>
+<tr class="memdesc:aebdee192ef52dfe8956c776adc65fb16"><td class="mdescLeft">&#160;</td><td class="mdescRight">The time (in milliseconds) of receipt of the last sync message from the user. <br /></td></tr>
+<tr class="separator:aebdee192ef52dfe8956c776adc65fb16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a></td></tr>
+<tr class="memdesc:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="mdescLeft">&#160;</td><td class="mdescRight">The duration of the last frame rendered by the user, in milliseconds.  <a href="#ac7e84b1bf15d3d15ba49ce58f1819060">More...</a><br /></td></tr>
+<tr class="separator:ac7e84b1bf15d3d15ba49ce58f1819060"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="memItemLeft" align="right" valign="top"><a id="a4b097cae9283bb0caf70189d4f3d1d0e"></a>
+int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a></td></tr>
+<tr class="memdesc:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The overall lag experienced by the user relative to the stream of frames, roughly excluding network lag. <br /></td></tr>
+<tr class="separator:a4b097cae9283bb0caf70189d4f3d1d0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0120f63e0eb933761666047ed80e483f"><td class="memItemLeft" align="right" valign="top"><a id="a0120f63e0eb933761666047ed80e483f"></a>
+<a class="el" href="structguac__user__info.html">guac_user_info</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a></td></tr>
+<tr class="memdesc:a0120f63e0eb933761666047ed80e483f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information structure containing properties exposed by the remote user during the initial handshake process. <br /></td></tr>
+<tr class="separator:a0120f63e0eb933761666047ed80e483f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad424a52c5d996e4a33de5dad61555883"><td class="memItemLeft" align="right" valign="top"><a id="ad424a52c5d996e4a33de5dad61555883"></a>
+void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a></td></tr>
+<tr class="memdesc:ad424a52c5d996e4a33de5dad61555883"><td class="mdescLeft">&#160;</td><td class="mdescRight">Arbitrary user-specific data. <br /></td></tr>
+<tr class="separator:ad424a52c5d996e4a33de5dad61555883"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05ec6fd1894ff8df10c051b20df1b763"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a></td></tr>
+<tr class="memdesc:a05ec6fd1894ff8df10c051b20df1b763"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for mouse events sent by the Gaucamole web-client.  <a href="#a05ec6fd1894ff8df10c051b20df1b763">More...</a><br /></td></tr>
+<tr class="separator:a05ec6fd1894ff8df10c051b20df1b763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a></td></tr>
+<tr class="memdesc:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for key events sent by the Guacamole web-client.  <a href="#ab9b8b3c268a0d14a28bdae6929cffb13">More...</a><br /></td></tr>
+<tr class="separator:ab9b8b3c268a0d14a28bdae6929cffb13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a77f042802092c8bbf4407836f3185343"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a></td></tr>
+<tr class="memdesc:a77f042802092c8bbf4407836f3185343"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for clipboard events sent by the Guacamole web-client.  <a href="#a77f042802092c8bbf4407836f3185343">More...</a><br /></td></tr>
+<tr class="separator:a77f042802092c8bbf4407836f3185343"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a36a2fee906be0898907ba6e4a97bdb9a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a></td></tr>
+<tr class="memdesc:a36a2fee906be0898907ba6e4a97bdb9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for size events sent by the Guacamole web-client.  <a href="#a36a2fee906be0898907ba6e4a97bdb9a">More...</a><br /></td></tr>
+<tr class="separator:a36a2fee906be0898907ba6e4a97bdb9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b958a20fbe7cf082d5ee074fceac474"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a></td></tr>
+<tr class="memdesc:a8b958a20fbe7cf082d5ee074fceac474"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for file events sent by the Guacamole web-client.  <a href="#a8b958a20fbe7cf082d5ee074fceac474">More...</a><br /></td></tr>
+<tr class="separator:a8b958a20fbe7cf082d5ee074fceac474"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af35d1f6f2c97d917bf88cf66384f58a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a></td></tr>
+<tr class="memdesc:af35d1f6f2c97d917bf88cf66384f58a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for pipe events sent by the Guacamole web-client.  <a href="#af35d1f6f2c97d917bf88cf66384f58a3">More...</a><br /></td></tr>
+<tr class="separator:af35d1f6f2c97d917bf88cf66384f58a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a></td></tr>
+<tr class="memdesc:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for ack events sent by the Guacamole web-client.  <a href="#ad44c1bf6ab56aae0098458a1af2aa6be">More...</a><br /></td></tr>
+<tr class="separator:ad44c1bf6ab56aae0098458a1af2aa6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88a14fda25c9929269d198d4d602f7fb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a></td></tr>
+<tr class="memdesc:a88a14fda25c9929269d198d4d602f7fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for blob events sent by the Guacamole web-client.  <a href="#a88a14fda25c9929269d198d4d602f7fb">More...</a><br /></td></tr>
+<tr class="separator:a88a14fda25c9929269d198d4d602f7fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a793f7ef1cd818c296e7a5801c349f5ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a></td></tr>
+<tr class="memdesc:a793f7ef1cd818c296e7a5801c349f5ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for stream end events sent by the Guacamole web-client.  <a href="#a793f7ef1cd818c296e7a5801c349f5ed">More...</a><br /></td></tr>
+<tr class="separator:a793f7ef1cd818c296e7a5801c349f5ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a209e83f080baf2e84d04cf08395374d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a></td></tr>
+<tr class="memdesc:a209e83f080baf2e84d04cf08395374d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for sync events sent by the Guacamole web-client.  <a href="#a209e83f080baf2e84d04cf08395374d2">More...</a><br /></td></tr>
+<tr class="separator:a209e83f080baf2e84d04cf08395374d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a12f1c20cab11d657e0f255db10f42e2f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a></td></tr>
+<tr class="memdesc:a12f1c20cab11d657e0f255db10f42e2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for leave events fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> when a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> is leaving an active connection.  <a href="#a12f1c20cab11d657e0f255db10f42e2f">More...</a><br /></td></tr>
+<tr class="separator:a12f1c20cab11d657e0f255db10f42e2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ada73c04bbf06de4280f2d7679190a19b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a></td></tr>
+<tr class="memdesc:ada73c04bbf06de4280f2d7679190a19b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for get events sent by the Guacamole web-client.  <a href="#ada73c04bbf06de4280f2d7679190a19b">More...</a><br /></td></tr>
+<tr class="separator:ada73c04bbf06de4280f2d7679190a19b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a></td></tr>
+<tr class="memdesc:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for put events sent by the Guacamole web-client.  <a href="#a0b33553d0e1af01d8c9fbc6ec33202c3">More...</a><br /></td></tr>
+<tr class="separator:a0b33553d0e1af01d8c9fbc6ec33202c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a391e11605bf5605df3e27f6f7d0e2c69"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a></td></tr>
+<tr class="memdesc:a391e11605bf5605df3e27f6f7d0e2c69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for audio events sent by the Guacamole web-client.  <a href="#a391e11605bf5605df3e27f6f7d0e2c69">More...</a><br /></td></tr>
+<tr class="separator:a391e11605bf5605df3e27f6f7d0e2c69"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6b6bdcd73d29132df5f331921ca287a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a></td></tr>
+<tr class="memdesc:ab6b6bdcd73d29132df5f331921ca287a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for argv events (updates to the connection parameters of an in-progress connection) sent by the Guacamole web-client.  <a href="#ab6b6bdcd73d29132df5f331921ca287a">More...</a><br /></td></tr>
+<tr class="separator:ab6b6bdcd73d29132df5f331921ca287a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Representation of a physical connection within a larger logical connection which may be shared. </p>
+<p>Logical connections are represented by <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="ad44c1bf6ab56aae0098458a1af2aa6be"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad44c1bf6ab56aae0098458a1af2aa6be">&#9670;&nbsp;</a></span>ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* guac_user::ack_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for ack events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, a string containing the error or status message, and a status code.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a> = <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a1b52d918f437923d65e9b3eecb20fcfd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1b52d918f437923d65e9b3eecb20fcfd">&#9670;&nbsp;</a></span>active</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::active</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Non-zero if this user is active (connected), and zero otherwise. </p>
+<p>When the user is created, this will be set to a non-zero value. If an event occurs which requires that the user disconnect, or the user has disconnected, this will be reset to zero. </p>
+
+</div>
+</div>
+<a id="ab6b6bdcd73d29132df5f331921ca287a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab6b6bdcd73d29132df5f331921ca287a">&#9670;&nbsp;</a></span>argv_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>* guac_user::argv_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for argv events (updates to the connection parameters of an in-progress connection) sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the data being transferred, and the argument (connection parameter) name.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a> = <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a391e11605bf5605df3e27f6f7d0e2c69"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a391e11605bf5605df3e27f6f7d0e2c69">&#9670;&nbsp;</a></span>audio_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* guac_user::audio_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for audio events sent by the Guacamole web-client. </p>
+<p>This handler will be called whenever the web-client wishes to send a continuous stream of audio data from some arbitrary source (a microphone, for example).</p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which contains the stream index and will persist through the duration of the transfer, and the mimetype of the data being transferred.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a> = <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a88a14fda25c9929269d198d4d602f7fb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88a14fda25c9929269d198d4d602f7fb">&#9670;&nbsp;</a></span>blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* guac_user::blob_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for blob events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, an arbitrary buffer containing the blob, and the length of the blob.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>, <span class="keywordtype">int</span> length);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a> = <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a77f042802092c8bbf4407836f3185343"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a77f042802092c8bbf4407836f3185343">&#9670;&nbsp;</a></span>clipboard_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* guac_user::clipboard_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for clipboard events sent by the Guacamole web-client. </p>
+<p>This handler will be called whenever the web-client sets the data of the clipboard.</p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which contains the stream index and will persist through the duration of the transfer, and the mimetype of the data being transferred.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a> = <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a793f7ef1cd818c296e7a5801c349f5ed"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a793f7ef1cd818c296e7a5801c349f5ed">&#9670;&nbsp;</a></span>end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* guac_user::end_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for stream end events sent by the Guacamole web-client. </p>
+<p>The handler takes only a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index. This <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a> = <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a8b958a20fbe7cf082d5ee074fceac474"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8b958a20fbe7cf082d5ee074fceac474">&#9670;&nbsp;</a></span>file_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* guac_user::file_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for file events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the file being transferred, and the filename.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* filename);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a> = <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ada73c04bbf06de4280f2d7679190a19b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ada73c04bbf06de4280f2d7679190a19b">&#9670;&nbsp;</a></span>get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* guac_user::get_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for get events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a>, containing the object index which will persist through the duration of the transfer, and the name of the stream being requested. It is up to the get handler to create the required body stream.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a> = <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ab9b8b3c268a0d14a28bdae6929cffb13"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab9b8b3c268a0d14a28bdae6929cffb13">&#9670;&nbsp;</a></span>key_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* guac_user::key_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for key events sent by the Guacamole web-client. </p>
+<p>The handler takes the integer X11 keysym associated with the key being pressed/released, and an integer representing whether the key is being pressed (1) or released (0).</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a> = <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="ac7e84b1bf15d3d15ba49ce58f1819060"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac7e84b1bf15d3d15ba49ce58f1819060">&#9670;&nbsp;</a></span>last_frame_duration</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::last_frame_duration</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The duration of the last frame rendered by the user, in milliseconds. </p>
+<p>This duration will include network and processing lag, and thus should be slightly higher than the true frame duration. </p>
+
+</div>
+</div>
+<a id="a12f1c20cab11d657e0f255db10f42e2f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a12f1c20cab11d657e0f255db10f42e2f">&#9670;&nbsp;</a></span>leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* guac_user::leave_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for leave events fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> when a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> is leaving an active connection. </p>
+<p>The handler takes only a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> which will be the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> that left the connection. This <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> will be disposed of immediately after this event is finished.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> my_join_handler(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argv, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a> = <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a05ec6fd1894ff8df10c051b20df1b763"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a05ec6fd1894ff8df10c051b20df1b763">&#9670;&nbsp;</a></span>mouse_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* guac_user::mouse_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for mouse events sent by the Gaucamole web-client. </p>
+<p>The handler takes the integer mouse X and Y coordinates, as well as a button mask containing the bitwise OR of all button values currently being pressed. Those values are:</p>
+<table class="doxtable">
+<tr>
+<th>Button </th><th>Value </th></tr>
+<tr>
+<td>Left </td><td>1 </td></tr>
+<tr>
+<td>Middle </td><td>2 </td></tr>
+<tr>
+<td>Right </td><td>4 </td></tr>
+<tr>
+<td>Scrollwheel Up </td><td>8 </td></tr>
+<tr>
+<td>Scrollwheel Down</td><td>16 </td></tr>
+</table>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> button_mask);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a> = <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a265180af7291745b2e090ee6fa47cbb8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a265180af7291745b2e090ee6fa47cbb8">&#9670;&nbsp;</a></span>owner</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user::owner</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Non-zero if this user is the owner of the associated connection, zero otherwise. </p>
+<p>The owner is the user which created the connection. </p>
+
+</div>
+</div>
+<a id="af35d1f6f2c97d917bf88cf66384f58a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af35d1f6f2c97d917bf88cf66384f58a3">&#9670;&nbsp;</a></span>pipe_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* guac_user::pipe_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for pipe events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a> which contains the stream index and will persist through the duration of the transfer, the mimetype of the data being transferred, and the pipe name.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line">        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a> = <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a0b33553d0e1af01d8c9fbc6ec33202c3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0b33553d0e1af01d8c9fbc6ec33202c3">&#9670;&nbsp;</a></span>put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* guac_user::put_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for put events sent by the Guacamole web-client. </p>
+<p>The handler takes a <a class="el" href="structguac__object.html" title="Represents a single object within the Guacamole protocol. ">guac_object</a> and <a class="el" href="structguac__stream.html" title="Represents a single stream within the Guacamole protocol. ">guac_stream</a>, which each contain their respective indices which will persist through the duration of the transfer, the mimetype of the data being transferred, and the name of the stream within the object being written to.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line">        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a> = <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a36a2fee906be0898907ba6e4a97bdb9a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a36a2fee906be0898907ba6e4a97bdb9a">&#9670;&nbsp;</a></span>size_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* guac_user::size_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for size events sent by the Guacamole web-client. </p>
+<p>The handler takes an integer width and integer height, representing the current visible screen area of the client.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a> = <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="a8496638b8c4c52f5f15d483b92becf27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8496638b8c4c52f5f15d483b92becf27">&#9670;&nbsp;</a></span>socket</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__socket.html">guac_socket</a>* guac_user::socket</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>This user's actual socket. </p>
+<p>Data written to this socket will be received by this user alone, and data sent by this specific user will be received by this socket. </p>
+
+</div>
+</div>
+<a id="a209e83f080baf2e84d04cf08395374d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a209e83f080baf2e84d04cf08395374d2">&#9670;&nbsp;</a></span>sync_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* guac_user::sync_handler</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for sync events sent by the Guacamole web-client. </p>
+<p>Sync events are used to track per-user latency.</p>
+<p>The handler takes only a guac_timestamp which contains the timestamp received from the user. Latency can be determined by comparing this timestamp against the last_sent_timestamp of <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.</p>
+<p>Example: </p><div class="fragment"><div class="line"><span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"></div><div class="line"><span class="keywordtype">int</span> guac_user_init(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv) {</div><div class="line">    user-&gt;<a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a> = <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line">}</div></div><!-- fragment --> 
+</div>
+</div>
+<a id="aad1c6a8b56d17c12eb1f1e36c4798c70"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad1c6a8b56d17c12eb1f1e36c4798c70">&#9670;&nbsp;</a></span>user_id</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_user::user_id</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The unique identifier allocated for this user, which may be used within the Guacamole protocol to refer to this user. </p>
+<p>This identifier is guaranteed to be unique from all existing connections and users, and will not collide with any available protocol names. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="user_8h_source.html">user.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/structguac__user__info.html b/doc/1.1.0/libguac/structguac__user__info.html
new file mode 100644
index 0000000..982d13f
--- /dev/null
+++ b/doc/1.1.0/libguac/structguac__user__info.html
@@ -0,0 +1,242 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guac_user_info Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-attribs">Data Fields</a>  </div>
+  <div class="headertitle">
+<div class="title">guac_user_info Struct Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Information exposed by the remote client during the connection handshake which can be used by a client plugin.  
+ <a href="structguac__user__info.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a496d5f3d26a7db0a0490afa553126c66"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a></td></tr>
+<tr class="memdesc:a496d5f3d26a7db0a0490afa553126c66"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pixels the remote client requests for the display width.  <a href="#a496d5f3d26a7db0a0490afa553126c66">More...</a><br /></td></tr>
+<tr class="separator:a496d5f3d26a7db0a0490afa553126c66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a252079af642b62554566e8675dc43354"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a></td></tr>
+<tr class="memdesc:a252079af642b62554566e8675dc43354"><td class="mdescLeft">&#160;</td><td class="mdescRight">The number of pixels the remote client requests for the display height.  <a href="#a252079af642b62554566e8675dc43354">More...</a><br /></td></tr>
+<tr class="separator:a252079af642b62554566e8675dc43354"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a043432620dafe7ba38fcd3550fdc7d27"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a></td></tr>
+<tr class="memdesc:a043432620dafe7ba38fcd3550fdc7d27"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported audio mimetypes.  <a href="#a043432620dafe7ba38fcd3550fdc7d27">More...</a><br /></td></tr>
+<tr class="separator:a043432620dafe7ba38fcd3550fdc7d27"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ace535bea6879596b6473657f3fc83b57"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a></td></tr>
+<tr class="memdesc:ace535bea6879596b6473657f3fc83b57"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported video mimetypes.  <a href="#ace535bea6879596b6473657f3fc83b57">More...</a><br /></td></tr>
+<tr class="separator:ace535bea6879596b6473657f3fc83b57"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac05b09cce376e656f4e4baa19f888345"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a></td></tr>
+<tr class="memdesc:ac05b09cce376e656f4e4baa19f888345"><td class="mdescLeft">&#160;</td><td class="mdescRight">NULL-terminated array of client-supported image mimetypes.  <a href="#ac05b09cce376e656f4e4baa19f888345">More...</a><br /></td></tr>
+<tr class="separator:ac05b09cce376e656f4e4baa19f888345"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a></td></tr>
+<tr class="memdesc:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The DPI of the physical remote display if configured for the optimal width/height combination described here.  <a href="#ac19c08c0ef7441556be0afed6fb9c7c7">More...</a><br /></td></tr>
+<tr class="separator:ac19c08c0ef7441556be0afed6fb9c7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a2c08990b6fd1e0627652a9c879ea2078"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">timezone</a></td></tr>
+<tr class="memdesc:a2c08990b6fd1e0627652a9c879ea2078"><td class="mdescLeft">&#160;</td><td class="mdescRight">The timezone of the remote system.  <a href="#a2c08990b6fd1e0627652a9c879ea2078">More...</a><br /></td></tr>
+<tr class="separator:a2c08990b6fd1e0627652a9c879ea2078"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Information exposed by the remote client during the connection handshake which can be used by a client plugin. </p>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a id="a043432620dafe7ba38fcd3550fdc7d27"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a043432620dafe7ba38fcd3550fdc7d27">&#9670;&nbsp;</a></span>audio_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::audio_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported audio mimetypes. </p>
+<p>If the client does not support audio at all, this will be NULL. </p>
+
+</div>
+</div>
+<a id="ac05b09cce376e656f4e4baa19f888345"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac05b09cce376e656f4e4baa19f888345">&#9670;&nbsp;</a></span>image_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::image_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported image mimetypes. </p>
+<p>Though all supported image mimetypes will be listed here, it can be safely assumed that all clients will support at least "image/png" and "image/jpeg". </p>
+
+</div>
+</div>
+<a id="a252079af642b62554566e8675dc43354"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a252079af642b62554566e8675dc43354">&#9670;&nbsp;</a></span>optimal_height</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_height</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of pixels the remote client requests for the display height. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="ac19c08c0ef7441556be0afed6fb9c7c7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac19c08c0ef7441556be0afed6fb9c7c7">&#9670;&nbsp;</a></span>optimal_resolution</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_resolution</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The DPI of the physical remote display if configured for the optimal width/height combination described here. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the stated resolution of the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="a496d5f3d26a7db0a0490afa553126c66"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a496d5f3d26a7db0a0490afa553126c66">&#9670;&nbsp;</a></span>optimal_width</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_info::optimal_width</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The number of pixels the remote client requests for the display width. </p>
+<p>This need not be honored by a client plugin implementation, but if the underlying protocol of the client plugin supports dynamic sizing of the screen, honoring the display size request is recommended. </p>
+
+</div>
+</div>
+<a id="a2c08990b6fd1e0627652a9c879ea2078"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2c08990b6fd1e0627652a9c879ea2078">&#9670;&nbsp;</a></span>timezone</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char* guac_user_info::timezone</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The timezone of the remote system. </p>
+<p>If the client does not provide a specific timezone then this will be NULL. The format of the timezone is the standard tzdata naming convention. </p>
+
+</div>
+</div>
+<a id="ace535bea6879596b6473657f3fc83b57"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ace535bea6879596b6473657f3fc83b57">&#9670;&nbsp;</a></span>video_mimetypes</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">const char** guac_user_info::video_mimetypes</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>NULL-terminated array of client-supported video mimetypes. </p>
+<p>If the client does not support video at all, this will be NULL. </p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>guacamole/<a class="el" href="user_8h_source.html">user.h</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/sync_off.png b/doc/1.1.0/libguac/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/doc/1.1.0/libguac/sync_off.png
Binary files differ
diff --git a/doc/1.1.0/libguac/sync_on.png b/doc/1.1.0/libguac/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/doc/1.1.0/libguac/sync_on.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_a.png b/doc/1.1.0/libguac/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_a.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_b.png b/doc/1.1.0/libguac/tab_b.png
new file mode 100644
index 0000000..e2b4a86
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_b.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_h.png b/doc/1.1.0/libguac/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_h.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tab_s.png b/doc/1.1.0/libguac/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/doc/1.1.0/libguac/tab_s.png
Binary files differ
diff --git a/doc/1.1.0/libguac/tabs.css b/doc/1.1.0/libguac/tabs.css
new file mode 100644
index 0000000..a28614b
--- /dev/null
+++ b/doc/1.1.0/libguac/tabs.css
@@ -0,0 +1 @@
+.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}
\ No newline at end of file
diff --git a/doc/1.1.0/libguac/timestamp-types_8h.html b/doc/1.1.0/libguac/timestamp-types_8h.html
new file mode 100644
index 0000000..636262a
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp-types_8h.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">timestamp-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to Guacamole protocol timestamps.  
+<a href="#details">More...</a></p>
+
+<p><a href="timestamp-types_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a69e916d1ff324fbe0e527f32359c9cea"><td class="memItemLeft" align="right" valign="top"><a id="a69e916d1ff324fbe0e527f32359c9cea"></a>
+typedef int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></td></tr>
+<tr class="memdesc:a69e916d1ff324fbe0e527f32359c9cea"><td class="mdescLeft">&#160;</td><td class="mdescRight">An arbitrary timestamp denoting a relative time value in milliseconds. <br /></td></tr>
+<tr class="separator:a69e916d1ff324fbe0e527f32359c9cea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to Guacamole protocol timestamps. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/timestamp-types_8h_source.html b/doc/1.1.0/libguac/timestamp-types_8h_source.html
new file mode 100644
index 0000000..35cc400
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp-types_8h_source.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">timestamp-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="timestamp-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_TIMESTAMP_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_TIMESTAMP_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">   34</a></span>&#160;<span class="keyword">typedef</span> int64_t <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>;</div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;</div><div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/timestamp_8h.html b/doc/1.1.0/libguac/timestamp_8h.html
new file mode 100644
index 0000000..3505faa
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp_8h.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">timestamp.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions and structures for creating timestamps.  
+<a href="#details">More...</a></p>
+
+<p><a href="timestamp_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ab85ce937dce4d8e94c173be917bc0719"><td class="memItemLeft" align="right" valign="top"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a> ()</td></tr>
+<tr class="memdesc:ab85ce937dce4d8e94c173be917bc0719"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an arbitrary timestamp.  <a href="#ab85ce937dce4d8e94c173be917bc0719">More...</a><br /></td></tr>
+<tr class="separator:ab85ce937dce4d8e94c173be917bc0719"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4d1fdc2698a04c75e196b014a4717868"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a> (int duration)</td></tr>
+<tr class="memdesc:a4d1fdc2698a04c75e196b014a4717868"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sleeps for the given number of milliseconds.  <a href="#a4d1fdc2698a04c75e196b014a4717868">More...</a><br /></td></tr>
+<tr class="separator:a4d1fdc2698a04c75e196b014a4717868"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions and structures for creating timestamps. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="ab85ce937dce4d8e94c173be917bc0719"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab85ce937dce4d8e94c173be917bc0719">&#9670;&nbsp;</a></span>guac_timestamp_current()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> guac_timestamp_current </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns an arbitrary timestamp. </p>
+<p>The difference between return values of any two calls is equal to the amount of time in milliseconds between those calls. The return value from a single call will not have any useful (or defined) meaning.</p>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary millisecond timestamp. </dd></dl>
+
+</div>
+</div>
+<a id="a4d1fdc2698a04c75e196b014a4717868"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a4d1fdc2698a04c75e196b014a4717868">&#9670;&nbsp;</a></span>guac_timestamp_msleep()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_timestamp_msleep </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>duration</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Sleeps for the given number of milliseconds. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">duration</td><td>The number of milliseconds to sleep. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/timestamp_8h_source.html b/doc/1.1.0/libguac/timestamp_8h_source.html
new file mode 100644
index 0000000..c638a83
--- /dev/null
+++ b/doc/1.1.0/libguac/timestamp_8h_source.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/timestamp.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">timestamp.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="timestamp_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_TIMESTAMP_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_TIMESTAMP_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a>();</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">void</span> <a class="code" href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a>(<span class="keywordtype">int</span> duration);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;</div><div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="timestamp_8h_html_ab85ce937dce4d8e94c173be917bc0719"><div class="ttname"><a href="timestamp_8h.html#ab85ce937dce4d8e94c173be917bc0719">guac_timestamp_current</a></div><div class="ttdeci">guac_timestamp guac_timestamp_current()</div><div class="ttdoc">Returns an arbitrary timestamp. </div></div>
+<div class="ttc" id="timestamp_8h_html_a4d1fdc2698a04c75e196b014a4717868"><div class="ttname"><a href="timestamp_8h.html#a4d1fdc2698a04c75e196b014a4717868">guac_timestamp_msleep</a></div><div class="ttdeci">void guac_timestamp_msleep(int duration)</div><div class="ttdoc">Sleeps for the given number of milliseconds. </div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/unicode_8h.html b/doc/1.1.0/libguac/unicode_8h.html
new file mode 100644
index 0000000..ac28e8c
--- /dev/null
+++ b/doc/1.1.0/libguac/unicode_8h.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/unicode.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">unicode.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provides functions for manipulating Unicode strings.  
+<a href="#details">More...</a></p>
+
+<p><a href="unicode_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a423523f1531719c6ab4fafdb02008623"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a> (unsigned char c)</td></tr>
+<tr class="memdesc:a423523f1531719c6ab4fafdb02008623"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire character.  <a href="#a423523f1531719c6ab4fafdb02008623">More...</a><br /></td></tr>
+<tr class="separator:a423523f1531719c6ab4fafdb02008623"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a778e48706f4ee85f229711fe4cb1343b"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a> (const char *str)</td></tr>
+<tr class="memdesc:a778e48706f4ee85f229711fe4cb1343b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a UTF-8-encoded string, returns the length of the string in characters (not bytes).  <a href="#a778e48706f4ee85f229711fe4cb1343b">More...</a><br /></td></tr>
+<tr class="separator:a778e48706f4ee85f229711fe4cb1343b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa49339a4af9952b0b56402825059a2ce"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a> (int codepoint, char *utf8, int length)</td></tr>
+<tr class="memdesc:aa49339a4af9952b0b56402825059a2ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer, returning the number of bytes written.  <a href="#aa49339a4af9952b0b56402825059a2ce">More...</a><br /></td></tr>
+<tr class="separator:aa49339a4af9952b0b56402825059a2ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a> (const char *utf8, int length, int *codepoint)</td></tr>
+<tr class="memdesc:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes.  <a href="#a1690b7b5e4fbcfc556fa4ee7129a25af">More...</a><br /></td></tr>
+<tr class="separator:a1690b7b5e4fbcfc556fa4ee7129a25af"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Provides functions for manipulating Unicode strings. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a423523f1531719c6ab4fafdb02008623"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a423523f1531719c6ab4fafdb02008623">&#9670;&nbsp;</a></span>guac_utf8_charsize()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_utf8_charsize </td>
+          <td>(</td>
+          <td class="paramtype">unsigned char&#160;</td>
+          <td class="paramname"><em>c</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire character. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">c</td><td>The initial byte of the character to check. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes in the given character overall. </dd></dl>
+
+</div>
+</div>
+<a id="a1690b7b5e4fbcfc556fa4ee7129a25af"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1690b7b5e4fbcfc556fa4ee7129a25af">&#9670;&nbsp;</a></span>guac_utf8_read()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_utf8_read </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>utf8</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int *&#160;</td>
+          <td class="paramname"><em>codepoint</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes. </p>
+<p>If no codepoint could be read, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">utf8</td><td>A buffer containing UTF-8 characters. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer, in bytes. </td></tr>
+    <tr><td class="paramname">codepoint</td><td>A pointer to an integer which will contain the codepoint read, if any. If no character can be read, the integer will be left untouched. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes read, which may be zero if there is not enough space in the buffer to read a character. </dd></dl>
+
+</div>
+</div>
+<a id="a778e48706f4ee85f229711fe4cb1343b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a778e48706f4ee85f229711fe4cb1343b">&#9670;&nbsp;</a></span>guac_utf8_strlen()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">size_t guac_utf8_strlen </td>
+          <td>(</td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>str</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given a UTF-8-encoded string, returns the length of the string in characters (not bytes). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">str</td><td>The UTF-8 string to calculate the length of. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The length in characters of the given UTF-8 string. </dd></dl>
+
+</div>
+</div>
+<a id="aa49339a4af9952b0b56402825059a2ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa49339a4af9952b0b56402825059a2ce">&#9670;&nbsp;</a></span>guac_utf8_write()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_utf8_write </td>
+          <td>(</td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>codepoint</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char *&#160;</td>
+          <td class="paramname"><em>utf8</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>length</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer, returning the number of bytes written. </p>
+<p>If there is not enough space in the buffer to write the character, no bytes are written at all.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">codepoint</td><td>The Unicode codepoint to write to the buffer. </td></tr>
+    <tr><td class="paramname">utf8</td><td>The buffer to write to. </td></tr>
+    <tr><td class="paramname">length</td><td>The length of the buffer, in bytes. </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The number of bytes written, which may be zero if there is not enough space in the buffer to write the UTF-8 character. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/unicode_8h_source.html b/doc/1.1.0/libguac/unicode_8h_source.html
new file mode 100644
index 0000000..3c6bb5e
--- /dev/null
+++ b/doc/1.1.0/libguac/unicode_8h_source.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/unicode.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">unicode.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="unicode_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef _GUAC_UNICODE_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define _GUAC_UNICODE_H</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> c);</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* str);</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;<span class="keywordtype">int</span> <a class="code" href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a>(<span class="keywordtype">int</span> codepoint, <span class="keywordtype">char</span>* utf8, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keywordtype">int</span> <a class="code" href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* utf8, <span class="keywordtype">int</span> length, <span class="keywordtype">int</span>* codepoint);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;</div><div class="ttc" id="unicode_8h_html_aa49339a4af9952b0b56402825059a2ce"><div class="ttname"><a href="unicode_8h.html#aa49339a4af9952b0b56402825059a2ce">guac_utf8_write</a></div><div class="ttdeci">int guac_utf8_write(int codepoint, char *utf8, int length)</div><div class="ttdoc">Given destination buffer and its length, writes the given codepoint as UTF-8 to the buffer...</div></div>
+<div class="ttc" id="unicode_8h_html_a778e48706f4ee85f229711fe4cb1343b"><div class="ttname"><a href="unicode_8h.html#a778e48706f4ee85f229711fe4cb1343b">guac_utf8_strlen</a></div><div class="ttdeci">size_t guac_utf8_strlen(const char *str)</div><div class="ttdoc">Given a UTF-8-encoded string, returns the length of the string in characters (not bytes)...</div></div>
+<div class="ttc" id="unicode_8h_html_a1690b7b5e4fbcfc556fa4ee7129a25af"><div class="ttname"><a href="unicode_8h.html#a1690b7b5e4fbcfc556fa4ee7129a25af">guac_utf8_read</a></div><div class="ttdeci">int guac_utf8_read(const char *utf8, int length, int *codepoint)</div><div class="ttdoc">Given a buffer containing UTF-8 characters, reads the first codepoint in the buffer, returning the length of the codepoint in bytes. </div></div>
+<div class="ttc" id="unicode_8h_html_a423523f1531719c6ab4fafdb02008623"><div class="ttname"><a href="unicode_8h.html#a423523f1531719c6ab4fafdb02008623">guac_utf8_charsize</a></div><div class="ttdeci">size_t guac_utf8_charsize(unsigned char c)</div><div class="ttdoc">Given the initial byte of a single UTF-8 character, returns the overall byte size of the entire chara...</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-constants_8h.html b/doc/1.1.0/libguac/user-constants_8h.html
new file mode 100644
index 0000000..009a1d3
--- /dev/null
+++ b/doc/1.1.0/libguac/user-constants_8h.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-constants.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#define-members">Macros</a>  </div>
+  <div class="headertitle">
+<div class="title">user-constants.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-constants_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:aa6442383e07f6aa68fbe504037101a87"><td class="memItemLeft" align="right" valign="top"><a id="aa6442383e07f6aa68fbe504037101a87"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">GUAC_USER_ID_PREFIX</a>&#160;&#160;&#160;'@'</td></tr>
+<tr class="memdesc:aa6442383e07f6aa68fbe504037101a87"><td class="mdescLeft">&#160;</td><td class="mdescRight">The character prefix which identifies a user ID. <br /></td></tr>
+<tr class="separator:aa6442383e07f6aa68fbe504037101a87"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="memItemLeft" align="right" valign="top"><a id="a9e0884fe25345c84beac1c5a13b1c5ce"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">GUAC_USER_MAX_STREAMS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of inbound or outbound streams supported by any one <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. <br /></td></tr>
+<tr class="separator:a9e0884fe25345c84beac1c5a13b1c5ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8749ef8d1917591b82b7747edc85d275"><td class="memItemLeft" align="right" valign="top"><a id="a8749ef8d1917591b82b7747edc85d275"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">GUAC_USER_CLOSED_STREAM_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:a8749ef8d1917591b82b7747edc85d275"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of a closed stream. <br /></td></tr>
+<tr class="separator:a8749ef8d1917591b82b7747edc85d275"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afbdfab527f553d531ce690cabd4ae1e7"><td class="memItemLeft" align="right" valign="top"><a id="afbdfab527f553d531ce690cabd4ae1e7"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">GUAC_USER_MAX_OBJECTS</a>&#160;&#160;&#160;64</td></tr>
+<tr class="memdesc:afbdfab527f553d531ce690cabd4ae1e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">The maximum number of objects supported by any one <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. <br /></td></tr>
+<tr class="separator:afbdfab527f553d531ce690cabd4ae1e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="memItemLeft" align="right" valign="top"><a id="ae0609bd43bffdfa9ebb8da62f8118c9f"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">GUAC_USER_UNDEFINED_OBJECT_INDEX</a>&#160;&#160;&#160;-1</td></tr>
+<tr class="memdesc:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The index of an object which has not been defined. <br /></td></tr>
+<tr class="separator:ae0609bd43bffdfa9ebb8da62f8118c9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acb353db4f79b67678376bb521db182e5"><td class="memItemLeft" align="right" valign="top"><a id="acb353db4f79b67678376bb521db182e5"></a>
+#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">GUAC_USER_OBJECT_ROOT_NAME</a>&#160;&#160;&#160;&quot;/&quot;</td></tr>
+<tr class="memdesc:acb353db4f79b67678376bb521db182e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The stream name reserved for the root of a Guacamole protocol object. <br /></td></tr>
+<tr class="separator:acb353db4f79b67678376bb521db182e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af3135ba0f5c4cf3099374f612446b490"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">GUAC_USER_STREAM_INDEX_MIMETYPE</a>&#160;&#160;&#160;&quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</td></tr>
+<tr class="memdesc:af3135ba0f5c4cf3099374f612446b490"><td class="mdescLeft">&#160;</td><td class="mdescRight">The mimetype of a stream containing a map of available stream names to their corresponding mimetypes.  <a href="#af3135ba0f5c4cf3099374f612446b490">More...</a><br /></td></tr>
+<tr class="separator:af3135ba0f5c4cf3099374f612446b490"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Constants related to the Guacamole user structure, <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>. </p>
+</div><h2 class="groupheader">Macro Definition Documentation</h2>
+<a id="af3135ba0f5c4cf3099374f612446b490"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af3135ba0f5c4cf3099374f612446b490">&#9670;&nbsp;</a></span>GUAC_USER_STREAM_INDEX_MIMETYPE</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GUAC_USER_STREAM_INDEX_MIMETYPE&#160;&#160;&#160;&quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The mimetype of a stream containing a map of available stream names to their corresponding mimetypes. </p>
+<p>The root of a Guacamole protocol object is guaranteed to have this type. </p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-constants_8h_source.html b/doc/1.1.0/libguac/user-constants_8h_source.html
new file mode 100644
index 0000000..8aba726
--- /dev/null
+++ b/doc/1.1.0/libguac/user-constants_8h_source.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-constants.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-constants.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-constants_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_CONSTANTS_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_CONSTANTS_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="user-constants_8h.html#aa6442383e07f6aa68fbe504037101a87">   32</a></span>&#160;<span class="preprocessor">#define GUAC_USER_ID_PREFIX &#39;@&#39;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="user-constants_8h.html#a9e0884fe25345c84beac1c5a13b1c5ce">   38</a></span>&#160;<span class="preprocessor">#define GUAC_USER_MAX_STREAMS 64</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="user-constants_8h.html#a8749ef8d1917591b82b7747edc85d275">   43</a></span>&#160;<span class="preprocessor">#define GUAC_USER_CLOSED_STREAM_INDEX -1</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="user-constants_8h.html#afbdfab527f553d531ce690cabd4ae1e7">   48</a></span>&#160;<span class="preprocessor">#define GUAC_USER_MAX_OBJECTS 64</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="user-constants_8h.html#ae0609bd43bffdfa9ebb8da62f8118c9f">   53</a></span>&#160;<span class="preprocessor">#define GUAC_USER_UNDEFINED_OBJECT_INDEX -1</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="user-constants_8h.html#acb353db4f79b67678376bb521db182e5">   58</a></span>&#160;<span class="preprocessor">#define GUAC_USER_OBJECT_ROOT_NAME &quot;/&quot;</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="user-constants_8h.html#af3135ba0f5c4cf3099374f612446b490">   65</a></span>&#160;<span class="preprocessor">#define GUAC_USER_STREAM_INDEX_MIMETYPE &quot;application/vnd.glyptodon.guacamole.stream-index+json&quot;</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-fntypes_8h.html b/doc/1.1.0/libguac/user-fntypes_8h.html
new file mode 100644
index 0000000..2de01b7
--- /dev/null
+++ b/doc/1.1.0/libguac/user-fntypes_8h.html
@@ -0,0 +1,612 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-fntypes.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#typedef-members">Typedefs</a>  </div>
+  <div class="headertitle">
+<div class="title">user-fntypes.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-fntypes_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="memItemLeft" align="right" valign="top">typedef void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, void *data)</td></tr>
+<tr class="memdesc:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback which relates to a single <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> at a time, along with arbitrary data.  <a href="#a99c5146e0ab1df9ba2b2574fb26fbddf">More...</a><br /></td></tr>
+<tr class="separator:a99c5146e0ab1df9ba2b2574fb26fbddf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a337a3fe8b983e3e25e25dbb836ea2694"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int x, int y, int button_mask)</td></tr>
+<tr class="memdesc:a337a3fe8b983e3e25e25dbb836ea2694"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole mouse events, invoked when a "mouse" instruction has been received from a user.  <a href="#a337a3fe8b983e3e25e25dbb836ea2694">More...</a><br /></td></tr>
+<tr class="separator:a337a3fe8b983e3e25e25dbb836ea2694"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a48d196c39615f6a1ff9b129267cb402e"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int keysym, int pressed)</td></tr>
+<tr class="memdesc:a48d196c39615f6a1ff9b129267cb402e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole key events, invoked when a "key" event has been received from a user.  <a href="#a48d196c39615f6a1ff9b129267cb402e">More...</a><br /></td></tr>
+<tr class="separator:a48d196c39615f6a1ff9b129267cb402e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td></tr>
+<tr class="memdesc:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole audio streams received from a user.  <a href="#a1d2777aaa35f39e5ba5e803a3ffbd137">More...</a><br /></td></tr>
+<tr class="separator:a1d2777aaa35f39e5ba5e803a3ffbd137"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1658ce15f8c6fe958e873015e12aeed9"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td></tr>
+<tr class="memdesc:a1658ce15f8c6fe958e873015e12aeed9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole clipboard streams received from a user.  <a href="#a1658ce15f8c6fe958e873015e12aeed9">More...</a><br /></td></tr>
+<tr class="separator:a1658ce15f8c6fe958e873015e12aeed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aca3c0d12202f7888146bb95986011b6f"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int width, int height)</td></tr>
+<tr class="memdesc:aca3c0d12202f7888146bb95986011b6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole size events, invoked when a "size" instruction has been received from a user.  <a href="#aca3c0d12202f7888146bb95986011b6f">More...</a><br /></td></tr>
+<tr class="separator:aca3c0d12202f7888146bb95986011b6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *filename)</td></tr>
+<tr class="memdesc:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole file streams received from a user.  <a href="#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">More...</a><br /></td></tr>
+<tr class="separator:a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab7ae6833c33b39618a8b78603581ff79"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:ab7ae6833c33b39618a8b78603581ff79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole pipe streams received from a user.  <a href="#ab7ae6833c33b39618a8b78603581ff79">More...</a><br /></td></tr>
+<tr class="separator:ab7ae6833c33b39618a8b78603581ff79"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole argument value (argv) streams received from a user.  <a href="#a50636d9fb70c454a5e82cbf6ee4f9c8a">More...</a><br /></td></tr>
+<tr class="separator:a50636d9fb70c454a5e82cbf6ee4f9c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aead320956199884ff6af82d49d6163c1"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, void *data, int length)</td></tr>
+<tr class="memdesc:aead320956199884ff6af82d49d6163c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream blobs.  <a href="#aead320956199884ff6af82d49d6163c1">More...</a><br /></td></tr>
+<tr class="separator:aead320956199884ff6af82d49d6163c1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td></tr>
+<tr class="memdesc:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream "ack" instructions.  <a href="#a88f4b7af6d47c82f65e9332afcc7ab09">More...</a><br /></td></tr>
+<tr class="separator:a88f4b7af6d47c82f65e9332afcc7ab09"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afa8b0e25073cbe710265dc8a0ed150ca"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:afa8b0e25073cbe710265dc8a0ed150ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole stream "end" instructions.  <a href="#afa8b0e25073cbe710265dc8a0ed150ca">More...</a><br /></td></tr>
+<tr class="separator:afa8b0e25073cbe710265dc8a0ed150ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td></tr>
+<tr class="memdesc:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole join events.  <a href="#a88717a7ab29ac1e4a853fcc2caa8f872">More...</a><br /></td></tr>
+<tr class="separator:a88717a7ab29ac1e4a853fcc2caa8f872"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aaa5806d288a42d93a54864b6c35617b8"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:aaa5806d288a42d93a54864b6c35617b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole leave events.  <a href="#aaa5806d288a42d93a54864b6c35617b8">More...</a><br /></td></tr>
+<tr class="separator:aaa5806d288a42d93a54864b6c35617b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab60c51d865526c5c5d2c096e4fcb5539"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td></tr>
+<tr class="memdesc:ab60c51d865526c5c5d2c096e4fcb5539"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole sync events.  <a href="#ab60c51d865526c5c5d2c096e4fcb5539">More...</a><br /></td></tr>
+<tr class="separator:ab60c51d865526c5c5d2c096e4fcb5539"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, char *name)</td></tr>
+<tr class="memdesc:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole object get requests.  <a href="#ab8b7cadf31aeac0b2ac0ce4f46dafe81">More...</a><br /></td></tr>
+<tr class="separator:ab8b7cadf31aeac0b2ac0ce4f46dafe81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td></tr>
+<tr class="memdesc:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handler for Guacamole object put requests.  <a href="#afd4c60871cc2dbbbdc82f58ae1c5baa0">More...</a><br /></td></tr>
+<tr class="separator:afd4c60871cc2dbbbdc82f58ae1c5baa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Function type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. </p>
+</div><h2 class="groupheader">Typedef Documentation</h2>
+<a id="a88f4b7af6d47c82f65e9332afcc7ab09"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88f4b7af6d47c82f65e9332afcc7ab09">&#9670;&nbsp;</a></span>guac_user_ack_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_ack_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *error, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream "ack" instructions. </p>
+<p>A user will send "ack" instructions to acknowledge the successful receipt of blobs along a stream opened by the server, or to notify of errors. An "ack" with an error status implicitly closes the stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user sending the "ack" instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream for which the "ack" was received.</td></tr>
+    <tr><td class="paramname">error</td><td>An arbitrary, human-readable message describing the error that occurred, if any. If no error occurs, this will likely be blank, "SUCCESS", or similar. This value exists for the sake of readability, not for the sake of data interchange.</td></tr>
+    <tr><td class="paramname">status</td><td>GUAC_PROTOCOL_STATUS_SUCCESS if the blob was received and handled successfully, or a different status code describing the problem if an error occurred and the stream has been implicitly closed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the "ack" message was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a50636d9fb70c454a5e82cbf6ee4f9c8a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a50636d9fb70c454a5e82cbf6ee4f9c8a">&#9670;&nbsp;</a></span>guac_user_argv_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_argv_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole argument value (argv) streams received from a user. </p>
+<p>Argument value streams are real-time revisions to the connection parameters of an in-progress connection. Each such argument value stream begins when the user sends a "argv" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the argument value stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the argument value stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being updated. It is up to the implementation of this handler to decide whether and how to update a connection parameter.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the argument value stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="a1d2777aaa35f39e5ba5e803a3ffbd137"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1d2777aaa35f39e5ba5e803a3ffbd137">&#9670;&nbsp;</a></span>guac_user_audio_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_audio_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole audio streams received from a user. </p>
+<p>Each such audio stream begins when the user sends an "audio" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the audio stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the audio stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the audio stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="aead320956199884ff6af82d49d6163c1"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aead320956199884ff6af82d49d6163c1">&#9670;&nbsp;</a></span>guac_user_blob_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_blob_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, void *data, int length)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream blobs. </p>
+<p>Each blob originates from a "blob" instruction which was associated with a previously-created stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that is sending this blob of data along the stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream along which the blob was received. The semantics associated with this stream are determined by the manner of its creation.</td></tr>
+    <tr><td class="paramname">data</td><td>The blob of data received.</td></tr>
+    <tr><td class="paramname">length</td><td>The number of bytes within the blob of data received.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the blob of data was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a99c5146e0ab1df9ba2b2574fb26fbddf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a99c5146e0ab1df9ba2b2574fb26fbddf">&#9670;&nbsp;</a></span>guac_user_callback</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef void* guac_user_callback(<a class="el" href="structguac__user.html">guac_user</a> *user, void *data)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Callback which relates to a single <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> at a time, along with arbitrary data. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> </dd>
+<dd>
+<a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user for which this callback was invoked. Depending on whether <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a> was called, this will either be the current user as the "foreach" iteration continues, or the owner of the connection. If <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a> was called for a connection which has no owner, this may be NULL.</td></tr>
+    <tr><td class="paramname">data</td><td>The arbitrary data passed to <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a>.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>An arbitrary return value, the semantics of which are determined by the implementation of the callback and the manner of its user. In the case of a callback provided to <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a>, this value is always discarded. </dd></dl>
+
+</div>
+</div>
+<a id="a1658ce15f8c6fe958e873015e12aeed9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1658ce15f8c6fe958e873015e12aeed9">&#9670;&nbsp;</a></span>guac_user_clipboard_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_clipboard_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole clipboard streams received from a user. </p>
+<p>Each such clipboard stream begins when the user sends a "clipboard" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the clipboard stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the clipboard stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the clipboard stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="afa8b0e25073cbe710265dc8a0ed150ca"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afa8b0e25073cbe710265dc8a0ed150ca">&#9670;&nbsp;</a></span>guac_user_end_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_end_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole stream "end" instructions. </p>
+<p>End instructions are sent by the user when a stream is closing because its end has been reached.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the "end" instruction.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream that is being closed.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the end-of-stream condition has been sucessfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a6c24aa9dee9ee4be3f3d21e1e24b9e3e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">&#9670;&nbsp;</a></span>guac_user_file_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_file_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *filename)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole file streams received from a user. </p>
+<p>Each such file stream begins when the user sends a "file" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the file stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the file stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">filename</td><td>The name of the file being transferred.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the file stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="ab8b7cadf31aeac0b2ac0ce4f46dafe81"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab8b7cadf31aeac0b2ac0ce4f46dafe81">&#9670;&nbsp;</a></span>guac_user_get_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_get_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole object get requests. </p>
+<p>The semantics of the stream which will be created in response to the request are determined by the type of the object and the name of the stream requested. It is up to the implementation of this handler to then respond with a "body" instruction that begins the requested stream.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user requesting read access to the stream having the given name.</td></tr>
+    <tr><td class="paramname">object</td><td>The object from which the given named stream is being requested.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream being requested.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the get request was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a88717a7ab29ac1e4a853fcc2caa8f872"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a88717a7ab29ac1e4a853fcc2caa8f872">&#9670;&nbsp;</a></span>guac_user_join_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_join_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int argc, char **argv)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole join events. </p>
+<p>A join event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> joins the connection. There is no instruction associated with a join event.</p>
+<p>Implementations of the join handler MUST NOT use the client-level broadcast socket, nor invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a>. Doing so will result in undefined behavior, including segfaults.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection. The <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> associated with the connection will already be populated within the user object.</td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments stored within argv.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all arguments provided by the user when they joined. These arguments must correspond to the argument names declared when the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> was initialized. If the number of arguments does not match the number of argument names declared, then the joining user has violated the Guacamole protocol.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user has been successfully initialized and should be allowed to join the connection, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a48d196c39615f6a1ff9b129267cb402e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a48d196c39615f6a1ff9b129267cb402e">&#9670;&nbsp;</a></span>guac_user_key_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_key_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int keysym, int pressed)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole key events, invoked when a "key" event has been received from a user. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the key event.</td></tr>
+    <tr><td class="paramname">keysym</td><td>The X11 keysym of the key that was pressed or released.</td></tr>
+    <tr><td class="paramname">pressed</td><td>Non-zero if the key represented by the given keysym is currently pressed, zero if it is released.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the key event was handled successfully, or non-zero if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="aaa5806d288a42d93a54864b6c35617b8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aaa5806d288a42d93a54864b6c35617b8">&#9670;&nbsp;</a></span>guac_user_leave_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_leave_handler(<a class="el" href="structguac__user.html">guac_user</a> *user)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole leave events. </p>
+<p>A leave event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> leaves the connection. There is no instruction associated with a leave event.</p>
+<p>Implementations of the leave handler MUST NOT use the client-level broadcast socket, nor invoke <a class="el" href="client_8h.html#af652f3db0f89d488cef6d90f612a2077" title="Calls the given function on all currently-connected users of the given client. ">guac_client_foreach_user()</a> or <a class="el" href="client_8h.html#af3f4ed85d98b16376e2cdc031ff1b44a" title="Calls the given function with the currently-connected user that is marked as the owner. ">guac_client_for_owner()</a>. Doing so will result in undefined behavior, including segfaults.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that has left the connection.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the leave event has been successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="a337a3fe8b983e3e25e25dbb836ea2694"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a337a3fe8b983e3e25e25dbb836ea2694">&#9670;&nbsp;</a></span>guac_user_mouse_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_mouse_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int x, int y, int button_mask)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole mouse events, invoked when a "mouse" instruction has been received from a user. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the mouse event.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the mouse within the display when the event occurred, in pixels. This value is not guaranteed to be within the bounds of the display area.</td></tr>
+    <tr><td class="paramname">button_mask</td><td>An integer value representing the current state of each button, where the Nth bit within the integer is set to 1 if and only if the Nth mouse button is currently pressed. The lowest-order bit is the left mouse button, followed by the middle button, right button, and finally the up and down buttons of the scroll wheel.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="client-constants_8h.html#a4bb4f5b852ac8c3e2d3c89cd5e63efd2" title="The flag set in the mouse button mask when the left mouse button is down. ">GUAC_CLIENT_MOUSE_LEFT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#ad14c5f1800aac863bbebcd676c5c2124" title="The flag set in the mouse button mask when the middle mouse button is down. ">GUAC_CLIENT_MOUSE_MIDDLE</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a88917d2d7143a483c219eee62fd6317f" title="The flag set in the mouse button mask when the right mouse button is down. ">GUAC_CLIENT_MOUSE_RIGHT</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a134afd8a0d8f10a34af51fc70981e39d" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled up. ">GUAC_CLIENT_MOUSE_SCROLL_UP</a> </dd>
+<dd>
+<a class="el" href="client-constants_8h.html#a771231574e9d303aa08fc1cecc9069f0" title="The flag set in the mouse button mask when the mouse scrollwheel is scrolled down. ">GUAC_CLIENT_MOUSE_SCROLL_DOWN</a></dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the mouse event was handled successfully, or non-zero if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="ab7ae6833c33b39618a8b78603581ff79"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab7ae6833c33b39618a8b78603581ff79">&#9670;&nbsp;</a></span>guac_user_pipe_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_pipe_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole pipe streams received from a user. </p>
+<p>Pipe streams are unidirectional, arbitrary, named pipes. Each such pipe stream begins when the user sends a "pipe" instruction. To handle received data along this stream, implementations of this handler must assign blob and end handlers to the given stream object.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that opened the pipe stream.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream object allocated by libguac to represent the pipe stream opened by the user.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be sent along the stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The arbitrary name assigned to this pipe. It is up to the implementation of this handler and the application containing the Guacamole client to determine the semantics of a pipe stream having this name.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the opening of the pipe stream has been handled successfully, or non-zero if an error occurs. </dd></dl>
+
+</div>
+</div>
+<a id="afd4c60871cc2dbbbdc82f58ae1c5baa0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afd4c60871cc2dbbbdc82f58ae1c5baa0">&#9670;&nbsp;</a></span>guac_user_put_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_put_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object, <a class="el" href="structguac__stream.html">guac_stream</a> *stream, char *mimetype, char *name)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole object put requests. </p>
+<p>Put requests implicitly create a stream, the semantics of which are determined by the type of the object and the name of the stream requested.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user requesting write access to the stream having the given name.</td></tr>
+    <tr><td class="paramname">object</td><td>The object from which the given named stream is being requested.</td></tr>
+    <tr><td class="paramname">stream</td><td>The stream along which the blobs which should be written to the named stream will be received.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data that will be received along the given stream.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the stream being requested.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the put request was successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="aca3c0d12202f7888146bb95986011b6f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aca3c0d12202f7888146bb95986011b6f">&#9670;&nbsp;</a></span>guac_user_size_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_size_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, int width, int height)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole size events, invoked when a "size" instruction has been received from a user. </p>
+<p>A "size" instruction indicates that the desired display size has changed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose desired display size has changed.</td></tr>
+    <tr><td class="paramname">width</td><td>The desired width of the display, in pixels.</td></tr>
+    <tr><td class="paramname">height</td><td>The desired height of the display, in pixels.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the size event has been successfully handled, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ab60c51d865526c5c5d2c096e4fcb5539"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab60c51d865526c5c5d2c096e4fcb5539">&#9670;&nbsp;</a></span>guac_user_sync_handler</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">typedef int guac_user_sync_handler(<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp)</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handler for Guacamole sync events. </p>
+<p>A sync event is fired by the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> whenever a <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> responds to a "sync" instruction. Sync instructions are sent by the Guacamole server to mark the logical end of a frame, and to inform the Guacamole client that all data up to a particular point in time has been sent. The response from the Guacamole client similarly indicates that all data received up to a particular point in server time has been handled.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user that sent the "sync" instruction.</td></tr>
+    <tr><td class="paramname">timestamp</td><td>The timestamp contained within the sync instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the sync event has been handled successfully, non-zero otherwise. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-fntypes_8h_source.html b/doc/1.1.0/libguac/user-fntypes_8h_source.html
new file mode 100644
index 0000000..c80e252
--- /dev/null
+++ b/doc/1.1.0/libguac/user-fntypes_8h_source.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-fntypes.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-fntypes.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-fntypes_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_FNTYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_FNTYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="object-types_8h.html">object-types.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="protocol-types_8h.html">protocol-types.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">   59</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">void</span>* <a class="code" href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">void</span>* data);</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">   95</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        <span class="keywordtype">int</span> button_mask);</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">  116</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> keysym, <span class="keywordtype">int</span> pressed);</div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">  138</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">  161</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordtype">char</span>* mimetype);</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">  182</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user,</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">  208</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* filename);</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">  237</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">  267</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">  290</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordtype">void</span>* data, <span class="keywordtype">int</span> length);</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">  319</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream,</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <span class="keywordtype">char</span>* error, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status);</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">  336</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">  366</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">  385</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">  406</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> timestamp);</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">  427</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">  454</a></span>&#160;<span class="keyword">typedef</span> <span class="keywordtype">int</span> <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>,</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        <a class="code" href="structguac__stream.html">guac_stream</a>* stream, <span class="keywordtype">char</span>* mimetype, <span class="keywordtype">char</span>* name);</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a99c5146e0ab1df9ba2b2574fb26fbddf"><div class="ttname"><a href="user-fntypes_8h.html#a99c5146e0ab1df9ba2b2574fb26fbddf">guac_user_callback</a></div><div class="ttdeci">void * guac_user_callback(guac_user *user, void *data)</div><div class="ttdoc">Callback which relates to a single guac_user at a time, along with arbitrary data. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:59</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:406</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a &quot;size&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a &quot;mouse&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div>
+<div class="ttc" id="object-types_8h_html"><div class="ttname"><a href="object-types_8h.html">object-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol objects. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a &quot;key&quot; event has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div>
+<div class="ttc" id="protocol-types_8h_html"><div class="ttname"><a href="protocol-types_8h.html">protocol-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole protocol. </div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88717a7ab29ac1e4a853fcc2caa8f872"><div class="ttname"><a href="user-fntypes_8h.html#a88717a7ab29ac1e4a853fcc2caa8f872">guac_user_join_handler</a></div><div class="ttdeci">int guac_user_join_handler(guac_user *user, int argc, char **argv)</div><div class="ttdoc">Handler for Guacamole join events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:366</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-types_8h.html b/doc/1.1.0/libguac/user-types_8h.html
new file mode 100644
index 0000000..b3eeb9c
--- /dev/null
+++ b/doc/1.1.0/libguac/user-types_8h.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-types.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-types.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object.  
+<a href="#details">More...</a></p>
+
+<p><a href="user-types_8h_source.html">Go to the source code of this file.</a></p>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Type definitions related to the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object. </p>
+</div></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user-types_8h_source.html b/doc/1.1.0/libguac/user-types_8h_source.html
new file mode 100644
index 0000000..96e0fa4
--- /dev/null
+++ b/doc/1.1.0/libguac/user-types_8h_source.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user-types.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user-types.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user-types_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_TYPES_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_TYPES_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> <a class="code" href="structguac__user.html">guac_user</a>;</div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user__info.html">guac_user_info</a>;</div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user_8h.html b/doc/1.1.0/libguac/user_8h.html
new file mode 100644
index 0000000..99fa176
--- /dev/null
+++ b/doc/1.1.0/libguac/user_8h.html
@@ -0,0 +1,1187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">user.h File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>.  
+<a href="#details">More...</a></p>
+
+<p><a href="user_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user__info.html">guac_user_info</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Information exposed by the remote client during the connection handshake which can be used by a client plugin.  <a href="structguac__user__info.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structguac__user.html">guac_user</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Representation of a physical connection within a larger logical connection which may be shared.  <a href="structguac__user.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a586cd1d712dce0db02d57684ddcb02ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a> ()</td></tr>
+<tr class="memdesc:a586cd1d712dce0db02d57684ddcb02ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new, blank user, not associated with any specific client or socket.  <a href="#a586cd1d712dce0db02d57684ddcb02ef">More...</a><br /></td></tr>
+<tr class="separator:a586cd1d712dce0db02d57684ddcb02ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Frees the given user and all associated resources.  <a href="#a7e0e1220fd00fd769b8e6b731f8c9bf8">More...</a><br /></td></tr>
+<tr class="separator:a7e0e1220fd00fd769b8e6b731f8c9bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a28f08ab54f138796dea4655ef54526fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, int usec_timeout)</td></tr>
+<tr class="memdesc:a28f08ab54f138796dea4655ef54526fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake.  <a href="#a28f08ab54f138796dea4655ef54526fe">More...</a><br /></td></tr>
+<tr class="separator:a28f08ab54f138796dea4655ef54526fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0303ef487d51b06bb0f007f1a5df0d78"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char *opcode, int argc, char **argv)</td></tr>
+<tr class="memdesc:a0303ef487d51b06bb0f007f1a5df0d78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call the appropriate handler defined by the given user for the given instruction.  <a href="#a0303ef487d51b06bb0f007f1a5df0d78">More...</a><br /></td></tr>
+<tr class="separator:a0303ef487d51b06bb0f007f1a5df0d78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new stream.  <a href="#a35a47c81b581f7aff3eb04c2a6d35b7c">More...</a><br /></td></tr>
+<tr class="separator:a35a47c81b581f7aff3eb04c2a6d35b7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b3c740837b8e2cae6a232b45ca362f4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__stream.html">guac_stream</a> *stream)</td></tr>
+<tr class="memdesc:a3b3c740837b8e2cae6a232b45ca362f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c" title="Allocates a new stream. ">guac_user_alloc_stream()</a>.  <a href="#a3b3c740837b8e2cae6a232b45ca362f4">More...</a><br /></td></tr>
+<tr class="separator:a3b3c740837b8e2cae6a232b45ca362f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected.  <a href="#a8216ec7024947564fb4ea6b8b0b07eaf">More...</a><br /></td></tr>
+<tr class="separator:a8216ec7024947564fb4ea6b8b0b07eaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0eff54a869374e37237b2006ad77b958"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format,...)</td></tr>
+<tr class="memdesc:a0eff54a869374e37237b2006ad77b958"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#a0eff54a869374e37237b2006ad77b958">More...</a><br /></td></tr>
+<tr class="separator:a0eff54a869374e37237b2006ad77b958"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8529247b551cb93509236a7f9138dd2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:ad8529247b551cb93509236a7f9138dd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred.  <a href="#ad8529247b551cb93509236a7f9138dd2">More...</a><br /></td></tr>
+<tr class="separator:ad8529247b551cb93509236a7f9138dd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab19481d0800901190d3d734eae466151"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format,...)</td></tr>
+<tr class="memdesc:ab19481d0800901190d3d734eae466151"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given user.  <a href="#ab19481d0800901190d3d734eae466151">More...</a><br /></td></tr>
+<tr class="separator:ab19481d0800901190d3d734eae466151"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af15509bcb891932a3fa93a142018b95c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level, const char *format, va_list ap)</td></tr>
+<tr class="memdesc:af15509bcb891932a3fa93a142018b95c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Writes a message in the log used by the given user.  <a href="#af15509bcb891932a3fa93a142018b95c">More...</a><br /></td></tr>
+<tr class="separator:af15509bcb891932a3fa93a142018b95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6fa98ba49213d610491248cf085aaf56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structguac__object.html">guac_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a6fa98ba49213d610491248cf085aaf56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocates a new object.  <a href="#a6fa98ba49213d610491248cf085aaf56">More...</a><br /></td></tr>
+<tr class="separator:a6fa98ba49213d610491248cf085aaf56"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:acf92065fb6bbc92f9794ea50255acdb9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__object.html">guac_object</a> *object)</td></tr>
+<tr class="memdesc:acf92065fb6bbc92f9794ea50255acdb9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56" title="Allocates a new object. ">guac_user_alloc_object()</a>.  <a href="#acf92065fb6bbc92f9794ea50255acdb9">More...</a><br /></td></tr>
+<tr class="separator:acf92065fb6bbc92f9794ea50255acdb9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa3f85461f15abfb46fd7c732538b33ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, const char *mimetype, const char *name, const char *value)</td></tr>
+<tr class="memdesc:aa3f85461f15abfb46fd7c732538b33ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user.  <a href="#aa3f85461f15abfb46fd7c732538b33ea">More...</a><br /></td></tr>
+<tr class="separator:aa3f85461f15abfb46fd7c732538b33ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface)</td></tr>
+<tr class="memdesc:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data.  <a href="#a35e4c7ba75a16c0b512d543ef4fe9630">More...</a><br /></td></tr>
+<tr class="separator:a35e4c7ba75a16c0b512d543ef4fe9630"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e947ee6996d5711f18d5b785757ccb3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality)</td></tr>
+<tr class="memdesc:a6e947ee6996d5711f18d5b785757ccb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality.  <a href="#a6e947ee6996d5711f18d5b785757ccb3">More...</a><br /></td></tr>
+<tr class="separator:a6e947ee6996d5711f18d5b785757ccb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af00042d94cb64fb8ac92cd84aff05bf8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, <a class="el" href="structguac__socket.html">guac_socket</a> *socket, <a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, const <a class="el" href="structguac__layer.html">guac_layer</a> *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</td></tr>
+<tr class="memdesc:af00042d94cb64fb8ac92cd84aff05bf8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality.  <a href="#af00042d94cb64fb8ac92cd84aff05bf8">More...</a><br /></td></tr>
+<tr class="separator:af00042d94cb64fb8ac92cd84aff05bf8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26d186ee6b669c78278124ece46cc8f7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a> (<a class="el" href="structguac__user.html">guac_user</a> *user)</td></tr>
+<tr class="memdesc:a26d186ee6b669c78278124ece46cc8f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the given user supports WebP.  <a href="#a26d186ee6b669c78278124ece46cc8f7">More...</a><br /></td></tr>
+<tr class="separator:a26d186ee6b669c78278124ece46cc8f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, const char *default_value)</td></tr>
+<tr class="memdesc:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value.  <a href="#a7530b31b5a621a4f68fdce4bee2bdc5f">More...</a><br /></td></tr>
+<tr class="separator:a7530b31b5a621a4f68fdce4bee2bdc5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08f6fd4d84de665487a45fb324dc8844"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, int default_value)</td></tr>
+<tr class="memdesc:a08f6fd4d84de665487a45fb324dc8844"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single integer argument received from a joining user, returning the integer value of that argument.  <a href="#a08f6fd4d84de665487a45fb324dc8844">More...</a><br /></td></tr>
+<tr class="separator:a08f6fd4d84de665487a45fb324dc8844"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5f0bae838d82357e95e98769f7b98cd2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a> (<a class="el" href="structguac__user.html">guac_user</a> *user, const char **arg_names, const char **argv, int index, int default_value)</td></tr>
+<tr class="memdesc:a5f0bae838d82357e95e98769f7b98cd2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false).  <a href="#a5f0bae838d82357e95e98769f7b98cd2">More...</a><br /></td></tr>
+<tr class="separator:a5f0bae838d82357e95e98769f7b98cd2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Defines the <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> object, which represents a physical connection within a larger, possibly shared, logical connection represented by a <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>. </p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a0eff54a869374e37237b2006ad77b958"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0eff54a869374e37237b2006ad77b958">&#9670;&nbsp;</a></span>guac_user_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a586cd1d712dce0db02d57684ddcb02ef"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a586cd1d712dce0db02d57684ddcb02ef">&#9670;&nbsp;</a></span>guac_user_alloc()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__user.html">guac_user</a>* guac_user_alloc </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new, blank user, not associated with any specific client or socket. </p>
+<dl class="section return"><dt>Returns</dt><dd>The newly allocated <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a>, or NULL if allocation failed. </dd></dl>
+
+</div>
+</div>
+<a id="a6fa98ba49213d610491248cf085aaf56"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6fa98ba49213d610491248cf085aaf56">&#9670;&nbsp;</a></span>guac_user_alloc_object()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__object.html">guac_object</a>* guac_user_alloc_object </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new object. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated object is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to allocate the object for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available object, or a newly allocated object. </dd></dl>
+
+</div>
+</div>
+<a id="a35a47c81b581f7aff3eb04c2a6d35b7c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35a47c81b581f7aff3eb04c2a6d35b7c">&#9670;&nbsp;</a></span>guac_user_alloc_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="structguac__stream.html">guac_stream</a>* guac_user_alloc_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Allocates a new stream. </p>
+<p>An arbitrary index is automatically assigned if no previously-allocated stream is available for use.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to allocate the stream for.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The next available stream, or a newly allocated stream, or NULL if the maximum number of active streams has been reached. </dd></dl>
+
+</div>
+</div>
+<a id="a7e0e1220fd00fd769b8e6b731f8c9bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7e0e1220fd00fd769b8e6b731f8c9bf8">&#9670;&nbsp;</a></span>guac_user_free()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Frees the given user and all associated resources. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> to free. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="acf92065fb6bbc92f9794ea50255acdb9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acf92065fb6bbc92f9794ea50255acdb9">&#9670;&nbsp;</a></span>guac_user_free_object()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free_object </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__object.html">guac_object</a> *&#160;</td>
+          <td class="paramname"><em>object</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given object to the pool of available objects, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56" title="Allocates a new object. ">guac_user_alloc_object()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to return the object to.</td></tr>
+    <tr><td class="paramname">object</td><td>The object to return to the pool of available object. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a3b3c740837b8e2cae6a232b45ca362f4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b3c740837b8e2cae6a232b45ca362f4">&#9670;&nbsp;</a></span>guac_user_free_stream()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_free_stream </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__stream.html">guac_stream</a> *&#160;</td>
+          <td class="paramname"><em>stream</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns the given stream to the pool of available streams, such that it can be reused by any subsequent call to <a class="el" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c" title="Allocates a new stream. ">guac_user_alloc_stream()</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to return the stream to. </td></tr>
+    <tr><td class="paramname">stream</td><td>The stream to return to the pool of available stream. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a28f08ab54f138796dea4655ef54526fe"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a28f08ab54f138796dea4655ef54526fe">&#9670;&nbsp;</a></span>guac_user_handle_connection()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_handle_connection </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>usec_timeout</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Handles all I/O for the portion of a user's Guacamole connection following the initial "select" instruction, including the rest of the handshake. </p>
+<p>The handshake-related properties of the given <a class="el" href="structguac__user.html" title="Representation of a physical connection within a larger logical connection which may be shared...">guac_user</a> are automatically populated, and <a class="el" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78" title="Call the appropriate handler defined by the given user for the given instruction. ...">guac_user_handle_instruction()</a> is invoked for all instructions received after the handshake has completed. This function blocks until the connection/user is aborted or the user disconnects.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose handshake and entire Guacamole protocol exchange should be handled. The user must already be associated with a <a class="el" href="structguac__socket.html" title="The core I/O object of Guacamole. ">guac_socket</a> and <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a>, and the <a class="el" href="structguac__client.html" title="Guacamole proxy client. ">guac_client</a> must already be fully initialized.</td></tr>
+    <tr><td class="paramname">usec_timeout</td><td>The number of microseconds to wait for instructions from the given user before closing the connection with an error.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Zero if the user's Guacamole connection was successfully handled and the user has disconnected, or non-zero if an error prevented the user's connection from being handled properly. </dd></dl>
+
+</div>
+</div>
+<a id="a0303ef487d51b06bb0f007f1a5df0d78"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0303ef487d51b06bb0f007f1a5df0d78">&#9670;&nbsp;</a></span>guac_user_handle_instruction()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_handle_instruction </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>opcode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>argc</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">char **&#160;</td>
+          <td class="paramname"><em>argv</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Call the appropriate handler defined by the given user for the given instruction. </p>
+<p>A comparison is made between the instruction opcode and the initial handler lookup table defined in user-handlers.c. The initial handlers will in turn call the user's handler (if defined).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user whose handlers should be called.</td></tr>
+    <tr><td class="paramname">opcode</td><td>The opcode of the instruction to pass to the user via the appropriate handler.</td></tr>
+    <tr><td class="paramname">argc</td><td>The number of arguments which are part of the instruction.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all arguments which are part of the instruction.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-negative if the instruction was handled successfully, or negative if an error occurred. </dd></dl>
+
+</div>
+</div>
+<a id="ab19481d0800901190d3d734eae466151"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab19481d0800901190d3d734eae466151">&#9670;&nbsp;</a></span>guac_user_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>...</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given user. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">...</td><td>Arguments to use when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a5f0bae838d82357e95e98769f7b98cd2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f0bae838d82357e95e98769f7b98cd2">&#9670;&nbsp;</a></span>guac_user_parse_args_boolean()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_parse_args_boolean </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single boolean argument received from a joining user, returning the value of that argument (either 1 for true or 0 for false). </p>
+<p>Only "true" and "false" are legitimate values for a boolean argument. If the argument provided by the user is blank or invalid, the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank or invalid.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true (1) if the provided argument value is "true", false (0) if the provided argument value is "false", or the default value if the provided argument value is blank or invalid. </dd></dl>
+
+</div>
+</div>
+<a id="a08f6fd4d84de665487a45fb324dc8844"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a08f6fd4d84de665487a45fb324dc8844">&#9670;&nbsp;</a></span>guac_user_parse_args_int()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_parse_args_int </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single integer argument received from a joining user, returning the integer value of that argument. </p>
+<p>If the argument provided by the user is blank or invalid, the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank or invalid.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The integer value parsed from the provided argument value, or the default value if the provided argument value is blank or invalid. </dd></dl>
+
+</div>
+</div>
+<a id="a7530b31b5a621a4f68fdce4bee2bdc5f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7530b31b5a621a4f68fdce4bee2bdc5f">&#9670;&nbsp;</a></span>guac_user_parse_args_string()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">char* guac_user_parse_args_string </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>arg_names</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char **&#160;</td>
+          <td class="paramname"><em>argv</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>index</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>default_value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Automatically handles a single argument received from a joining user, returning a newly-allocated string containing that value. </p>
+<p>If the argument provided by the user is blank, a newly-allocated string containing the default value is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user joining the connection and providing the given arguments.</td></tr>
+    <tr><td class="paramname">arg_names</td><td>A NULL-terminated array of argument names, corresponding to the provided array of argument values. This array must be exactly the same size as the argument value array, with one additional entry for the NULL terminator.</td></tr>
+    <tr><td class="paramname">argv</td><td>An array of all argument values, corresponding to the provided array of argument names. This array must be exactly the same size as the argument name array, with the exception of the NULL terminator.</td></tr>
+    <tr><td class="paramname">index</td><td>The index of the entry in both the arg_names and argv arrays which corresponds to the argument being parsed.</td></tr>
+    <tr><td class="paramname">default_value</td><td>The value to return if the provided argument is blank. If this value is not NULL, the returned value will be a newly-allocated string containing this value.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A newly-allocated string containing the provided argument value. If the provided argument value is blank, this newly-allocated string will contain the default value. If the default value is NULL and the provided argument value is blank, no string will be allocated and NULL is returned. </dd></dl>
+
+</div>
+</div>
+<a id="a8216ec7024947564fb4ea6b8b0b07eaf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8216ec7024947564fb4ea6b8b0b07eaf">&#9670;&nbsp;</a></span>guac_user_stop()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stop </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user that it must disconnect, or advises cooperating services that the given user is no longer connected. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to stop. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="aa3f85461f15abfb46fd7c732538b33ea"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa3f85461f15abfb46fd7c732538b33ea">&#9670;&nbsp;</a></span>guac_user_stream_argv()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_argv </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>mimetype</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>name</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the given connection parameter value over an argument value stream ("argv" instruction), exposing the current value of the named connection parameter to the given user. </p>
+<p>The argument value stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user who should receive the connection parameter value.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the argument value stream should be sent.</td></tr>
+    <tr><td class="paramname">mimetype</td><td>The mimetype of the data within the connection parameter value being sent.</td></tr>
+    <tr><td class="paramname">name</td><td>The name of the connection parameter being sent.</td></tr>
+    <tr><td class="paramname">value</td><td>The current value of the connection parameter being sent. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a6e947ee6996d5711f18d5b785757ccb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a6e947ee6996d5711f18d5b785757ccb3">&#9670;&nbsp;</a></span>guac_user_stream_jpeg()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_jpeg </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as JPEG-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The JPEG image quality, which must be an integer value between 0 and 100 inclusive. Larger values indicate improving quality at the expense of larger file size. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a35e4c7ba75a16c0b512d543ef4fe9630"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a35e4c7ba75a16c0b512d543ef4fe9630">&#9670;&nbsp;</a></span>guac_user_stream_png()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_png </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as PNG-encoded data. </p>
+<p>The image stream will be automatically allocated and freed.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af00042d94cb64fb8ac92cd84aff05bf8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af00042d94cb64fb8ac92cd84aff05bf8">&#9670;&nbsp;</a></span>guac_user_stream_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void guac_user_stream_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="structguac__socket.html">guac_socket</a> *&#160;</td>
+          <td class="paramname"><em>socket</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a>&#160;</td>
+          <td class="paramname"><em>mode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const <a class="el" href="structguac__layer.html">guac_layer</a> *&#160;</td>
+          <td class="paramname"><em>layer</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>x</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>y</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">cairo_surface_t *&#160;</td>
+          <td class="paramname"><em>surface</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>quality</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">int&#160;</td>
+          <td class="paramname"><em>lossless</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Streams the image data of the given surface over an image stream ("img" instruction) as WebP-encoded data at the given quality. </p>
+<p>The image stream will be automatically allocated and freed. If the server does not support WebP, this function has no effect, so be sure to check the result of <a class="el" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7" title="Returns whether the given user supports WebP. ">guac_user_supports_webp()</a> or <a class="el" href="client_8h.html#a79cc74558e8f64807ea2847fbacd20e3" title="Returns whether all users of the given client support WebP. ">guac_client_supports_webp()</a> prior to calling this function.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user for whom the image stream should be allocated.</td></tr>
+    <tr><td class="paramname">socket</td><td>The socket over which instructions associated with the image stream should be sent.</td></tr>
+    <tr><td class="paramname">mode</td><td>The composite mode to use when rendering the image over the given layer.</td></tr>
+    <tr><td class="paramname">layer</td><td>The destination layer.</td></tr>
+    <tr><td class="paramname">x</td><td>The X coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">y</td><td>The Y coordinate of the upper-left corner of the destination rectangle within the given layer.</td></tr>
+    <tr><td class="paramname">surface</td><td>A Cairo surface containing the image data to be streamed.</td></tr>
+    <tr><td class="paramname">quality</td><td>The WebP image quality, which must be an integer value between 0 and 100 inclusive. For lossy images, larger values indicate improving quality at the expense of larger file size. For lossless images, this dictates the quality of compression, with larger values producing smaller files at the expense of speed.</td></tr>
+    <tr><td class="paramname">lossless</td><td>Zero to encode a lossy image, non-zero to encode losslessly. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="a26d186ee6b669c78278124ece46cc8f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26d186ee6b669c78278124ece46cc8f7">&#9670;&nbsp;</a></span>guac_user_supports_webp()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">int guac_user_supports_webp </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Returns whether the given user supports WebP. </p>
+<p>If the user does not support WebP, or the server cannot encode WebP images, zero is returned.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The Guacamole user to check for WebP support.</td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Non-zero if the given user claims to support WebP and the server has been built with WebP support, zero otherwise. </dd></dl>
+
+</div>
+</div>
+<a id="ad8529247b551cb93509236a7f9138dd2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad8529247b551cb93509236a7f9138dd2">&#9670;&nbsp;</a></span>vguac_user_abort()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_user_abort </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a>&#160;</td>
+          <td class="paramname"><em>status</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an error has occurred. </p>
+<p>Note that this is a completely cooperative signal, and can be ignored by the user or the hosting daemon. The message given will be logged to the system logs.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user to signal to stop. </td></tr>
+    <tr><td class="paramname">status</td><td>The status to send over the Guacamole protocol. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a id="af15509bcb891932a3fa93a142018b95c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af15509bcb891932a3fa93a142018b95c">&#9670;&nbsp;</a></span>vguac_user_log()</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">void vguac_user_log </td>
+          <td>(</td>
+          <td class="paramtype"><a class="el" href="structguac__user.html">guac_user</a> *&#160;</td>
+          <td class="paramname"><em>user</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype"><a class="el" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a>&#160;</td>
+          <td class="paramname"><em>level</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">const char *&#160;</td>
+          <td class="paramname"><em>format</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">va_list&#160;</td>
+          <td class="paramname"><em>ap</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Writes a message in the log used by the given user. </p>
+<p>The logger used will normally be defined by guacd (or whichever program loads the user) by setting the logging handlers of the user when it is loaded.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">user</td><td>The user logging this message. </td></tr>
+    <tr><td class="paramname">level</td><td>The level at which to log this message. </td></tr>
+    <tr><td class="paramname">format</td><td>A printf-style format string to log. </td></tr>
+    <tr><td class="paramname">ap</td><td>The va_list containing the arguments to be used when filling the format string for printing. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
diff --git a/doc/1.1.0/libguac/user_8h_source.html b/doc/1.1.0/libguac/user_8h_source.html
new file mode 100644
index 0000000..8c1aca4
--- /dev/null
+++ b/doc/1.1.0/libguac/user_8h_source.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.14"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>libguac: guacamole/user.h Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">libguac
+   &#160;<span id="projectnumber">1.1.0</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.14 -->
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license-end */
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+/* @license-end */</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_6bb9fad85c98b48a11165f494b9f53ce.html">guacamole</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">user.h</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="user_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * or more contributor license agreements.  See the NOTICE file</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * regarding copyright ownership.  The ASF licenses this file</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * with the License.  You may obtain a copy of the License at</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> *   http://www.apache.org/licenses/LICENSE-2.0</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> * KIND, either express or implied.  See the License for the</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> * under the License.</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#ifndef _GUAC_USER_H</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#define _GUAC_USER_H</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="client-types_8h.html">client-types.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="layer-types_8h.html">layer-types.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="pool-types_8h.html">pool-types.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="socket-types_8h.html">socket-types.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stream-types_8h.html">stream-types.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="timestamp-types_8h.html">timestamp-types.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-constants_8h.html">user-constants.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-fntypes_8h.html">user-fntypes.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user-types_8h.html">user-types.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#include &lt;cairo/cairo.h&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structguac__user__info.html">   46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user__info.html">guac_user_info</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">   54</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">optimal_width</a>;</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">   62</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#a252079af642b62554566e8675dc43354">optimal_height</a>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">   68</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">audio_mimetypes</a>;</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">   74</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">video_mimetypes</a>;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">   81</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">image_mimetypes</a>;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">   90</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">optimal_resolution</a>;</div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    </div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">   97</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">timezone</a>;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structguac__user.html">  101</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structguac__user.html">guac_user</a> {</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">  106</a></span>&#160;    <a class="code" href="structguac__client.html">guac_client</a>* <a class="code" href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">client</a>;</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">  113</a></span>&#160;    <a class="code" href="structguac__socket.html">guac_socket</a>* <a class="code" href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">socket</a>;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">  121</a></span>&#160;    <span class="keywordtype">char</span>* <a class="code" href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">user_id</a>;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">  127</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">owner</a>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">  135</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">active</a>;</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __prev;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="structguac__user.html">guac_user</a>* __next;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">  157</a></span>&#160;    <a class="code" href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a> <a class="code" href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">last_received_timestamp</a>;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">  164</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">last_frame_duration</a>;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">  170</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">processing_lag</a>;</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">  176</a></span>&#160;    <a class="code" href="structguac__user__info.html">guac_user_info</a> <a class="code" href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">info</a>;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __stream_pool;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __output_streams;</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="structguac__stream.html">guac_stream</a>* __input_streams;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <a class="code" href="structguac__pool.html">guac_pool</a>* __object_pool;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <a class="code" href="structguac__object.html">guac_object</a>* __objects;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">  206</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">data</a>;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">  233</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a>* <a class="code" href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">mouse_handler</a>;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">  251</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a>* <a class="code" href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">key_handler</a>;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">  272</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a>* <a class="code" href="structguac__user.html#a77f042802092c8bbf4407836f3185343">clipboard_handler</a>;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">  289</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a>* <a class="code" href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">size_handler</a>;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">  308</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a>* <a class="code" href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">file_handler</a>;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">  327</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a>* <a class="code" href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">pipe_handler</a>;</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">  346</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a>* <a class="code" href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">ack_handler</a>;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">  365</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a>* <a class="code" href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">blob_handler</a>;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">  383</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a>* <a class="code" href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">end_handler</a>;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">  402</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a>* <a class="code" href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">sync_handler</a>;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">  421</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a>* <a class="code" href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">leave_handler</a>;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">  441</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a>* <a class="code" href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">get_handler</a>;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">  461</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a>* <a class="code" href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">put_handler</a>;</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">  483</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a>* <a class="code" href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">audio_handler</a>;</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">  504</a></span>&#160;    <a class="code" href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a>* <a class="code" href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">argv_handler</a>;</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;};</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;<a class="code" href="structguac__user.html">guac_user</a>* <a class="code" href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a>();</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keywordtype">int</span> usec_timeout);</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>* opcode,</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        <span class="keywordtype">int</span> argc, <span class="keywordtype">char</span>** argv);</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<a class="code" href="structguac__stream.html">guac_stream</a>* <a class="code" href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__stream.html">guac_stream</a>* stream);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a> status,</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ...);</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a> level,</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* format, va_list ap);</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<a class="code" href="structguac__object.html">guac_object</a>* <a class="code" href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__object.html">guac_object</a>* <span class="keywordtype">object</span>);</div><div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>* mimetype, <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;        cairo_surface_t* surface);</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00777"></a><span class="lineno">  777</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00778"></a><span class="lineno">  778</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality);</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="keywordtype">void</span> <a class="code" href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <a class="code" href="structguac__socket.html">guac_socket</a>* socket,</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;        <a class="code" href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a> mode, <span class="keyword">const</span> <a class="code" href="structguac__layer.html">guac_layer</a>* layer, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y,</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        cairo_surface_t* surface, <span class="keywordtype">int</span> quality, <span class="keywordtype">int</span> lossless);</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a>(<a class="code" href="structguac__user.html">guac_user</a>* user);</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;<span class="keywordtype">char</span>* <a class="code" href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keyword">const</span> <span class="keywordtype">char</span>* default_value);</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;<span class="keywordtype">int</span> <a class="code" href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a>(<a class="code" href="structguac__user.html">guac_user</a>* user, <span class="keyword">const</span> <span class="keywordtype">char</span>** arg_names,</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;        <span class="keyword">const</span> <span class="keywordtype">char</span>** argv, <span class="keywordtype">int</span> index, <span class="keywordtype">int</span> default_value);</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;</div><div class="ttc" id="structguac__user_html_a793f7ef1cd818c296e7a5801c349f5ed"><div class="ttname"><a href="structguac__user.html#a793f7ef1cd818c296e7a5801c349f5ed">guac_user::end_handler</a></div><div class="ttdeci">guac_user_end_handler * end_handler</div><div class="ttdoc">Handler for stream end events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:383</div></div>
+<div class="ttc" id="user_8h_html_a6fa98ba49213d610491248cf085aaf56"><div class="ttname"><a href="user_8h.html#a6fa98ba49213d610491248cf085aaf56">guac_user_alloc_object</a></div><div class="ttdeci">guac_object * guac_user_alloc_object(guac_user *user)</div><div class="ttdoc">Allocates a new object. </div></div>
+<div class="ttc" id="structguac__user_html_a0120f63e0eb933761666047ed80e483f"><div class="ttname"><a href="structguac__user.html#a0120f63e0eb933761666047ed80e483f">guac_user::info</a></div><div class="ttdeci">guac_user_info info</div><div class="ttdoc">Information structure containing properties exposed by the remote user during the initial handshake p...</div><div class="ttdef"><b>Definition:</b> user.h:176</div></div>
+<div class="ttc" id="user_8h_html_af15509bcb891932a3fa93a142018b95c"><div class="ttname"><a href="user_8h.html#af15509bcb891932a3fa93a142018b95c">vguac_user_log</a></div><div class="ttdeci">void vguac_user_log(guac_user *user, guac_client_log_level level, const char *format, va_list ap)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div>
+<div class="ttc" id="structguac__user_html_ab9b8b3c268a0d14a28bdae6929cffb13"><div class="ttname"><a href="structguac__user.html#ab9b8b3c268a0d14a28bdae6929cffb13">guac_user::key_handler</a></div><div class="ttdeci">guac_user_key_handler * key_handler</div><div class="ttdoc">Handler for key events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:251</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab8b7cadf31aeac0b2ac0ce4f46dafe81"><div class="ttname"><a href="user-fntypes_8h.html#ab8b7cadf31aeac0b2ac0ce4f46dafe81">guac_user_get_handler</a></div><div class="ttdeci">int guac_user_get_handler(guac_user *user, guac_object *object, char *name)</div><div class="ttdoc">Handler for Guacamole object get requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:427</div></div>
+<div class="ttc" id="structguac__user_html_a209e83f080baf2e84d04cf08395374d2"><div class="ttname"><a href="structguac__user.html#a209e83f080baf2e84d04cf08395374d2">guac_user::sync_handler</a></div><div class="ttdeci">guac_user_sync_handler * sync_handler</div><div class="ttdoc">Handler for sync events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:402</div></div>
+<div class="ttc" id="structguac__user__info_html_ac19c08c0ef7441556be0afed6fb9c7c7"><div class="ttname"><a href="structguac__user__info.html#ac19c08c0ef7441556be0afed6fb9c7c7">guac_user_info::optimal_resolution</a></div><div class="ttdeci">int optimal_resolution</div><div class="ttdoc">The DPI of the physical remote display if configured for the optimal width/height combination describ...</div><div class="ttdef"><b>Definition:</b> user.h:90</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1d2777aaa35f39e5ba5e803a3ffbd137"><div class="ttname"><a href="user-fntypes_8h.html#a1d2777aaa35f39e5ba5e803a3ffbd137">guac_user_audio_handler</a></div><div class="ttdeci">int guac_user_audio_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole audio streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:138</div></div>
+<div class="ttc" id="socket-types_8h_html"><div class="ttname"><a href="socket-types_8h.html">socket-types.h</a></div><div class="ttdoc">Type definitions related to the guac_socket object. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab60c51d865526c5c5d2c096e4fcb5539"><div class="ttname"><a href="user-fntypes_8h.html#ab60c51d865526c5c5d2c096e4fcb5539">guac_user_sync_handler</a></div><div class="ttdeci">int guac_user_sync_handler(guac_user *user, guac_timestamp timestamp)</div><div class="ttdoc">Handler for Guacamole sync events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:406</div></div>
+<div class="ttc" id="structguac__user_html_ada73c04bbf06de4280f2d7679190a19b"><div class="ttname"><a href="structguac__user.html#ada73c04bbf06de4280f2d7679190a19b">guac_user::get_handler</a></div><div class="ttdeci">guac_user_get_handler * get_handler</div><div class="ttdoc">Handler for get events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:441</div></div>
+<div class="ttc" id="structguac__user_html_a4b097cae9283bb0caf70189d4f3d1d0e"><div class="ttname"><a href="structguac__user.html#a4b097cae9283bb0caf70189d4f3d1d0e">guac_user::processing_lag</a></div><div class="ttdeci">int processing_lag</div><div class="ttdoc">The overall lag experienced by the user relative to the stream of frames, roughly excluding network l...</div><div class="ttdef"><b>Definition:</b> user.h:170</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aca3c0d12202f7888146bb95986011b6f"><div class="ttname"><a href="user-fntypes_8h.html#aca3c0d12202f7888146bb95986011b6f">guac_user_size_handler</a></div><div class="ttdeci">int guac_user_size_handler(guac_user *user, int width, int height)</div><div class="ttdoc">Handler for Guacamole size events, invoked when a &quot;size&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:182</div></div>
+<div class="ttc" id="stream-types_8h_html"><div class="ttname"><a href="stream-types_8h.html">stream-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol streams. </div></div>
+<div class="ttc" id="structguac__user_html_aebdee192ef52dfe8956c776adc65fb16"><div class="ttname"><a href="structguac__user.html#aebdee192ef52dfe8956c776adc65fb16">guac_user::last_received_timestamp</a></div><div class="ttdeci">guac_timestamp last_received_timestamp</div><div class="ttdoc">The time (in milliseconds) of receipt of the last sync message from the user. </div><div class="ttdef"><b>Definition:</b> user.h:157</div></div>
+<div class="ttc" id="structguac__socket_html"><div class="ttname"><a href="structguac__socket.html">guac_socket</a></div><div class="ttdoc">The core I/O object of Guacamole. </div><div class="ttdef"><b>Definition:</b> socket.h:39</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a337a3fe8b983e3e25e25dbb836ea2694"><div class="ttname"><a href="user-fntypes_8h.html#a337a3fe8b983e3e25e25dbb836ea2694">guac_user_mouse_handler</a></div><div class="ttdeci">int guac_user_mouse_handler(guac_user *user, int x, int y, int button_mask)</div><div class="ttdoc">Handler for Guacamole mouse events, invoked when a &quot;mouse&quot; instruction has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:95</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afa8b0e25073cbe710265dc8a0ed150ca"><div class="ttname"><a href="user-fntypes_8h.html#afa8b0e25073cbe710265dc8a0ed150ca">guac_user_end_handler</a></div><div class="ttdeci">int guac_user_end_handler(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Handler for Guacamole stream &quot;end&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:336</div></div>
+<div class="ttc" id="structguac__user_html_a88a14fda25c9929269d198d4d602f7fb"><div class="ttname"><a href="structguac__user.html#a88a14fda25c9929269d198d4d602f7fb">guac_user::blob_handler</a></div><div class="ttdeci">guac_user_blob_handler * blob_handler</div><div class="ttdoc">Handler for blob events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:365</div></div>
+<div class="ttc" id="structguac__user_html_ad424a52c5d996e4a33de5dad61555883"><div class="ttname"><a href="structguac__user.html#ad424a52c5d996e4a33de5dad61555883">guac_user::data</a></div><div class="ttdeci">void * data</div><div class="ttdoc">Arbitrary user-specific data. </div><div class="ttdef"><b>Definition:</b> user.h:206</div></div>
+<div class="ttc" id="structguac__user_html_a8b958a20fbe7cf082d5ee074fceac474"><div class="ttname"><a href="structguac__user.html#a8b958a20fbe7cf082d5ee074fceac474">guac_user::file_handler</a></div><div class="ttdeci">guac_user_file_handler * file_handler</div><div class="ttdoc">Handler for file events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:308</div></div>
+<div class="ttc" id="user_8h_html_a26d186ee6b669c78278124ece46cc8f7"><div class="ttname"><a href="user_8h.html#a26d186ee6b669c78278124ece46cc8f7">guac_user_supports_webp</a></div><div class="ttdeci">int guac_user_supports_webp(guac_user *user)</div><div class="ttdoc">Returns whether the given user supports WebP. </div></div>
+<div class="ttc" id="structguac__user_html_a05ec6fd1894ff8df10c051b20df1b763"><div class="ttname"><a href="structguac__user.html#a05ec6fd1894ff8df10c051b20df1b763">guac_user::mouse_handler</a></div><div class="ttdeci">guac_user_mouse_handler * mouse_handler</div><div class="ttdoc">Handler for mouse events sent by the Gaucamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:233</div></div>
+<div class="ttc" id="client-types_8h_html"><div class="ttname"><a href="client-types_8h.html">client-types.h</a></div><div class="ttdoc">Type definitions related to the Guacamole client structure, guac_client. </div></div>
+<div class="ttc" id="user_8h_html_af00042d94cb64fb8ac92cd84aff05bf8"><div class="ttname"><a href="user_8h.html#af00042d94cb64fb8ac92cd84aff05bf8">guac_user_stream_webp</a></div><div class="ttdeci">void guac_user_stream_webp(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality, int lossless)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as WebP-encoded ...</div></div>
+<div class="ttc" id="structguac__object_html"><div class="ttname"><a href="structguac__object.html">guac_object</a></div><div class="ttdoc">Represents a single object within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> object.h:32</div></div>
+<div class="ttc" id="structguac__user_html_af35d1f6f2c97d917bf88cf66384f58a3"><div class="ttname"><a href="structguac__user.html#af35d1f6f2c97d917bf88cf66384f58a3">guac_user::pipe_handler</a></div><div class="ttdeci">guac_user_pipe_handler * pipe_handler</div><div class="ttdoc">Handler for pipe events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:327</div></div>
+<div class="ttc" id="user_8h_html_a8216ec7024947564fb4ea6b8b0b07eaf"><div class="ttname"><a href="user_8h.html#a8216ec7024947564fb4ea6b8b0b07eaf">guac_user_stop</a></div><div class="ttdeci">void guac_user_stop(guac_user *user)</div><div class="ttdoc">Signals the given user that it must disconnect, or advises cooperating services that the given user i...</div></div>
+<div class="ttc" id="structguac__user_html_a77f042802092c8bbf4407836f3185343"><div class="ttname"><a href="structguac__user.html#a77f042802092c8bbf4407836f3185343">guac_user::clipboard_handler</a></div><div class="ttdeci">guac_user_clipboard_handler * clipboard_handler</div><div class="ttdoc">Handler for clipboard events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:272</div></div>
+<div class="ttc" id="structguac__user_html_ad44c1bf6ab56aae0098458a1af2aa6be"><div class="ttname"><a href="structguac__user.html#ad44c1bf6ab56aae0098458a1af2aa6be">guac_user::ack_handler</a></div><div class="ttdeci">guac_user_ack_handler * ack_handler</div><div class="ttdoc">Handler for ack events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:346</div></div>
+<div class="ttc" id="structguac__user__info_html_ac05b09cce376e656f4e4baa19f888345"><div class="ttname"><a href="structguac__user__info.html#ac05b09cce376e656f4e4baa19f888345">guac_user_info::image_mimetypes</a></div><div class="ttdeci">const char ** image_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported image mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:81</div></div>
+<div class="ttc" id="structguac__user_html_a265180af7291745b2e090ee6fa47cbb8"><div class="ttname"><a href="structguac__user.html#a265180af7291745b2e090ee6fa47cbb8">guac_user::owner</a></div><div class="ttdeci">int owner</div><div class="ttdoc">Non-zero if this user is the owner of the associated connection, zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:127</div></div>
+<div class="ttc" id="structguac__user_html_a391e11605bf5605df3e27f6f7d0e2c69"><div class="ttname"><a href="structguac__user.html#a391e11605bf5605df3e27f6f7d0e2c69">guac_user::audio_handler</a></div><div class="ttdeci">guac_user_audio_handler * audio_handler</div><div class="ttdoc">Handler for audio events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:483</div></div>
+<div class="ttc" id="user_8h_html_a5f0bae838d82357e95e98769f7b98cd2"><div class="ttname"><a href="user_8h.html#a5f0bae838d82357e95e98769f7b98cd2">guac_user_parse_args_boolean</a></div><div class="ttdeci">int guac_user_parse_args_boolean(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single boolean argument received from a joining user, returning the value of ...</div></div>
+<div class="ttc" id="user-fntypes_8h_html"><div class="ttname"><a href="user-fntypes_8h.html">user-fntypes.h</a></div><div class="ttdoc">Function type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="user_8h_html_a28f08ab54f138796dea4655ef54526fe"><div class="ttname"><a href="user_8h.html#a28f08ab54f138796dea4655ef54526fe">guac_user_handle_connection</a></div><div class="ttdeci">int guac_user_handle_connection(guac_user *user, int usec_timeout)</div><div class="ttdoc">Handles all I/O for the portion of a user&amp;#39;s Guacamole connection following the initial &quot;select&quot; instr...</div></div>
+<div class="ttc" id="structguac__user_html_a36a2fee906be0898907ba6e4a97bdb9a"><div class="ttname"><a href="structguac__user.html#a36a2fee906be0898907ba6e4a97bdb9a">guac_user::size_handler</a></div><div class="ttdeci">guac_user_size_handler * size_handler</div><div class="ttdoc">Handler for size events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:289</div></div>
+<div class="ttc" id="structguac__user__info_html_a496d5f3d26a7db0a0490afa553126c66"><div class="ttname"><a href="structguac__user__info.html#a496d5f3d26a7db0a0490afa553126c66">guac_user_info::optimal_width</a></div><div class="ttdeci">int optimal_width</div><div class="ttdoc">The number of pixels the remote client requests for the display width. </div><div class="ttdef"><b>Definition:</b> user.h:54</div></div>
+<div class="ttc" id="structguac__user_html"><div class="ttname"><a href="structguac__user.html">guac_user</a></div><div class="ttdoc">Representation of a physical connection within a larger logical connection which may be shared...</div><div class="ttdef"><b>Definition:</b> user.h:101</div></div>
+<div class="ttc" id="structguac__user__info_html"><div class="ttname"><a href="structguac__user__info.html">guac_user_info</a></div><div class="ttdoc">Information exposed by the remote client during the connection handshake which can be used by a clien...</div><div class="ttdef"><b>Definition:</b> user.h:46</div></div>
+<div class="ttc" id="user-fntypes_8h_html_aead320956199884ff6af82d49d6163c1"><div class="ttname"><a href="user-fntypes_8h.html#aead320956199884ff6af82d49d6163c1">guac_user_blob_handler</a></div><div class="ttdeci">int guac_user_blob_handler(guac_user *user, guac_stream *stream, void *data, int length)</div><div class="ttdoc">Handler for Guacamole stream blobs. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:290</div></div>
+<div class="ttc" id="user_8h_html_aa3f85461f15abfb46fd7c732538b33ea"><div class="ttname"><a href="user_8h.html#aa3f85461f15abfb46fd7c732538b33ea">guac_user_stream_argv</a></div><div class="ttdeci">void guac_user_stream_argv(guac_user *user, guac_socket *socket, const char *mimetype, const char *name, const char *value)</div><div class="ttdoc">Streams the given connection parameter value over an argument value stream (&quot;argv&quot; instruction)...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a50636d9fb70c454a5e82cbf6ee4f9c8a"><div class="ttname"><a href="user-fntypes_8h.html#a50636d9fb70c454a5e82cbf6ee4f9c8a">guac_user_argv_handler</a></div><div class="ttdeci">int guac_user_argv_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole argument value (argv) streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:267</div></div>
+<div class="ttc" id="structguac__user_html_a12f1c20cab11d657e0f255db10f42e2f"><div class="ttname"><a href="structguac__user.html#a12f1c20cab11d657e0f255db10f42e2f">guac_user::leave_handler</a></div><div class="ttdeci">guac_user_leave_handler * leave_handler</div><div class="ttdoc">Handler for leave events fired by the guac_client when a guac_user is leaving an active connection...</div><div class="ttdef"><b>Definition:</b> user.h:421</div></div>
+<div class="ttc" id="structguac__user__info_html_a252079af642b62554566e8675dc43354"><div class="ttname"><a href="structguac__user__info.html#a252079af642b62554566e8675dc43354">guac_user_info::optimal_height</a></div><div class="ttdeci">int optimal_height</div><div class="ttdoc">The number of pixels the remote client requests for the display height. </div><div class="ttdef"><b>Definition:</b> user.h:62</div></div>
+<div class="ttc" id="pool-types_8h_html"><div class="ttname"><a href="pool-types_8h.html">pool-types.h</a></div><div class="ttdoc">Type definitions related to the guac_pool pool of unique integers. </div></div>
+<div class="ttc" id="structguac__user_html_ac7e84b1bf15d3d15ba49ce58f1819060"><div class="ttname"><a href="structguac__user.html#ac7e84b1bf15d3d15ba49ce58f1819060">guac_user::last_frame_duration</a></div><div class="ttdeci">int last_frame_duration</div><div class="ttdoc">The duration of the last frame rendered by the user, in milliseconds. </div><div class="ttdef"><b>Definition:</b> user.h:164</div></div>
+<div class="ttc" id="user_8h_html_a0303ef487d51b06bb0f007f1a5df0d78"><div class="ttname"><a href="user_8h.html#a0303ef487d51b06bb0f007f1a5df0d78">guac_user_handle_instruction</a></div><div class="ttdeci">int guac_user_handle_instruction(guac_user *user, const char *opcode, int argc, char **argv)</div><div class="ttdoc">Call the appropriate handler defined by the given user for the given instruction. ...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a48d196c39615f6a1ff9b129267cb402e"><div class="ttname"><a href="user-fntypes_8h.html#a48d196c39615f6a1ff9b129267cb402e">guac_user_key_handler</a></div><div class="ttdeci">int guac_user_key_handler(guac_user *user, int keysym, int pressed)</div><div class="ttdoc">Handler for Guacamole key events, invoked when a &quot;key&quot; event has been received from a user...</div><div class="ttdef"><b>Definition:</b> user-fntypes.h:116</div></div>
+<div class="ttc" id="structguac__user_html_a1b52d918f437923d65e9b3eecb20fcfd"><div class="ttname"><a href="structguac__user.html#a1b52d918f437923d65e9b3eecb20fcfd">guac_user::active</a></div><div class="ttdeci">int active</div><div class="ttdoc">Non-zero if this user is active (connected), and zero otherwise. </div><div class="ttdef"><b>Definition:</b> user.h:135</div></div>
+<div class="ttc" id="user_8h_html_ab19481d0800901190d3d734eae466151"><div class="ttname"><a href="user_8h.html#ab19481d0800901190d3d734eae466151">guac_user_log</a></div><div class="ttdeci">void guac_user_log(guac_user *user, guac_client_log_level level, const char *format,...)</div><div class="ttdoc">Writes a message in the log used by the given user. </div></div>
+<div class="ttc" id="structguac__user__info_html_ace535bea6879596b6473657f3fc83b57"><div class="ttname"><a href="structguac__user__info.html#ace535bea6879596b6473657f3fc83b57">guac_user_info::video_mimetypes</a></div><div class="ttdeci">const char ** video_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported video mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:74</div></div>
+<div class="ttc" id="timestamp-types_8h_html_a69e916d1ff324fbe0e527f32359c9cea"><div class="ttname"><a href="timestamp-types_8h.html#a69e916d1ff324fbe0e527f32359c9cea">guac_timestamp</a></div><div class="ttdeci">int64_t guac_timestamp</div><div class="ttdoc">An arbitrary timestamp denoting a relative time value in milliseconds. </div><div class="ttdef"><b>Definition:</b> timestamp-types.h:34</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a6c24aa9dee9ee4be3f3d21e1e24b9e3e"><div class="ttname"><a href="user-fntypes_8h.html#a6c24aa9dee9ee4be3f3d21e1e24b9e3e">guac_user_file_handler</a></div><div class="ttdeci">int guac_user_file_handler(guac_user *user, guac_stream *stream, char *mimetype, char *filename)</div><div class="ttdoc">Handler for Guacamole file streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:208</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a1658ce15f8c6fe958e873015e12aeed9"><div class="ttname"><a href="user-fntypes_8h.html#a1658ce15f8c6fe958e873015e12aeed9">guac_user_clipboard_handler</a></div><div class="ttdeci">int guac_user_clipboard_handler(guac_user *user, guac_stream *stream, char *mimetype)</div><div class="ttdoc">Handler for Guacamole clipboard streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:161</div></div>
+<div class="ttc" id="structguac__client_html"><div class="ttname"><a href="structguac__client.html">guac_client</a></div><div class="ttdoc">Guacamole proxy client. </div><div class="ttdef"><b>Definition:</b> client.h:46</div></div>
+<div class="ttc" id="user_8h_html_a3b3c740837b8e2cae6a232b45ca362f4"><div class="ttname"><a href="user_8h.html#a3b3c740837b8e2cae6a232b45ca362f4">guac_user_free_stream</a></div><div class="ttdeci">void guac_user_free_stream(guac_user *user, guac_stream *stream)</div><div class="ttdoc">Returns the given stream to the pool of available streams, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="user_8h_html_a08f6fd4d84de665487a45fb324dc8844"><div class="ttname"><a href="user_8h.html#a08f6fd4d84de665487a45fb324dc8844">guac_user_parse_args_int</a></div><div class="ttdeci">int guac_user_parse_args_int(guac_user *user, const char **arg_names, const char **argv, int index, int default_value)</div><div class="ttdoc">Automatically handles a single integer argument received from a joining user, returning the integer v...</div></div>
+<div class="ttc" id="structguac__user__info_html_a043432620dafe7ba38fcd3550fdc7d27"><div class="ttname"><a href="structguac__user__info.html#a043432620dafe7ba38fcd3550fdc7d27">guac_user_info::audio_mimetypes</a></div><div class="ttdeci">const char ** audio_mimetypes</div><div class="ttdoc">NULL-terminated array of client-supported audio mimetypes. </div><div class="ttdef"><b>Definition:</b> user.h:68</div></div>
+<div class="ttc" id="structguac__pool_html"><div class="ttname"><a href="structguac__pool.html">guac_pool</a></div><div class="ttdoc">A pool of integers. </div><div class="ttdef"><b>Definition:</b> pool.h:34</div></div>
+<div class="ttc" id="structguac__user_html_ab6b6bdcd73d29132df5f331921ca287a"><div class="ttname"><a href="structguac__user.html#ab6b6bdcd73d29132df5f331921ca287a">guac_user::argv_handler</a></div><div class="ttdeci">guac_user_argv_handler * argv_handler</div><div class="ttdoc">Handler for argv events (updates to the connection parameters of an in-progress connection) sent by t...</div><div class="ttdef"><b>Definition:</b> user.h:504</div></div>
+<div class="ttc" id="user-fntypes_8h_html_a88f4b7af6d47c82f65e9332afcc7ab09"><div class="ttname"><a href="user-fntypes_8h.html#a88f4b7af6d47c82f65e9332afcc7ab09">guac_user_ack_handler</a></div><div class="ttdeci">int guac_user_ack_handler(guac_user *user, guac_stream *stream, char *error, guac_protocol_status status)</div><div class="ttdoc">Handler for Guacamole stream &quot;ack&quot; instructions. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:319</div></div>
+<div class="ttc" id="user_8h_html_a35a47c81b581f7aff3eb04c2a6d35b7c"><div class="ttname"><a href="user_8h.html#a35a47c81b581f7aff3eb04c2a6d35b7c">guac_user_alloc_stream</a></div><div class="ttdeci">guac_stream * guac_user_alloc_stream(guac_user *user)</div><div class="ttdoc">Allocates a new stream. </div></div>
+<div class="ttc" id="user_8h_html_a7e0e1220fd00fd769b8e6b731f8c9bf8"><div class="ttname"><a href="user_8h.html#a7e0e1220fd00fd769b8e6b731f8c9bf8">guac_user_free</a></div><div class="ttdeci">void guac_user_free(guac_user *user)</div><div class="ttdoc">Frees the given user and all associated resources. </div></div>
+<div class="ttc" id="structguac__user_html_a8496638b8c4c52f5f15d483b92becf27"><div class="ttname"><a href="structguac__user.html#a8496638b8c4c52f5f15d483b92becf27">guac_user::socket</a></div><div class="ttdeci">guac_socket * socket</div><div class="ttdoc">This user&amp;#39;s actual socket. </div><div class="ttdef"><b>Definition:</b> user.h:113</div></div>
+<div class="ttc" id="user-fntypes_8h_html_ab7ae6833c33b39618a8b78603581ff79"><div class="ttname"><a href="user-fntypes_8h.html#ab7ae6833c33b39618a8b78603581ff79">guac_user_pipe_handler</a></div><div class="ttdeci">int guac_user_pipe_handler(guac_user *user, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole pipe streams received from a user. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:237</div></div>
+<div class="ttc" id="user_8h_html_a7530b31b5a621a4f68fdce4bee2bdc5f"><div class="ttname"><a href="user_8h.html#a7530b31b5a621a4f68fdce4bee2bdc5f">guac_user_parse_args_string</a></div><div class="ttdeci">char * guac_user_parse_args_string(guac_user *user, const char **arg_names, const char **argv, int index, const char *default_value)</div><div class="ttdoc">Automatically handles a single argument received from a joining user, returning a newly-allocated str...</div></div>
+<div class="ttc" id="user-fntypes_8h_html_afd4c60871cc2dbbbdc82f58ae1c5baa0"><div class="ttname"><a href="user-fntypes_8h.html#afd4c60871cc2dbbbdc82f58ae1c5baa0">guac_user_put_handler</a></div><div class="ttdeci">int guac_user_put_handler(guac_user *user, guac_object *object, guac_stream *stream, char *mimetype, char *name)</div><div class="ttdoc">Handler for Guacamole object put requests. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:454</div></div>
+<div class="ttc" id="layer-types_8h_html"><div class="ttname"><a href="layer-types_8h.html">layer-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole layers. </div></div>
+<div class="ttc" id="user-fntypes_8h_html_aaa5806d288a42d93a54864b6c35617b8"><div class="ttname"><a href="user-fntypes_8h.html#aaa5806d288a42d93a54864b6c35617b8">guac_user_leave_handler</a></div><div class="ttdeci">int guac_user_leave_handler(guac_user *user)</div><div class="ttdoc">Handler for Guacamole leave events. </div><div class="ttdef"><b>Definition:</b> user-fntypes.h:385</div></div>
+<div class="ttc" id="protocol-types_8h_html_a93612063886db58071d02b5393abf186"><div class="ttname"><a href="protocol-types_8h.html#a93612063886db58071d02b5393abf186">guac_composite_mode</a></div><div class="ttdeci">guac_composite_mode</div><div class="ttdoc">Composite modes used by Guacamole draw instructions. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:170</div></div>
+<div class="ttc" id="user_8h_html_a0eff54a869374e37237b2006ad77b958"><div class="ttname"><a href="user_8h.html#a0eff54a869374e37237b2006ad77b958">guac_user_abort</a></div><div class="ttdeci">void guac_user_abort(guac_user *user, guac_protocol_status status, const char *format,...)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
+<div class="ttc" id="user_8h_html_a6e947ee6996d5711f18d5b785757ccb3"><div class="ttname"><a href="user_8h.html#a6e947ee6996d5711f18d5b785757ccb3">guac_user_stream_jpeg</a></div><div class="ttdeci">void guac_user_stream_jpeg(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface, int quality)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as JPEG-encoded ...</div></div>
+<div class="ttc" id="protocol-types_8h_html_af946f7f843fa5935dbeeb08f85dec9e2"><div class="ttname"><a href="protocol-types_8h.html#af946f7f843fa5935dbeeb08f85dec9e2">guac_protocol_status</a></div><div class="ttdeci">guac_protocol_status</div><div class="ttdoc">Set of all possible status codes returned by protocol operations. </div><div class="ttdef"><b>Definition:</b> protocol-types.h:44</div></div>
+<div class="ttc" id="structguac__layer_html"><div class="ttname"><a href="structguac__layer.html">guac_layer</a></div><div class="ttdoc">Represents a single layer within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> layer.h:34</div></div>
+<div class="ttc" id="structguac__stream_html"><div class="ttname"><a href="structguac__stream.html">guac_stream</a></div><div class="ttdoc">Represents a single stream within the Guacamole protocol. </div><div class="ttdef"><b>Definition:</b> stream.h:32</div></div>
+<div class="ttc" id="structguac__user__info_html_a2c08990b6fd1e0627652a9c879ea2078"><div class="ttname"><a href="structguac__user__info.html#a2c08990b6fd1e0627652a9c879ea2078">guac_user_info::timezone</a></div><div class="ttdeci">const char * timezone</div><div class="ttdoc">The timezone of the remote system. </div><div class="ttdef"><b>Definition:</b> user.h:97</div></div>
+<div class="ttc" id="structguac__user_html_a5e296149a26932dfeb7d8b0bac933ecf"><div class="ttname"><a href="structguac__user.html#a5e296149a26932dfeb7d8b0bac933ecf">guac_user::client</a></div><div class="ttdeci">guac_client * client</div><div class="ttdoc">The guac_client to which this user belongs. </div><div class="ttdef"><b>Definition:</b> user.h:106</div></div>
+<div class="ttc" id="user_8h_html_ad8529247b551cb93509236a7f9138dd2"><div class="ttname"><a href="user_8h.html#ad8529247b551cb93509236a7f9138dd2">vguac_user_abort</a></div><div class="ttdeci">void vguac_user_abort(guac_user *user, guac_protocol_status status, const char *format, va_list ap)</div><div class="ttdoc">Signals the given user to stop gracefully, while also signalling via the Guacamole protocol that an e...</div></div>
+<div class="ttc" id="user_8h_html_acf92065fb6bbc92f9794ea50255acdb9"><div class="ttname"><a href="user_8h.html#acf92065fb6bbc92f9794ea50255acdb9">guac_user_free_object</a></div><div class="ttdeci">void guac_user_free_object(guac_user *user, guac_object *object)</div><div class="ttdoc">Returns the given object to the pool of available objects, such that it can be reused by any subseque...</div></div>
+<div class="ttc" id="client-types_8h_html_adfeeb4ff06541220c91ce3401d840727"><div class="ttname"><a href="client-types_8h.html#adfeeb4ff06541220c91ce3401d840727">guac_client_log_level</a></div><div class="ttdeci">guac_client_log_level</div><div class="ttdoc">All supported log levels used by the logging subsystem of each Guacamole client. </div><div class="ttdef"><b>Definition:</b> client-types.h:62</div></div>
+<div class="ttc" id="structguac__user_html_a0b33553d0e1af01d8c9fbc6ec33202c3"><div class="ttname"><a href="structguac__user.html#a0b33553d0e1af01d8c9fbc6ec33202c3">guac_user::put_handler</a></div><div class="ttdeci">guac_user_put_handler * put_handler</div><div class="ttdoc">Handler for put events sent by the Guacamole web-client. </div><div class="ttdef"><b>Definition:</b> user.h:461</div></div>
+<div class="ttc" id="user_8h_html_a586cd1d712dce0db02d57684ddcb02ef"><div class="ttname"><a href="user_8h.html#a586cd1d712dce0db02d57684ddcb02ef">guac_user_alloc</a></div><div class="ttdeci">guac_user * guac_user_alloc()</div><div class="ttdoc">Allocates a new, blank user, not associated with any specific client or socket. </div></div>
+<div class="ttc" id="user_8h_html_a35e4c7ba75a16c0b512d543ef4fe9630"><div class="ttname"><a href="user_8h.html#a35e4c7ba75a16c0b512d543ef4fe9630">guac_user_stream_png</a></div><div class="ttdeci">void guac_user_stream_png(guac_user *user, guac_socket *socket, guac_composite_mode mode, const guac_layer *layer, int x, int y, cairo_surface_t *surface)</div><div class="ttdoc">Streams the image data of the given surface over an image stream (&quot;img&quot; instruction) as PNG-encoded d...</div></div>
+<div class="ttc" id="structguac__user_html_aad1c6a8b56d17c12eb1f1e36c4798c70"><div class="ttname"><a href="structguac__user.html#aad1c6a8b56d17c12eb1f1e36c4798c70">guac_user::user_id</a></div><div class="ttdeci">char * user_id</div><div class="ttdoc">The unique identifier allocated for this user, which may be used within the Guacamole protocol to ref...</div><div class="ttdef"><b>Definition:</b> user.h:121</div></div>
+<div class="ttc" id="timestamp-types_8h_html"><div class="ttname"><a href="timestamp-types_8h.html">timestamp-types.h</a></div><div class="ttdoc">Type definitions related to Guacamole protocol timestamps. </div></div>
+<div class="ttc" id="user-types_8h_html"><div class="ttname"><a href="user-types_8h.html">user-types.h</a></div><div class="ttdoc">Type definitions related to the guac_user object. </div></div>
+<div class="ttc" id="user-constants_8h_html"><div class="ttname"><a href="user-constants_8h.html">user-constants.h</a></div><div class="ttdoc">Constants related to the Guacamole user structure, guac_user. </div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.14
+</small></address>
+        <!-- Google Analytics -->
+        <script type="text/javascript">
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-75289145-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+</body>
+</html>
